Skip to content
This repository was archived by the owner on Sep 2, 2018. It is now read-only.

Commit 616ef57

Browse files
committed
[AVR] fix load/store tests
1 parent cb35075 commit 616ef57

File tree

2 files changed

+36
-38
lines changed

2 files changed

+36
-38
lines changed

test/CodeGen/AVR/load.ll

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,43 @@
11
; RUN: llc -mattr=sram < %s -march=avr | FileCheck %s
2-
; XFAIL: *
32

43
define i8 @load8(i8* %x) {
54
; CHECK-LABEL: load8:
6-
; CHECK: ld r24, Z
5+
; CHECK: ld r24, {{[XYZ]}}
76
%1 = load i8, i8* %x
87
ret i8 %1
98
}
109

1110
define i16 @load16(i16* %x) {
1211
; CHECK-LABEL: load16:
13-
; CHECK: ld r24, Z
14-
; CHECK: ldd r25, Z+1
12+
; CHECK: ld r24, {{[XYZ]}}
13+
; CHECK: ldd r25, {{[XYZ]}}+1
1514
%1 = load i16, i16* %x
1615
ret i16 %1
1716
}
1817

1918
define i8 @load8disp(i8* %x) {
2019
; CHECK-LABEL: load8disp:
21-
; CHECK: ldd r24, Z+63
20+
; CHECK: ldd r24, {{[XYZ]}}+63
2221
%1 = getelementptr inbounds i8, i8* %x, i64 63
2322
%2 = load i8, i8* %1
2423
ret i8 %2
2524
}
2625

2726
define i8 @load8nodisp(i8* %x) {
2827
; CHECK-LABEL: load8nodisp:
29-
; CHECK: movw r30, r24
30-
; CHECK: subi r30, 192
31-
; CHECK: sbci r31, 255
32-
; CHECK: ld r24, Z
28+
; CHECK: movw r26, r24
29+
; CHECK: subi r26, 192
30+
; CHECK: sbci r27, 255
31+
; CHECK: ld r24, {{[XYZ]}}
3332
%1 = getelementptr inbounds i8, i8* %x, i64 64
3433
%2 = load i8, i8* %1
3534
ret i8 %2
3635
}
3736

3837
define i16 @load16disp(i16* %x) {
3938
; CHECK-LABEL: load16disp:
40-
; CHECK: ldd r24, Z+62
41-
; CHECK: ldd r25, Z+63
39+
; CHECK: ldd r24, {{[XYZ]}}+62
40+
; CHECK: ldd r25, {{[XYZ]}}+63
4241
%1 = getelementptr inbounds i16, i16* %x, i64 31
4342
%2 = load i16, i16* %1
4443
ret i16 %2
@@ -49,16 +48,16 @@ define i16 @load16nodisp(i16* %x) {
4948
; CHECK: movw r30, r24
5049
; CHECK: subi r30, 192
5150
; CHECK: sbci r31, 255
52-
; CHECK: ld r24, Z
53-
; CHECK: ldd r25, Z+1
51+
; CHECK: ld r24, {{[XYZ]}}
52+
; CHECK: ldd r25, {{[XYZ]}}+1
5453
%1 = getelementptr inbounds i16, i16* %x, i64 32
5554
%2 = load i16, i16* %1
5655
ret i16 %2
5756
}
5857

5958
define i8 @load8postinc(i8* %x, i8 %y) {
6059
; CHECK-LABEL: load8postinc:
61-
; CHECK: ld {{.*}}, Z+
60+
; CHECK: ld {{.*}}, {{[XYZ]}}+
6261
entry:
6362
%tobool6 = icmp eq i8 %y, 0
6463
br i1 %tobool6, label %while.end, label %while.body
@@ -79,8 +78,8 @@ while.end: ; preds = %while.body, %entry
7978

8079
define i16 @load16postinc(i16* %x, i16 %y) {
8180
; CHECK-LABEL: load16postinc:
82-
; CHECK: ld {{.*}}, X+
83-
; CHECK: ld {{.*}}, X+
81+
; CHECK: ld {{.*}}, {{[XYZ]}}+
82+
; CHECK: ld {{.*}}, {{[XYZ]}}+
8483
entry:
8584
%tobool2 = icmp eq i16 %y, 0
8685
br i1 %tobool2, label %while.end, label %while.body
@@ -101,7 +100,7 @@ while.end: ; preds = %while.body, %entry
101100

102101
define i8 @load8predec(i8* %x, i8 %y) {
103102
; CHECK-LABEL: load8predec:
104-
; CHECK: ld {{.*}}, -Z
103+
; CHECK: ld {{.*}}, -{{[XYZ]}}
105104
entry:
106105
%tobool6 = icmp eq i8 %y, 0
107106
br i1 %tobool6, label %while.end, label %while.body
@@ -122,8 +121,8 @@ while.end: ; preds = %while.body, %entry
122121

123122
define i16 @load16predec(i16* %x, i16 %y) {
124123
; CHECK-LABEL: load16predec:
125-
; CHECK: ld {{.*}}, -X
126-
; CHECK: ld {{.*}}, -X
124+
; CHECK: ld {{.*}}, -{{[XYZ]}}
125+
; CHECK: ld {{.*}}, -{{[XYZ]}}
127126
entry:
128127
%tobool2 = icmp eq i16 %y, 0
129128
br i1 %tobool2, label %while.end, label %while.body

test/CodeGen/AVR/store.ll

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,43 @@
11
; RUN: llc -mattr=sram < %s -march=avr | FileCheck %s
2-
; XFAIL: *
32

43
define 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

1110
define 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

1918
define 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

2726
define 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

3837
define 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

5958
define void @store8postinc(i8* %x, i8 %y) {
6059
; CHECK-LABEL: store8postinc:
61-
; CHECK: st Z+, {{.*}}
60+
; CHECK: st {{[XYZ]}}+, {{.*}}
6261
entry:
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

7776
define 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]}}+, {{.*}}
8180
entry:
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

9695
define void @store8predec(i8* %x, i8 %y) {
9796
; CHECK-LABEL: store8predec:
98-
; CHECK: st -Z, {{.*}}
97+
; CHECK: st -{{[XYZ]}}, {{.*}}
9998
entry:
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

114113
define 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]}}, {{.*}}
118117
entry:
119118
%tobool3 = icmp eq i16 %y, 0
120119
br i1 %tobool3, label %while.end, label %while.body

0 commit comments

Comments
 (0)