@@ -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]+]], [[RD :(X|Y|Z)]]
33
- ; CHECK-NEXT: ldd [[RR2 :r[0-9]+]], [[RD ]]+1
34
- ; CHECK-NEXT: add [[TMP1 :r[0-9]+]], [[RR1 ]]
35
- ; CHECK-NEXT: adc [[TMP2 :r[0-9]+]], [[RR2 ]]
36
- ; CHECK-NEXT: st [[RD ]], [[TMP1 ]]
37
- ; CHECK-NEXT: std [[RD ]]+1, [[TMP2 ]]
32
+ ; CHECK-NEXT: ld [[RDL :r[0-9]+]], [[RR :(X|Y|Z)]]
33
+ ; CHECK-NEXT: ldd [[RDH :r[0-9]+]], [[RR ]]+1
34
+ ; CHECK-NEXT: add [[RR1L :r[0-9]+]], [[RDL ]]
35
+ ; CHECK-NEXT: adc [[RR1H :r[0-9]+]], [[RDH ]]
36
+ ; CHECK-NEXT: st [[RR ]], [[RR1L ]]
37
+ ; CHECK-NEXT: std [[RR ]]+1, [[RR1H ]]
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,13 +44,13 @@ 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]+]], [[RD :(X|Y|Z)]]
48
- ; CHECK-NEXT: ldd [[RR2 :r[0-9]+]], [[RD ]]+1
49
- ; CHECK-NEXT: movw
50
- ; CHECK-NEXT: sub [[TMP1:r[0-9]+]], [[IN1 :r[0-9]+]]
51
- ; CHECK-NEXT: sbc [[TMP2 :r[0-9]+]], [[IN2 :r[0-9]+]]
52
- ; CHECK-NEXT: st [[RD ]], [[TMP1 ]]
53
- ; CHECK-NEXT: std [[RD ]]+1, [[TMP2 ]]
47
+ ; CHECK-NEXT: ld [[RDL :r[0-9]+]], [[RR :(X|Y|Z)]]
48
+ ; CHECK-NEXT: ldd [[RDH :r[0-9]+]], [[RR ]]+1
49
+ ; CHECK-NEXT: movw [[TMPL:r[0-9]+]], [[RDL]]
50
+ ; CHECK-NEXT: sub [[TMPL]], [[RR1L :r[0-9]+]]
51
+ ; CHECK-NEXT: sbc [[TMPH :r[0-9]+]], [[RR1H :r[0-9]+]]
52
+ ; CHECK-NEXT: st [[RR ]], [[TMPL ]]
53
+ ; CHECK-NEXT: std [[RR ]]+1, [[TMPH ]]
54
54
; CHECK-NEXT: out 63, r0
55
55
define i16 @atomic_load_sub16 (i16* %foo ) {
56
56
%val = atomicrmw sub i16* %foo , i16 13 seq_cst
@@ -60,12 +60,12 @@ define i16 @atomic_load_sub16(i16* %foo) {
60
60
; CHECK-LABEL: atomic_load_and16
61
61
; CHECK: in r0, 63
62
62
; CHECK-NEXT: cli
63
- ; CHECK-NEXT: ld [[RR1 :r[0-9]+]], [[RD :(X|Y|Z)]]
64
- ; CHECK-NEXT: ldd [[RR2 :r[0-9]+]], [[RD ]]+1
65
- ; CHECK-NEXT: and [[TMP1 :r[0-9]+]], [[RR1 ]]
66
- ; CHECK-NEXT: and [[TMP2 :r[0-9]+]], [[RR2 ]]
67
- ; CHECK-NEXT: st [[RD ]], [[TMP1 ]]
68
- ; CHECK-NEXT: std [[RD ]]+1, [[TMP2 ]]
63
+ ; CHECK-NEXT: ld [[RDL :r[0-9]+]], [[RR :(X|Y|Z)]]
64
+ ; CHECK-NEXT: ldd [[RDH :r[0-9]+]], [[RR ]]+1
65
+ ; CHECK-NEXT: and [[RD1L :r[0-9]+]], [[RDL ]]
66
+ ; CHECK-NEXT: and [[RD1H :r[0-9]+]], [[RDH ]]
67
+ ; CHECK-NEXT: st [[RR ]], [[RD1L ]]
68
+ ; CHECK-NEXT: std [[RR ]]+1, [[RD1H ]]
69
69
; CHECK-NEXT: out 63, r0
70
70
define i16 @atomic_load_and16 (i16* %foo ) {
71
71
%val = atomicrmw and i16* %foo , i16 13 seq_cst
@@ -75,12 +75,12 @@ define i16 @atomic_load_and16(i16* %foo) {
75
75
; CHECK-LABEL: atomic_load_or16
76
76
; CHECK: in r0, 63
77
77
; CHECK-NEXT: cli
78
- ; CHECK-NEXT: ld [[RR1 :r[0-9]+]], [[RD :(X|Y|Z)]]
79
- ; CHECK-NEXT: ldd [[RR2 :r[0-9]+]], [[RD ]]+1
80
- ; CHECK-NEXT: or [[TMP1 :r[0-9]+]], [[RR1 ]]
81
- ; CHECK-NEXT: or [[TMP2 :r[0-9]+]], [[RR2 ]]
82
- ; CHECK-NEXT: st [[RD ]], [[TMP1 ]]
83
- ; CHECK-NEXT: std [[RD ]]+1, [[TMP2 ]]
78
+ ; CHECK-NEXT: ld [[RDL :r[0-9]+]], [[RR :(X|Y|Z)]]
79
+ ; CHECK-NEXT: ldd [[RDH :r[0-9]+]], [[RR ]]+1
80
+ ; CHECK-NEXT: or [[RD1L :r[0-9]+]], [[RDL ]]
81
+ ; CHECK-NEXT: or [[RD1H :r[0-9]+]], [[RDH ]]
82
+ ; CHECK-NEXT: st [[RR ]], [[RD1L ]]
83
+ ; CHECK-NEXT: std [[RR ]]+1, [[RD1H ]]
84
84
; CHECK-NEXT: out 63, r0
85
85
define i16 @atomic_load_or16 (i16* %foo ) {
86
86
%val = atomicrmw or i16* %foo , i16 13 seq_cst
@@ -90,12 +90,12 @@ define i16 @atomic_load_or16(i16* %foo) {
90
90
; CHECK-LABEL: atomic_load_xor16
91
91
; CHECK: in r0, 63
92
92
; CHECK-NEXT: cli
93
- ; CHECK-NEXT: ld [[RR1 :r[0-9]+]], [[RD :(X|Y|Z)]]
94
- ; CHECK-NEXT: ldd [[RR2 :r[0-9]+]], [[RD ]]+1
95
- ; CHECK-NEXT: eor [[TMP1 :r[0-9]+]], [[RR1 ]]
96
- ; CHECK-NEXT: eor [[TMP2 :r[0-9]+]], [[RR2 ]]
97
- ; CHECK-NEXT: st [[RD ]], [[TMP1 ]]
98
- ; CHECK-NEXT: std [[RD ]]+1, [[TMP2 ]]
93
+ ; CHECK-NEXT: ld [[RDL :r[0-9]+]], [[RR :(X|Y|Z)]]
94
+ ; CHECK-NEXT: ldd [[RDH :r[0-9]+]], [[RR ]]+1
95
+ ; CHECK-NEXT: eor [[RD1L :r[0-9]+]], [[RDL ]]
96
+ ; CHECK-NEXT: eor [[RD1H :r[0-9]+]], [[RDH ]]
97
+ ; CHECK-NEXT: st [[RR ]], [[RD1L ]]
98
+ ; CHECK-NEXT: std [[RR ]]+1, [[RD1H ]]
99
99
; CHECK-NEXT: out 63, r0
100
100
define i16 @atomic_load_xor16 (i16* %foo ) {
101
101
%val = atomicrmw xor i16* %foo , i16 13 seq_cst
0 commit comments