1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2
- ; RUN: llc < %s -mtriple=avr-none -verify-machineinstrs | FileCheck %s
2
+ ; RUN: llc < %s -O=3 - mtriple=avr-none -mcpu=attiny85 -verify-machineinstrs | FileCheck %s
3
3
4
4
declare dso_local void @foo (i16 noundef) addrspace (1 )
5
5
@ci = dso_local global [30 x i16 ] zeroinitializer , align 1
@@ -18,11 +18,9 @@ define void @loopreduce() {
18
18
; CHECK-NEXT: ; =>This Inner Loop Header: Depth=1
19
19
; CHECK-NEXT: ld r24, X+
20
20
; CHECK-NEXT: ld r25, X+
21
- ; CHECK-NEXT: mov r14, r26
22
- ; CHECK-NEXT: mov r15, r27
21
+ ; CHECK-NEXT: movw r14, r26
23
22
; CHECK-NEXT: rcall foo
24
- ; CHECK-NEXT: mov r26, r14
25
- ; CHECK-NEXT: mov r27, r15
23
+ ; CHECK-NEXT: movw r26, r14
26
24
; CHECK-NEXT: cp r26, r16
27
25
; CHECK-NEXT: cpc r27, r17
28
26
; CHECK-NEXT: brne .LBB0_1
@@ -38,7 +36,7 @@ for.body: ; preds = %entry, %for.body
38
36
%i.03 = phi i16 [ 0 , %entry ], [ %inc , %for.body ]
39
37
%arrayidx = getelementptr inbounds nuw [30 x i16 ], ptr @ci , i16 0 , i16 %i.03
40
38
%0 = load i16 , ptr %arrayidx , align 1
41
- tail call addrspace (1 ) void @foo (i16 noundef %0 ) # 3
39
+ tail call addrspace (1 ) void @foo (i16 noundef %0 )
42
40
%inc = add nuw nsw i16 %i.03 , 1
43
41
%exitcond.not = icmp eq i16 %inc , 30
44
42
br i1 %exitcond.not , label %for.cond.cleanup , label %for.body
@@ -47,9 +45,8 @@ for.cond.cleanup: ; preds = %for.body
47
45
ret void
48
46
}
49
47
50
-
51
- define void @induction () {
52
- ; CHECK-LABEL: induction:
48
+ define void @indvar () {
49
+ ; CHECK-LABEL: indvar:
53
50
; CHECK: ; %bb.0: ; %entry
54
51
; CHECK-NEXT: push r12
55
52
; CHECK-NEXT: push r13
@@ -58,28 +55,21 @@ define void @induction() {
58
55
; CHECK-NEXT: push r17
59
56
; CHECK-NEXT: ldi r24, 8
60
57
; CHECK-NEXT: ldi r25, 0
61
- ; CHECK-NEXT: mov r14, r24
62
- ; CHECK-NEXT: mov r15, r25
58
+ ; CHECK-NEXT: movw r14, r24
63
59
; CHECK-NEXT: ldi r24, 1
64
60
; CHECK-NEXT: ldi r25, 0
65
- ; CHECK-NEXT: mov r12, r24
66
- ; CHECK-NEXT: mov r13, r25
61
+ ; CHECK-NEXT: movw r12, r24
67
62
; CHECK-NEXT: ldi r17, 3
68
63
; CHECK-NEXT: .LBB1_1: ; %for.body
69
64
; CHECK-NEXT: ; =>This Inner Loop Header: Depth=1
70
- ; CHECK-NEXT: mov r24, r12
71
- ; CHECK-NEXT: mov r25, r13
65
+ ; CHECK-NEXT: movw r24, r12
72
66
; 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
67
+ ; CHECK-NEXT: movw r22, r14
68
+ ; CHECK-NEXT: movw r24, r22
77
69
; CHECK-NEXT: rcall __mulhi3
78
- ; CHECK-NEXT: mov r30, r14
79
- ; CHECK-NEXT: mov r31, r15
70
+ ; CHECK-NEXT: movw r30, r14
80
71
; CHECK-NEXT: adiw r30, 1
81
- ; CHECK-NEXT: mov r14, r30
82
- ; CHECK-NEXT: mov r15, r31
72
+ ; CHECK-NEXT: movw r14, r30
83
73
; CHECK-NEXT: cpi r24, -24
84
74
; CHECK-NEXT: cpc r25, r17
85
75
; CHECK-NEXT: brlo .LBB1_1
94
84
br label %for.body
95
85
for.body: ; preds = %entry, %for.body
96
86
%i.03 = phi i16 [ 7 , %entry ], [ %inc , %for.body ]
97
- tail call addrspace (1 ) void @foo (i16 noundef 1 ) # 2
87
+ tail call addrspace (1 ) void @foo (i16 noundef 1 )
98
88
%inc = add nuw nsw i16 %i.03 , 1
99
89
%mul = mul nuw nsw i16 %inc , %inc
100
90
%cmp = icmp samesign ult i16 %mul , 1000
0 commit comments