@@ -56,9 +56,14 @@ define void @test_select_agg_multiuse(i1 %cond, i64 %v1, i64 %v2, i64 %v3, i64 %
56
56
; CHECK-LABEL: define void @test_select_agg_multiuse(
57
57
; CHECK-SAME: i1 [[COND:%.*]], i64 [[V1:%.*]], i64 [[V2:%.*]], i64 [[V3:%.*]], i64 [[V4:%.*]]) {
58
58
; CHECK-NEXT: entry:
59
- ; CHECK-NEXT: [[X:%.*]] = select i1 [[COND]], i64 [[V1]], i64 [[V3]]
59
+ ; CHECK-NEXT: [[A0:%.*]] = insertvalue { i64, i64 } poison, i64 [[V1]], 0
60
+ ; CHECK-NEXT: [[A1:%.*]] = insertvalue { i64, i64 } [[A0]], i64 [[V2]], 1
61
+ ; CHECK-NEXT: [[B0:%.*]] = insertvalue { i64, i64 } poison, i64 [[V3]], 0
62
+ ; CHECK-NEXT: [[B1:%.*]] = insertvalue { i64, i64 } [[B0]], i64 [[V4]], 1
63
+ ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[COND]], { i64, i64 } [[A1]], { i64, i64 } [[B1]]
64
+ ; CHECK-NEXT: [[X:%.*]] = extractvalue { i64, i64 } [[SEL]], 0
60
65
; CHECK-NEXT: call void @use(i64 [[X]])
61
- ; CHECK-NEXT: [[Y:%.*]] = select i1 [[COND]] , i64 [[V2 ]], i64 [[V4]]
66
+ ; CHECK-NEXT: [[Y:%.*]] = extractvalue { i64 , i64 } [[SEL ]], 1
62
67
; CHECK-NEXT: call void @use(i64 [[Y]])
63
68
; CHECK-NEXT: ret void
64
69
;
0 commit comments