11; RUN: llc -mattr=sram < %s -march=avr | FileCheck %s
2- ; XFAIL: *
32
43define void @store8 (i8* %x , i8 %y ) {
54; CHECK-LABEL: store8:
6- ; CHECK: st Z , r22
5+ ; CHECK: st {{[XYZ]}} , r22
76 store i8 %y , i8* %x
87 ret void
98}
109
1110define void @store16 (i16* %x , i16 %y ) {
1211; CHECK-LABEL: store16:
13- ; CHECK: st Z , r22
14- ; CHECK: std Z +1, r23
12+ ; CHECK: st {{[XYZ]}} , r22
13+ ; CHECK: std {{[XYZ]}} +1, r23
1514 store i16 %y , i16* %x
1615 ret void
1716}
1817
1918define void @store8disp (i8* %x , i8 %y ) {
2019; CHECK-LABEL: store8disp:
21- ; CHECK: std Z +63, r22
20+ ; CHECK: std {{[XYZ]}} +63, r22
2221 %arrayidx = getelementptr inbounds i8 , i8* %x , i16 63
2322 store i8 %y , i8* %arrayidx
2423 ret void
2524}
2625
2726define void @store8nodisp (i8* %x , i8 %y ) {
2827; CHECK-LABEL: store8nodisp:
29- ; CHECK: movw r30 , r24
30- ; CHECK: subi r30 , 192
31- ; CHECK: sbci r31 , 255
32- ; CHECK: st Z , r22
28+ ; CHECK: movw r26 , r24
29+ ; CHECK: subi r26 , 192
30+ ; CHECK: sbci r27 , 255
31+ ; CHECK: st {{[XYZ]}} , r22
3332 %arrayidx = getelementptr inbounds i8 , i8* %x , i16 64
3433 store i8 %y , i8* %arrayidx
3534 ret void
3635}
3736
3837define void @store16disp (i16* %x , i16 %y ) {
3938; CHECK-LABEL: store16disp:
40- ; CHECK: std Z +62, r22
41- ; CHECK: std Z +63, r23
39+ ; CHECK: std {{[XYZ]}} +62, r22
40+ ; CHECK: std {{[XYZ]}} +63, r23
4241 %arrayidx = getelementptr inbounds i16 , i16* %x , i16 31
4342 store i16 %y , i16* %arrayidx
4443 ret void
@@ -49,16 +48,16 @@ define void @store16nodisp(i16* %x, i16 %y) {
4948; CHECK: movw r30, r24
5049; CHECK: subi r30, 192
5150; CHECK: sbci r31, 255
52- ; CHECK: st Z , r22
53- ; CHECK: std Z +1, r23
51+ ; CHECK: st {{[XYZ]}} , r22
52+ ; CHECK: std {{[XYZ]}} +1, r23
5453 %arrayidx = getelementptr inbounds i16 , i16* %x , i16 32
5554 store i16 %y , i16* %arrayidx
5655 ret void
5756}
5857
5958define void @store8postinc (i8* %x , i8 %y ) {
6059; CHECK-LABEL: store8postinc:
61- ; CHECK: st Z +, {{.*}}
60+ ; CHECK: st {{[XYZ]}} +, {{.*}}
6261entry:
6362 %tobool3 = icmp eq i8 %y , 0
6463 br i1 %tobool3 , label %while.end , label %while.body
@@ -76,8 +75,8 @@ while.end: ; preds = %while.body, %entry
7675
7776define void @store16postinc (i16* %x , i16 %y ) {
7877; CHECK-LABEL: store16postinc:
79- ; CHECK: st X +, {{.*}}
80- ; CHECK: st X +, {{.*}}
78+ ; CHECK: st {{[XYZ]}} +, {{.*}}
79+ ; CHECK: st {{[XYZ]}} +, {{.*}}
8180entry:
8281 %tobool3 = icmp eq i16 %y , 0
8382 br i1 %tobool3 , label %while.end , label %while.body
@@ -95,7 +94,7 @@ while.end: ; preds = %while.body, %entry
9594
9695define void @store8predec (i8* %x , i8 %y ) {
9796; CHECK-LABEL: store8predec:
98- ; CHECK: st -Z , {{.*}}
97+ ; CHECK: st -{{[XYZ]}} , {{.*}}
9998entry:
10099 %tobool3 = icmp eq i8 %y , 0
101100 br i1 %tobool3 , label %while.end , label %while.body
@@ -113,8 +112,8 @@ while.end: ; preds = %while.body, %entry
113112
114113define void @store16predec (i16* %x , i16 %y ) {
115114; CHECK-LABEL: store16predec:
116- ; CHECK: st -X , {{.*}}
117- ; CHECK: st -X , {{.*}}
115+ ; CHECK: st -{{[XYZ]}} , {{.*}}
116+ ; CHECK: st -{{[XYZ]}} , {{.*}}
118117entry:
119118 %tobool3 = icmp eq i16 %y , 0
120119 br i1 %tobool3 , label %while.end , label %while.body
0 commit comments