@@ -56,14 +56,9 @@ define void @test_select_agg_multiuse(i1 %cond, i64 %v1, i64 %v2, i64 %v3, i64 %
5656; CHECK-LABEL: define void @test_select_agg_multiuse(
5757; CHECK-SAME: i1 [[COND:%.*]], i64 [[V1:%.*]], i64 [[V2:%.*]], i64 [[V3:%.*]], i64 [[V4:%.*]]) {
5858; CHECK-NEXT: entry:
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
59+ ; CHECK-NEXT: [[X:%.*]] = select i1 [[COND]], i64 [[V1]], i64 [[V3]]
6560; CHECK-NEXT: call void @use(i64 [[X]])
66- ; CHECK-NEXT: [[Y:%.*]] = extractvalue { i64 , i64 } [[SEL ]], 1
61+ ; CHECK-NEXT: [[Y:%.*]] = select i1 [[COND]] , i64 [[V2 ]], i64 [[V4]]
6762; CHECK-NEXT: call void @use(i64 [[Y]])
6863; CHECK-NEXT: ret void
6964;
@@ -88,10 +83,8 @@ define i64 @test_extract_select_insert_left(ptr %p1, i64 %v) {
8883; CHECK-NEXT: [[CALL:%.*]] = call { ptr, i64 } @foo()
8984; CHECK-NEXT: [[ELM1:%.*]] = extractvalue { ptr, i64 } [[CALL]], 1
9085; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[ELM1]], [[V]]
91- ; CHECK-NEXT: [[FCA0:%.*]] = insertvalue { ptr, i64 } poison, ptr [[P1]], 0
92- ; CHECK-NEXT: [[FCA1:%.*]] = insertvalue { ptr, i64 } [[FCA0]], i64 4294967294, 1
93- ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[CMP]], { ptr, i64 } [[FCA1]], { ptr, i64 } [[CALL]]
94- ; CHECK-NEXT: [[RES:%.*]] = extractvalue { ptr, i64 } [[SELECT]], 1
86+ ; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { ptr, i64 } [[CALL]], 1
87+ ; CHECK-NEXT: [[RES:%.*]] = select i1 [[CMP]], i64 4294967294, i64 [[TMP1]]
9588; CHECK-NEXT: ret i64 [[RES]]
9689;
9790 %call = call { ptr , i64 } @foo ()
@@ -110,10 +103,8 @@ define i64 @test_extract_select_insert_right(ptr %p1, i64 %v) {
110103; CHECK-NEXT: [[CALL:%.*]] = call { ptr, i64 } @foo()
111104; CHECK-NEXT: [[ELM1:%.*]] = extractvalue { ptr, i64 } [[CALL]], 1
112105; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[ELM1]], [[V]]
113- ; CHECK-NEXT: [[FCA0:%.*]] = insertvalue { ptr, i64 } poison, ptr [[P1]], 0
114- ; CHECK-NEXT: [[FCA1:%.*]] = insertvalue { ptr, i64 } [[FCA0]], i64 4294967294, 1
115- ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[CMP]], { ptr, i64 } [[CALL]], { ptr, i64 } [[FCA1]]
116- ; CHECK-NEXT: [[RES:%.*]] = extractvalue { ptr, i64 } [[SELECT]], 1
106+ ; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { ptr, i64 } [[CALL]], 1
107+ ; CHECK-NEXT: [[RES:%.*]] = select i1 [[CMP]], i64 [[TMP1]], i64 4294967294
117108; CHECK-NEXT: ret i64 [[RES]]
118109;
119110 %call = call { ptr , i64 } @foo ()
0 commit comments