3
3
; CHECK-LABEL: atomic_load16
4
4
; CHECK: in r0, 63
5
5
; CHECK-NEXT: cli
6
- ; CHECK-NEXT: ld [[RR:r[0-9]+]], [[RD:(X|Y|Z)]]+
7
- ; CHECK-NEXT: ld [[RR:r[0-9]+]], [[RD:(X|Y|Z)]]
6
+ ; CHECK-NEXT: ld [[RR:r[0-9]+]], [[RD:(X|Y|Z)]]
7
+ ; CHECK-NEXT: ldd [[RR:r[0-9]+]], [[RD]]+1
8
8
; CHECK-NEXT: out 63, r0
9
9
define i16 @atomic_load16 (i16* %foo ) {
10
10
%val = load atomic i16 , i16* %foo unordered , align 2
@@ -29,12 +29,12 @@ define i16 @atomic_load_cmp_swap16(i16* %foo) {
29
29
; CHECK-LABEL: atomic_load_add16
30
30
; CHECK: in r0, 63
31
31
; CHECK-NEXT: cli
32
- ; CHECK-NEXT: ld [[RR1:r[0-9]+]], [[RD1 :(X|Y|Z)]]+
33
- ; CHECK-NEXT: ld [[RR2:r[0-9]+]], [[RD2:(X|Y|Z)]]
32
+ ; CHECK-NEXT: ld [[RR1:r[0-9]+]], [[RD :(X|Y|Z)]]
33
+ ; CHECK-NEXT: ldd [[RR2:r[0-9]+]], [[RD]]+1
34
34
; CHECK-NEXT: add [[RR1]], [[TMP:r[0-9]+]]
35
35
; CHECK-NEXT: adc [[RR2]], [[TMP:r[0-9]+]]
36
- ; CHECK-NEXT: st [[RD1 ]], [[RR1]]
37
- ; CHECK-NEXT: std [[RD1 ]]+1, [[A:r[0-9]+]]
36
+ ; CHECK-NEXT: st [[RD ]], [[RR1]]
37
+ ; CHECK-NEXT: std [[RD ]]+1, [[A:r[0-9]+]]
38
38
; CHECK-NEXT: out 63, r0
39
39
define i16 @atomic_load_add16 (i16* %foo ) {
40
40
%val = atomicrmw add i16* %foo , i16 13 seq_cst
@@ -44,12 +44,12 @@ define i16 @atomic_load_add16(i16* %foo) {
44
44
; CHECK-LABEL: atomic_load_sub16
45
45
; CHECK: in r0, 63
46
46
; CHECK-NEXT: cli
47
- ; CHECK-NEXT: ld [[RR1:r[0-9]+]], [[RD1 :(X|Y|Z)]]+
48
- ; CHECK-NEXT: ld [[RR2:r[0-9]+]], [[RD2:(X|Y|Z)]]
47
+ ; CHECK-NEXT: ld [[RR1:r[0-9]+]], [[RD :(X|Y|Z)]]
48
+ ; CHECK-NEXT: ldd [[RR2:r[0-9]+]], [[RD]]+1
49
49
; CHECK-NEXT: sub [[RR1]], [[TMP:r[0-9]+]]
50
50
; CHECK-NEXT: sbc [[RR2]], [[TMP:r[0-9]+]]
51
- ; CHECK-NEXT: st [[RD1 ]], [[RR1]]
52
- ; CHECK-NEXT: std [[RD1 ]]+1, [[A:r[0-9]+]]
51
+ ; CHECK-NEXT: st [[RD ]], [[RR1]]
52
+ ; CHECK-NEXT: std [[RD ]]+1, [[A:r[0-9]+]]
53
53
; CHECK-NEXT: out 63, r0
54
54
define i16 @atomic_load_sub16 (i16* %foo ) {
55
55
%val = atomicrmw sub i16* %foo , i16 13 seq_cst
@@ -59,12 +59,12 @@ define i16 @atomic_load_sub16(i16* %foo) {
59
59
; CHECK-LABEL: atomic_load_and16
60
60
; CHECK: in r0, 63
61
61
; CHECK-NEXT: cli
62
- ; CHECK-NEXT: ld [[RR1:r[0-9]+]], [[RD1 :(X|Y|Z)]]+
63
- ; CHECK-NEXT: ld [[RR2:r[0-9]+]], [[RD2:(X|Y|Z)]]
62
+ ; CHECK-NEXT: ld [[RR1:r[0-9]+]], [[RD :(X|Y|Z)]]
63
+ ; CHECK-NEXT: ldd [[RR2:r[0-9]+]], [[RD]]+1
64
64
; CHECK-NEXT: and [[RR1]], [[TMP:r[0-9]+]]
65
65
; CHECK-NEXT: and [[RR2]], [[TMP:r[0-9]+]]
66
- ; CHECK-NEXT: st [[RD1 ]], [[RR1]]
67
- ; CHECK-NEXT: std [[RD1 ]]+1, [[A:r[0-9]+]]
66
+ ; CHECK-NEXT: st [[RD ]], [[RR1]]
67
+ ; CHECK-NEXT: std [[RD ]]+1, [[A:r[0-9]+]]
68
68
; CHECK-NEXT: out 63, r0
69
69
define i16 @atomic_load_and16 (i16* %foo ) {
70
70
%val = atomicrmw and i16* %foo , i16 13 seq_cst
@@ -74,12 +74,12 @@ define i16 @atomic_load_and16(i16* %foo) {
74
74
; CHECK-LABEL: atomic_load_or16
75
75
; CHECK: in r0, 63
76
76
; CHECK-NEXT: cli
77
- ; CHECK-NEXT: ld [[RR1:r[0-9]+]], [[RD1 :(X|Y|Z)]]+
78
- ; CHECK-NEXT: ld [[RR2:r[0-9]+]], [[RD2:(X|Y|Z)]]
77
+ ; CHECK-NEXT: ld [[RR1:r[0-9]+]], [[RD :(X|Y|Z)]]
78
+ ; CHECK-NEXT: ldd [[RR2:r[0-9]+]], [[RD]]+1
79
79
; CHECK-NEXT: or [[RR1]], [[TMP:r[0-9]+]]
80
80
; CHECK-NEXT: or [[RR2]], [[TMP:r[0-9]+]]
81
- ; CHECK-NEXT: st [[RD1 ]], [[RR1]]
82
- ; CHECK-NEXT: std [[RD1 ]]+1, [[A:r[0-9]+]]
81
+ ; CHECK-NEXT: st [[RD ]], [[RR1]]
82
+ ; CHECK-NEXT: std [[RD ]]+1, [[A:r[0-9]+]]
83
83
; CHECK-NEXT: out 63, r0
84
84
define i16 @atomic_load_or16 (i16* %foo ) {
85
85
%val = atomicrmw or i16* %foo , i16 13 seq_cst
@@ -89,12 +89,12 @@ define i16 @atomic_load_or16(i16* %foo) {
89
89
; CHECK-LABEL: atomic_load_xor16
90
90
; CHECK: in r0, 63
91
91
; CHECK-NEXT: cli
92
- ; CHECK-NEXT: ld [[RR1:r[0-9]+]], [[RD1 :(X|Y|Z)]]+
93
- ; CHECK-NEXT: ld [[RR2:r[0-9]+]], [[RD2:(X|Y|Z)]]
92
+ ; CHECK-NEXT: ld [[RR1:r[0-9]+]], [[RD :(X|Y|Z)]]
93
+ ; CHECK-NEXT: ldd [[RR2:r[0-9]+]], [[RD]]+1
94
94
; CHECK-NEXT: eor [[RR1]], [[TMP:r[0-9]+]]
95
95
; CHECK-NEXT: eor [[RR2]], [[TMP:r[0-9]+]]
96
- ; CHECK-NEXT: st [[RD1 ]], [[RR1]]
97
- ; CHECK-NEXT: std [[RD1 ]]+1, [[A:r[0-9]+]]
96
+ ; CHECK-NEXT: st [[RD ]], [[RR1]]
97
+ ; CHECK-NEXT: std [[RD ]]+1, [[A:r[0-9]+]]
98
98
; CHECK-NEXT: out 63, r0
99
99
define i16 @atomic_load_xor16 (i16* %foo ) {
100
100
%val = atomicrmw xor i16* %foo , i16 13 seq_cst
0 commit comments