@@ -29,12 +29,12 @@ define i16 @atomic_load_cmp_swap16(i16* %foo) {
2929; CHECK-LABEL: atomic_load_add16
3030; CHECK: in r0, 63
3131; 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 ]]
3838; CHECK-NEXT: out 63, r0
3939define i16 @atomic_load_add16 (i16* %foo ) {
4040 %val = atomicrmw add i16* %foo , i16 13 seq_cst
@@ -44,13 +44,13 @@ define i16 @atomic_load_add16(i16* %foo) {
4444; CHECK-LABEL: atomic_load_sub16
4545; CHECK: in r0, 63
4646; 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 ]]
5454; CHECK-NEXT: out 63, r0
5555define i16 @atomic_load_sub16 (i16* %foo ) {
5656 %val = atomicrmw sub i16* %foo , i16 13 seq_cst
@@ -60,12 +60,12 @@ define i16 @atomic_load_sub16(i16* %foo) {
6060; CHECK-LABEL: atomic_load_and16
6161; CHECK: in r0, 63
6262; 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 ]]
6969; CHECK-NEXT: out 63, r0
7070define i16 @atomic_load_and16 (i16* %foo ) {
7171 %val = atomicrmw and i16* %foo , i16 13 seq_cst
@@ -75,12 +75,12 @@ define i16 @atomic_load_and16(i16* %foo) {
7575; CHECK-LABEL: atomic_load_or16
7676; CHECK: in r0, 63
7777; 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 ]]
8484; CHECK-NEXT: out 63, r0
8585define i16 @atomic_load_or16 (i16* %foo ) {
8686 %val = atomicrmw or i16* %foo , i16 13 seq_cst
@@ -90,12 +90,12 @@ define i16 @atomic_load_or16(i16* %foo) {
9090; CHECK-LABEL: atomic_load_xor16
9191; CHECK: in r0, 63
9292; 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 ]]
9999; CHECK-NEXT: out 63, r0
100100define i16 @atomic_load_xor16 (i16* %foo ) {
101101 %val = atomicrmw xor i16* %foo , i16 13 seq_cst
0 commit comments