@@ -5,10 +5,7 @@ define i64 @test_select_agg_constant(i64 %val, i1 %cond) {
5
5
; CHECK-LABEL: define i64 @test_select_agg_constant(
6
6
; CHECK-SAME: i64 [[VAL:%.*]], i1 [[COND:%.*]]) {
7
7
; CHECK-NEXT: entry:
8
- ; CHECK-NEXT: [[A:%.*]] = insertvalue { i64, i64 } { i64 1, i64 poison }, i64 [[VAL]], 1
9
- ; CHECK-NEXT: [[B:%.*]] = insertvalue { i64, i64 } { i64 0, i64 poison }, i64 [[VAL]], 1
10
- ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[COND]], { i64, i64 } [[A]], { i64, i64 } [[B]]
11
- ; CHECK-NEXT: [[RET:%.*]] = extractvalue { i64, i64 } [[SEL]], 0
8
+ ; CHECK-NEXT: [[RET:%.*]] = zext i1 [[COND]] to i64
12
9
; CHECK-NEXT: ret i64 [[RET]]
13
10
;
14
11
entry:
@@ -23,14 +20,9 @@ define void @test_select_agg_multiuse(i1 %cond, i64 %v1, i64 %v2, i64 %v3, i64 %
23
20
; CHECK-LABEL: define void @test_select_agg_multiuse(
24
21
; CHECK-SAME: i1 [[COND:%.*]], i64 [[V1:%.*]], i64 [[V2:%.*]], i64 [[V3:%.*]], i64 [[V4:%.*]]) {
25
22
; CHECK-NEXT: entry:
26
- ; CHECK-NEXT: [[A0:%.*]] = insertvalue { i64, i64 } poison, i64 [[V1]], 0
27
- ; CHECK-NEXT: [[A1:%.*]] = insertvalue { i64, i64 } [[A0]], i64 [[V2]], 1
28
- ; CHECK-NEXT: [[B0:%.*]] = insertvalue { i64, i64 } poison, i64 [[V3]], 0
29
- ; CHECK-NEXT: [[B1:%.*]] = insertvalue { i64, i64 } [[B0]], i64 [[V4]], 1
30
- ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[COND]], { i64, i64 } [[A1]], { i64, i64 } [[B1]]
31
- ; CHECK-NEXT: [[X:%.*]] = extractvalue { i64, i64 } [[SEL]], 0
23
+ ; CHECK-NEXT: [[X:%.*]] = select i1 [[COND]], i64 [[V1]], i64 [[V3]]
32
24
; CHECK-NEXT: call void @use(i64 [[X]])
33
- ; CHECK-NEXT: [[Y:%.*]] = extractvalue { i64 , i64 } [[SEL ]], 1
25
+ ; CHECK-NEXT: [[Y:%.*]] = select i1 [[COND]] , i64 [[V2 ]], i64 [[V4]]
34
26
; CHECK-NEXT: call void @use(i64 [[Y]])
35
27
; CHECK-NEXT: ret void
36
28
;
0 commit comments