diff options
Diffstat (limited to 'test/CodeGen/SystemZ/atomic-store-05.ll')
| -rw-r--r-- | test/CodeGen/SystemZ/atomic-store-05.ll | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/CodeGen/SystemZ/atomic-store-05.ll b/test/CodeGen/SystemZ/atomic-store-05.ll new file mode 100644 index 0000000000000..e0ea660852be8 --- /dev/null +++ b/test/CodeGen/SystemZ/atomic-store-05.ll @@ -0,0 +1,25 @@ +; Test 128-bit atomic stores. +; +; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s + +define void @f1(i128 %val, i128 *%src) { +; CHECK-LABEL: f1: +; CHECK-DAG: lg %r1, 8(%r2) +; CHECK-DAG: lg %r0, 0(%r2) +; CHECK: stpq %r0, 0(%r3) +; CHECK: bcr 1{{[45]}}, %r0 +; CHECK: br %r14 + store atomic i128 %val, i128 *%src seq_cst, align 16 + ret void +} + +define void @f2(i128 %val, i128 *%src) { +; CHECK-LABEL: f2: +; CHECK-DAG: lg %r1, 8(%r2) +; CHECK-DAG: lg %r0, 0(%r2) +; CHECK: stpq %r0, 0(%r3) +; CHECK-NOT: bcr 1{{[45]}}, %r0 +; CHECK: br %r14 + store atomic i128 %val, i128 *%src monotonic, align 16 + ret void +} |
