blob: 5e2f034a5177a80493fb3bda7dc56f6fb7fbe3c0 [file] [log] [blame]
Peter Collingbourne3bababf2010-08-03 16:19:16 +00001; RUN: opt < %s -loweratomic -S | FileCheck %s
2
Peter Collingbourne3bababf2010-08-03 16:19:16 +00003define i8 @cmpswap() {
4; CHECK: @cmpswap
5 %i = alloca i8
Eli Friedman236b71f2011-09-26 20:15:56 +00006 %j = cmpxchg i8* %i, i8 0, i8 42 monotonic
Peter Collingbourne3bababf2010-08-03 16:19:16 +00007; CHECK: [[INST:%[a-z0-9]+]] = load
8; CHECK-NEXT: icmp
9; CHECK-NEXT: select
10; CHECK-NEXT: store
11 ret i8 %j
12; CHECK: ret i8 [[INST]]
13}
14
15define i8 @swap() {
16; CHECK: @swap
17 %i = alloca i8
Eli Friedman236b71f2011-09-26 20:15:56 +000018 %j = atomicrmw xchg i8* %i, i8 42 monotonic
Peter Collingbourne3bababf2010-08-03 16:19:16 +000019; CHECK: [[INST:%[a-z0-9]+]] = load
20; CHECK-NEXT: store
21 ret i8 %j
22; CHECK: ret i8 [[INST]]
23}