11; 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
33
44declare dso_local void @foo (i16 noundef) addrspace (1 )
55@ci = dso_local global [30 x i16 ] zeroinitializer , align 1
@@ -18,11 +18,9 @@ define void @loopreduce() {
1818; CHECK-NEXT: ; =>This Inner Loop Header: Depth=1
1919; CHECK-NEXT: ld r24, X+
2020; CHECK-NEXT: ld r25, X+
21- ; CHECK-NEXT: mov r14, r26
22- ; CHECK-NEXT: mov r15, r27
21+ ; CHECK-NEXT: movw r14, r26
2322; CHECK-NEXT: rcall foo
24- ; CHECK-NEXT: mov r26, r14
25- ; CHECK-NEXT: mov r27, r15
23+ ; CHECK-NEXT: movw r26, r14
2624; CHECK-NEXT: cp r26, r16
2725; CHECK-NEXT: cpc r27, r17
2826; CHECK-NEXT: brne .LBB0_1
@@ -38,7 +36,7 @@ for.body: ; preds = %entry, %for.body
3836 %i.03 = phi i16 [ 0 , %entry ], [ %inc , %for.body ]
3937 %arrayidx = getelementptr inbounds nuw [30 x i16 ], ptr @ci , i16 0 , i16 %i.03
4038 %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 )
4240 %inc = add nuw nsw i16 %i.03 , 1
4341 %exitcond.not = icmp eq i16 %inc , 30
4442 br i1 %exitcond.not , label %for.cond.cleanup , label %for.body
@@ -47,9 +45,8 @@ for.cond.cleanup: ; preds = %for.body
4745 ret void
4846}
4947
50-
51- define void @induction () {
52- ; CHECK-LABEL: induction:
48+ define void @indvar () {
49+ ; CHECK-LABEL: indvar:
5350; CHECK: ; %bb.0: ; %entry
5451; CHECK-NEXT: push r12
5552; CHECK-NEXT: push r13
@@ -58,28 +55,21 @@ define void @induction() {
5855; CHECK-NEXT: push r17
5956; CHECK-NEXT: ldi r24, 8
6057; CHECK-NEXT: ldi r25, 0
61- ; CHECK-NEXT: mov r14, r24
62- ; CHECK-NEXT: mov r15, r25
58+ ; CHECK-NEXT: movw r14, r24
6359; CHECK-NEXT: ldi r24, 1
6460; CHECK-NEXT: ldi r25, 0
65- ; CHECK-NEXT: mov r12, r24
66- ; CHECK-NEXT: mov r13, r25
61+ ; CHECK-NEXT: movw r12, r24
6762; CHECK-NEXT: ldi r17, 3
6863; CHECK-NEXT: .LBB1_1: ; %for.body
6964; 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
7266; 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
7769; CHECK-NEXT: rcall __mulhi3
78- ; CHECK-NEXT: mov r30, r14
79- ; CHECK-NEXT: mov r31, r15
70+ ; CHECK-NEXT: movw r30, r14
8071; CHECK-NEXT: adiw r30, 1
81- ; CHECK-NEXT: mov r14, r30
82- ; CHECK-NEXT: mov r15, r31
72+ ; CHECK-NEXT: movw r14, r30
8373; CHECK-NEXT: cpi r24, -24
8474; CHECK-NEXT: cpc r25, r17
8575; CHECK-NEXT: brlo .LBB1_1
9484 br label %for.body
9585for.body: ; preds = %entry, %for.body
9686 %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 )
9888 %inc = add nuw nsw i16 %i.03 , 1
9989 %mul = mul nuw nsw i16 %inc , %inc
10090 %cmp = icmp samesign ult i16 %mul , 1000
0 commit comments