1- ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
21; RUN: llc < %s -mtriple=avr | FileCheck %s
32
43; CHECK-LABEL: ret_struct_i8_i16_i8
54define { i8 , i16 , i8 } @ret_struct_i8_i16_i8 () {
6- ; CHECK-LABEL: ret_struct_i8_i16_i8:
7- ; CHECK: ; %bb.0: ; %start
8- ; CHECK-NEXT: ldi r22, 64
9- ; CHECK-NEXT: ldi r18, 0
10- ; CHECK-NEXT: ldi r19, 4
11- ; CHECK-NEXT: ldi r25, 11
12- ; CHECK-NEXT: mov r23, r18
13- ; CHECK-NEXT: mov r24, r19
14- ; CHECK-NEXT: ret
155start:
166 ; for some reason the i16 is loaded to r24:r25
177 ; and then moved to r23:r24
8+ ; CHECK: ldi r22, 64
9+ ; CHECK-NEXT: r23,
10+ ; CHECK-NEXT: r24,
11+ ; CHECK-NEXT: r25, 11
1812 %0 = insertvalue {i8 , i16 , i8 } undef , i8 64 , 0
1913 %1 = insertvalue {i8 , i16 , i8 } %0 , i16 1024 , 1
2014 %2 = insertvalue {i8 , i16 , i8 } %1 , i8 11 , 2
@@ -23,16 +17,13 @@ start:
2317
2418; CHECK-LABEL: ret_struct_i32_i16
2519define { i32 , i16 } @ret_struct_i32_i16 () {
26- ; CHECK-LABEL: ret_struct_i32_i16:
27- ; CHECK: ; %bb.0: ; %start
28- ; CHECK-NEXT: ldi r18, 4
29- ; CHECK-NEXT: ldi r19, 3
30- ; CHECK-NEXT: ldi r20, 2
31- ; CHECK-NEXT: ldi r21, 1
32- ; CHECK-NEXT: ldi r22, 0
33- ; CHECK-NEXT: ldi r23, 8
34- ; CHECK-NEXT: ret
3520start:
21+ ; CHECK: ldi r18, 4
22+ ; CHECK-NEXT: ldi r19, 3
23+ ; CHECK-NEXT: ldi r20, 2
24+ ; CHECK-NEXT: ldi r21, 1
25+ ; CHECK-NEXT: ldi r22, 0
26+ ; CHECK-NEXT: ldi r23, 8
3627 %0 = insertvalue { i32 , i16 } undef , i32 16909060 , 0
3728 %1 = insertvalue { i32 , i16 } %0 , i16 2048 , 1
3829 ret { i32 , i16 } %1
0 commit comments