@@ -1322,13 +1322,14 @@ define i32 @switch_with_icmp_select_after_it(i32 %x) {
13221322; CHECK-NEXT: i32 21, label [[END]]
13231323; CHECK-NEXT: i32 48, label [[END]]
13241324; CHECK-NEXT: i32 16, label [[END]]
1325+ ; CHECK-NEXT: i32 80, label [[SWITCH_EDGE:%.*]]
13251326; CHECK-NEXT: ]
1327+ ; CHECK: switch.edge:
1328+ ; CHECK-NEXT: br label [[END]]
13261329; CHECK: default:
1327- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X]], 80
1328- ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[CMP]], i32 2, i32 3
13291330; CHECK-NEXT: br label [[END]]
13301331; CHECK: end:
1331- ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 1, [[ENTRY:%.*]] ], [ 1, [[ENTRY]] ], [ 1, [[ENTRY]] ], [ 1, [[ENTRY]] ], [ [[SEL]] , [[DEFAULT ]] ]
1332+ ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 1, [[ENTRY:%.*]] ], [ 1, [[ENTRY]] ], [ 1, [[ENTRY]] ], [ 1, [[ENTRY]] ], [ 3, [[DEFAULT]] ] , [ 2, [[SWITCH_EDGE ]] ]
13321333; CHECK-NEXT: ret i32 [[RES]]
13331334;
13341335entry:
@@ -1356,13 +1357,12 @@ define i32 @switch_with_icmp_select_after_it2(i32 %x) {
13561357; CHECK-NEXT: i32 21, label [[END]]
13571358; CHECK-NEXT: i32 48, label [[END]]
13581359; CHECK-NEXT: i32 16, label [[END]]
1360+ ; CHECK-NEXT: i32 80, label [[END]]
13591361; CHECK-NEXT: ]
13601362; CHECK: default:
1361- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X]], 80
1362- ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[CMP]], i32 1, i32 3
13631363; CHECK-NEXT: br label [[END]]
13641364; CHECK: end:
1365- ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 1, [[ENTRY:%.*]] ], [ 1, [[ENTRY]] ], [ 1, [[ENTRY]] ], [ 1, [[ENTRY]] ], [ [[SEL]] , [[DEFAULT ]] ]
1365+ ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 1, [[ENTRY:%.*]] ], [ 1, [[ENTRY]] ], [ 1, [[ENTRY]] ], [ 1, [[ENTRY]] ], [ 3, [[DEFAULT]] ] , [ 1, [[ENTRY ]] ]
13661366; CHECK-NEXT: ret i32 [[RES]]
13671367;
13681368entry:
@@ -1385,19 +1385,9 @@ end:
13851385define i32 @switch_with_icmp_select_after_it3 (i32 %x ) {
13861386; CHECK-LABEL: @switch_with_icmp_select_after_it3(
13871387; CHECK-NEXT: entry:
1388- ; CHECK-NEXT: switch i32 [[X:%.*]], label [[DEFAULT:%.*]] [
1389- ; CHECK-NEXT: i32 18, label [[END:%.*]]
1390- ; CHECK-NEXT: i32 21, label [[END]]
1391- ; CHECK-NEXT: i32 48, label [[END]]
1392- ; CHECK-NEXT: i32 16, label [[END]]
1393- ; CHECK-NEXT: ]
1394- ; CHECK: default:
1395- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X]], 80
1388+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X:%.*]], 80
13961389; CHECK-NEXT: [[SEL:%.*]] = select i1 [[CMP]], i32 3, i32 1
1397- ; CHECK-NEXT: br label [[END]]
1398- ; CHECK: end:
1399- ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 1, [[ENTRY:%.*]] ], [ 1, [[ENTRY]] ], [ 1, [[ENTRY]] ], [ 1, [[ENTRY]] ], [ [[SEL]], [[DEFAULT]] ]
1400- ; CHECK-NEXT: ret i32 [[RES]]
1390+ ; CHECK-NEXT: ret i32 [[SEL]]
14011391;
14021392entry:
14031393 switch i32 %x , label %default [
0 commit comments