summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LowerAtomic/atomic-load.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/LowerAtomic/atomic-load.ll')
-rw-r--r--llvm/test/Transforms/LowerAtomic/atomic-load.ll37
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]]
+}
OpenPOWER on IntegriCloud