diff options
Diffstat (limited to 'llvm/test/Transforms/LowerAtomic/atomic-load.ll')
-rw-r--r-- | llvm/test/Transforms/LowerAtomic/atomic-load.ll | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LowerAtomic/atomic-load.ll b/llvm/test/Transforms/LowerAtomic/atomic-load.ll new file mode 100644 index 00000000000..e73417f3d40 --- /dev/null +++ b/llvm/test/Transforms/LowerAtomic/atomic-load.ll @@ -0,0 +1,37 @@ +; RUN: opt < %s -loweratomic -S | FileCheck %s +; RUN: opt < %s -passes=loweratomic -S | FileCheck %s + +define i8 @add() { +; CHECK-LABEL: @add( + %i = alloca i8 + %j = atomicrmw add i8* %i, i8 42 monotonic +; CHECK: [[INST:%[a-z0-9]+]] = load +; CHECK-NEXT: add +; CHECK-NEXT: store + ret i8 %j +; CHECK: ret i8 [[INST]] +} + +define i8 @nand() { +; CHECK-LABEL: @nand( + %i = alloca i8 + %j = atomicrmw nand i8* %i, i8 42 monotonic +; CHECK: [[INST:%[a-z0-9]+]] = load +; CHECK-NEXT: and +; CHECK-NEXT: xor +; CHECK-NEXT: store + ret i8 %j +; CHECK: ret i8 [[INST]] +} + +define i8 @min() { +; CHECK-LABEL: @min( + %i = alloca i8 + %j = atomicrmw min i8* %i, i8 42 monotonic +; CHECK: [[INST:%[a-z0-9]+]] = load +; CHECK-NEXT: icmp +; CHECK-NEXT: select +; CHECK-NEXT: store + ret i8 %j +; CHECK: ret i8 [[INST]] +} |