Skip to content

Commit c1f620a

Browse files
committed
add test patterns
1 parent 6f220a0 commit c1f620a

File tree

3 files changed

+69
-1
lines changed

3 files changed

+69
-1
lines changed

llvm/test/CodeGen/AVR/issue-151080.ll

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
22
; RUN: llc < %s -mtriple=avr-none -verify-machineinstrs | FileCheck %s
33

4-
@ci = dso_local global [30 x i16] zeroinitializer, align 1
54
declare dso_local void @foo(i16 noundef) addrspace(1)
5+
@ci = dso_local global [30 x i16] zeroinitializer, align 1
66
define void @loopreduce() {
77
; CHECK-LABEL: loopreduce:
88
; CHECK: ; %bb.0: ; %entry
@@ -46,3 +46,60 @@ for.body: ; preds = %entry, %for.body
4646
for.cond.cleanup: ; preds = %for.body
4747
ret void
4848
}
49+
50+
51+
define void @induction() {
52+
; CHECK-LABEL: induction:
53+
; CHECK: ; %bb.0: ; %entry
54+
; CHECK-NEXT: push r12
55+
; CHECK-NEXT: push r13
56+
; CHECK-NEXT: push r14
57+
; CHECK-NEXT: push r15
58+
; CHECK-NEXT: push r17
59+
; CHECK-NEXT: ldi r24, 8
60+
; CHECK-NEXT: ldi r25, 0
61+
; CHECK-NEXT: mov r14, r24
62+
; CHECK-NEXT: mov r15, r25
63+
; CHECK-NEXT: ldi r24, 1
64+
; CHECK-NEXT: ldi r25, 0
65+
; CHECK-NEXT: mov r12, r24
66+
; CHECK-NEXT: mov r13, r25
67+
; CHECK-NEXT: ldi r17, 3
68+
; CHECK-NEXT: .LBB1_1: ; %for.body
69+
; CHECK-NEXT: ; =>This Inner Loop Header: Depth=1
70+
; CHECK-NEXT: mov r24, r12
71+
; CHECK-NEXT: mov r25, r13
72+
; CHECK-NEXT: rcall foo
73+
; CHECK-NEXT: mov r22, r14
74+
; CHECK-NEXT: mov r23, r15
75+
; CHECK-NEXT: mov r24, r22
76+
; CHECK-NEXT: mov r25, r23
77+
; CHECK-NEXT: rcall __mulhi3
78+
; CHECK-NEXT: mov r30, r14
79+
; CHECK-NEXT: mov r31, r15
80+
; CHECK-NEXT: adiw r30, 1
81+
; CHECK-NEXT: mov r14, r30
82+
; CHECK-NEXT: mov r15, r31
83+
; CHECK-NEXT: cpi r24, -24
84+
; CHECK-NEXT: cpc r25, r17
85+
; CHECK-NEXT: brlo .LBB1_1
86+
; CHECK-NEXT: ; %bb.2: ; %for.cond.cleanup
87+
; CHECK-NEXT: pop r17
88+
; CHECK-NEXT: pop r15
89+
; CHECK-NEXT: pop r14
90+
; CHECK-NEXT: pop r13
91+
; CHECK-NEXT: pop r12
92+
; CHECK-NEXT: ret
93+
entry:
94+
br label %for.body
95+
for.body: ; preds = %entry, %for.body
96+
%i.03 = phi i16 [ 7, %entry ], [ %inc, %for.body ]
97+
tail call addrspace(1) void @foo(i16 noundef 1) #2
98+
%inc = add nuw nsw i16 %i.03, 1
99+
%mul = mul nuw nsw i16 %inc, %inc
100+
%cmp = icmp samesign ult i16 %mul, 1000
101+
br i1 %cmp, label %for.body, label %for.cond.cleanup
102+
for.cond.cleanup: ; preds = %for.body
103+
ret void
104+
}
105+

llvm/test/CodeGen/AVR/load.ll

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,9 @@ for.body: ; preds = %entry, %for.body
123123
define i8 @load8predec(ptr %x, i8 %y) {
124124
; CHECK-LABEL: load8predec:
125125
; TODO: ld {{.*}}, -{{[XYZ]}}
126+
; TODO: ld {{.*}}, -{{[XYZ]}}
127+
; CHECK: sbiw {{.*}}, 1
128+
; CHECK: ld {{.*}}, {{[XYZ]}}
126129
entry:
127130
%tobool6 = icmp eq i8 %y, 0
128131
br i1 %tobool6, label %while.end, label %while.body
@@ -145,6 +148,9 @@ define i16 @load16predec(ptr %x, i16 %y) {
145148
; CHECK-LABEL: load16predec:
146149
; TODO: ld {{.*}}, -{{[XYZ]}}
147150
; TODO: ld {{.*}}, -{{[XYZ]}}
151+
; CHECK: sbiw {{.*}}, 2
152+
; CHECK: ld {{.*}}, {{[XZ]}}
153+
; CHECK: ldd {{.*}}, {{[XZ]}}+1
148154
entry:
149155
%tobool2 = icmp eq i16 %y, 0
150156
br i1 %tobool2, label %while.end, label %while.body

llvm/test/CodeGen/AVR/store.ll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ while.end: ; preds = %while.body, %entry
9595
define void @store8predec(ptr %x, i8 %y) {
9696
; CHECK-LABEL: store8predec:
9797
; TODO: st -{{[XYZ]}}, {{.*}}
98+
; CHECK: sbiw {{..*}}, 1
99+
; CHECK: st {{[XYZ]}}, {{.*}}
98100
entry:
99101
%tobool3 = icmp eq i8 %y, 0
100102
br i1 %tobool3, label %while.end, label %while.body
@@ -114,6 +116,9 @@ define void @store16predec(ptr %x, i16 %y) {
114116
; CHECK-LABEL: store16predec:
115117
; TODO: st -{{[XYZ]}}, {{.*}}
116118
; TODO: st -{{[XYZ]}}, {{.*}}
119+
; CHECK: sbiw {{..*}}, 2
120+
; CHECK: std {{[XYZ]}}+1, {{.*}}
121+
; CHECK: st {{[XYZ]}}, {{.*}}
117122
entry:
118123
%tobool3 = icmp eq i16 %y, 0
119124
br i1 %tobool3, label %while.end, label %while.body

0 commit comments

Comments
 (0)