diff options
Diffstat (limited to 'llvm/test/CodeGen/SystemZ/atomic-store-05.ll')
-rw-r--r-- | llvm/test/CodeGen/SystemZ/atomic-store-05.ll | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/SystemZ/atomic-store-05.ll b/llvm/test/CodeGen/SystemZ/atomic-store-05.ll new file mode 100644 index 00000000000..e0ea660852b --- /dev/null +++ b/llvm/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 +} |