121
|
1 ; Test 128-bit atomic stores.
|
|
2 ;
|
|
3 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
|
|
4
|
|
5 define void @f1(i128 %val, i128 *%src) {
|
|
6 ; CHECK-LABEL: f1:
|
|
7 ; CHECK-DAG: lg %r1, 8(%r2)
|
|
8 ; CHECK-DAG: lg %r0, 0(%r2)
|
|
9 ; CHECK: stpq %r0, 0(%r3)
|
|
10 ; CHECK: bcr 1{{[45]}}, %r0
|
|
11 ; CHECK: br %r14
|
|
12 store atomic i128 %val, i128 *%src seq_cst, align 16
|
|
13 ret void
|
|
14 }
|
|
15
|
|
16 define void @f2(i128 %val, i128 *%src) {
|
|
17 ; CHECK-LABEL: f2:
|
|
18 ; CHECK-DAG: lg %r1, 8(%r2)
|
|
19 ; CHECK-DAG: lg %r0, 0(%r2)
|
|
20 ; CHECK: stpq %r0, 0(%r3)
|
|
21 ; CHECK-NOT: bcr 1{{[45]}}, %r0
|
|
22 ; CHECK: br %r14
|
|
23 store atomic i128 %val, i128 *%src monotonic, align 16
|
|
24 ret void
|
|
25 }
|