Skip to content

Commit 6f220a0

Browse files
committed
add test for issue
1 parent c32207d commit 6f220a0

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

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

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2+
; RUN: llc < %s -mtriple=avr-none -verify-machineinstrs | FileCheck %s
3+
4+
@ci = dso_local global [30 x i16] zeroinitializer, align 1
5+
declare dso_local void @foo(i16 noundef) addrspace(1)
6+
define void @loopreduce() {
7+
; CHECK-LABEL: loopreduce:
8+
; CHECK: ; %bb.0: ; %entry
9+
; CHECK-NEXT: push r14
10+
; CHECK-NEXT: push r15
11+
; CHECK-NEXT: push r16
12+
; CHECK-NEXT: push r17
13+
; CHECK-NEXT: ldi r26, lo8(ci)
14+
; CHECK-NEXT: ldi r27, hi8(ci)
15+
; CHECK-NEXT: ldi r16, lo8(ci+60)
16+
; CHECK-NEXT: ldi r17, hi8(ci+60)
17+
; CHECK-NEXT: .LBB0_1: ; %for.body
18+
; CHECK-NEXT: ; =>This Inner Loop Header: Depth=1
19+
; CHECK-NEXT: ld r24, X+
20+
; CHECK-NEXT: ld r25, X+
21+
; CHECK-NEXT: mov r14, r26
22+
; CHECK-NEXT: mov r15, r27
23+
; CHECK-NEXT: rcall foo
24+
; CHECK-NEXT: mov r26, r14
25+
; CHECK-NEXT: mov r27, r15
26+
; CHECK-NEXT: cp r26, r16
27+
; CHECK-NEXT: cpc r27, r17
28+
; CHECK-NEXT: brne .LBB0_1
29+
; CHECK-NEXT: ; %bb.2: ; %for.cond.cleanup
30+
; CHECK-NEXT: pop r17
31+
; CHECK-NEXT: pop r16
32+
; CHECK-NEXT: pop r15
33+
; CHECK-NEXT: pop r14
34+
; CHECK-NEXT: ret
35+
entry:
36+
br label %for.body
37+
for.body: ; preds = %entry, %for.body
38+
%i.03 = phi i16 [ 0, %entry ], [ %inc, %for.body ]
39+
%arrayidx = getelementptr inbounds nuw [30 x i16], ptr @ci, i16 0, i16 %i.03
40+
%0 = load i16, ptr %arrayidx, align 1
41+
tail call addrspace(1) void @foo(i16 noundef %0) #3
42+
%inc = add nuw nsw i16 %i.03, 1
43+
%exitcond.not = icmp eq i16 %inc, 30
44+
br i1 %exitcond.not, label %for.cond.cleanup, label %for.body
45+
; Exit blocks
46+
for.cond.cleanup: ; preds = %for.body
47+
ret void
48+
}

0 commit comments

Comments
 (0)