5252define i32 @f3 (i32 %x ) {
5353; CHECK-LABEL: @f3(
5454; CHECK-NEXT: bb0:
55- ; CHECK: i32 0, label [[BB2:%.*]]
56- ; CHECK-NEXT: ] Edge: [label [[BB0:%.*]],label %bb2], RenamedOp: [[X:%.*]] }
57- ; CHECK-NEXT: [[X_0:%.*]] = bitcast i32 [[X]] to i32
55+ ; CHECK: [[X_0:%.*]] = bitcast i32 [[X:%.*]] to i32
5856; CHECK-NEXT: switch i32 [[X]], label [[BB1:%.*]] [
59- ; CHECK-NEXT: i32 0, label [[BB2]]
57+ ; CHECK-NEXT: i32 0, label [[BB2:%.* ]]
6058; CHECK-NEXT: ]
6159; CHECK: bb1:
6260; CHECK-NEXT: br label [[BB2]]
6361; CHECK: bb2:
64- ; CHECK-NEXT: [[COND:%.*]] = phi i32 [ [[X_0]], [[BB0]] ], [ 0, [[BB1]] ]
62+ ; CHECK-NEXT: [[COND:%.*]] = phi i32 [ [[X_0]], [[BB0:%.* ]] ], [ 0, [[BB1]] ]
6563; CHECK-NEXT: [[FOO:%.*]] = add i32 [[COND]], [[X]]
6664; CHECK-NEXT: ret i32 [[FOO]]
6765;
@@ -246,7 +244,8 @@ return:
246244define i32 @switch_default_dest (i32 %x ) {
247245; CHECK-LABEL: @switch_default_dest(
248246; CHECK-NEXT: case0:
249- ; CHECK-NEXT: switch i32 [[X:%.*]], label [[DEFAULT:%.*]] [
247+ ; CHECK: [[X_0:%.*]] = bitcast i32 [[X:%.*]] to i32
248+ ; CHECK-NEXT: switch i32 [[X]], label [[DEFAULT:%.*]] [
250249; CHECK-NEXT: i32 0, label [[PHI:%.*]]
251250; CHECK-NEXT: i32 1, label [[CASE1:%.*]]
252251; CHECK-NEXT: ]
@@ -255,7 +254,7 @@ define i32 @switch_default_dest(i32 %x) {
255254; CHECK: default:
256255; CHECK-NEXT: br label [[PHI]]
257256; CHECK: phi:
258- ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 0, [[CASE1]] ], [ 1, [[CASE0:%.*]] ], [ [[X ]], [[DEFAULT]] ]
257+ ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 0, [[CASE1]] ], [ 1, [[CASE0:%.*]] ], [ [[X_0 ]], [[DEFAULT]] ]
259258; CHECK-NEXT: [[FOO:%.*]] = add i32 [[RES]], [[X]]
260259; CHECK-NEXT: ret i32 [[FOO]]
261260;
@@ -280,14 +279,15 @@ phi:
280279define i32 @switch_multicases_dest (i32 %x ) {
281280; CHECK-LABEL: @switch_multicases_dest(
282281; CHECK-NEXT: entry:
283- ; CHECK-NEXT: switch i32 [[X:%.*]], label [[PHI:%.*]] [
282+ ; CHECK: [[X_0:%.*]] = bitcast i32 [[X:%.*]] to i32
283+ ; CHECK-NEXT: switch i32 [[X]], label [[PHI:%.*]] [
284284; CHECK-NEXT: i32 0, label [[CASE:%.*]]
285285; CHECK-NEXT: i32 1, label [[CASE]]
286286; CHECK-NEXT: ]
287287; CHECK: case:
288288; CHECK-NEXT: br label [[PHI]]
289289; CHECK: phi:
290- ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ [[X ]], [[CASE]] ], [ 0, [[ENTRY:%.*]] ]
290+ ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ [[X_0 ]], [[CASE]] ], [ 0, [[ENTRY:%.*]] ]
291291; CHECK-NEXT: [[FOO:%.*]] = add i32 [[RES]], [[X]]
292292; CHECK-NEXT: ret i32 [[FOO]]
293293;
@@ -309,14 +309,15 @@ phi:
309309define i32 @switch_multicases_dest2 (i32 %x ) {
310310; CHECK-LABEL: @switch_multicases_dest2(
311311; CHECK-NEXT: entry:
312- ; CHECK-NEXT: switch i32 [[X:%.*]], label [[DEFAULT:%.*]] [
312+ ; CHECK: [[X_0:%.*]] = bitcast i32 [[X:%.*]] to i32
313+ ; CHECK-NEXT: switch i32 [[X]], label [[DEFAULT:%.*]] [
313314; CHECK-NEXT: i32 0, label [[PHI:%.*]]
314315; CHECK-NEXT: i32 1, label [[PHI]]
315316; CHECK-NEXT: ]
316317; CHECK: default:
317318; CHECK-NEXT: br label [[PHI]]
318319; CHECK: phi:
319- ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ [[X ]], [[ENTRY:%.*]] ], [ [[X ]], [[ENTRY]] ], [ 0, [[DEFAULT]] ]
320+ ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ [[X_0 ]], [[ENTRY:%.*]] ], [ [[X_0 ]], [[ENTRY]] ], [ 0, [[DEFAULT]] ]
320321; CHECK-NEXT: [[FOO:%.*]] = add i32 [[RES]], [[X]]
321322; CHECK-NEXT: ret i32 [[FOO]]
322323;
0 commit comments