@@ -25,8 +25,8 @@ non_null:
25
25
ret i32 %r
26
26
}
27
27
28
- define i32 @caller (i32 %arg ) {
29
- ; CHECK-LABEL: define i32 @caller (
28
+ define i32 @caller_simplified (i32 %arg ) {
29
+ ; CHECK-LABEL: define i32 @caller_simplified (
30
30
; CHECK-SAME: i32 [[ARG:%.*]]) {
31
31
; CHECK-NEXT: [[AGG0:%.*]] = insertvalue [2 x i32] poison, i32 0, 0
32
32
; CHECK-NEXT: [[AGG1:%.*]] = insertvalue [2 x i32] [[AGG0]], i32 [[ARG]], 1
@@ -37,3 +37,17 @@ define i32 @caller(i32 %arg) {
37
37
%v = call i32 @callee ([2 x i32 ] %agg1 )
38
38
ret i32 %v
39
39
}
40
+
41
+ define i32 @caller_not_simplified (i32 %arg ) {
42
+ ; CHECK-LABEL: define i32 @caller_not_simplified(
43
+ ; CHECK-SAME: i32 [[ARG:%.*]]) {
44
+ ; CHECK-NEXT: [[AGG0:%.*]] = insertvalue [2 x i32] poison, i32 1, 0
45
+ ; CHECK-NEXT: [[AGG1:%.*]] = insertvalue [2 x i32] [[AGG0]], i32 [[ARG]], 1
46
+ ; CHECK-NEXT: [[V:%.*]] = call i32 @callee([2 x i32] [[AGG1]])
47
+ ; CHECK-NEXT: ret i32 [[V]]
48
+ ;
49
+ %agg0 = insertvalue [2 x i32 ] poison, i32 1 , 0
50
+ %agg1 = insertvalue [2 x i32 ] %agg0 , i32 %arg , 1
51
+ %v = call i32 @callee ([2 x i32 ] %agg1 )
52
+ ret i32 %v
53
+ }
0 commit comments