@@ -245,7 +245,8 @@ return:
245245define i32 @switch_default_dest (i32 %x ) {
246246; CHECK-LABEL: @switch_default_dest(
247247; CHECK-NEXT: case0:
248- ; CHECK-NEXT: switch i32 [[X:%.*]], label [[DEFAULT:%.*]] [
248+ ; CHECK: [[X_0:%.*]] = bitcast i32 [[X:%.*]] to i32
249+ ; CHECK-NEXT: switch i32 [[X]], label [[DEFAULT:%.*]] [
249250; CHECK-NEXT: i32 0, label [[PHI:%.*]]
250251; CHECK-NEXT: i32 1, label [[CASE1:%.*]]
251252; CHECK-NEXT: ]
@@ -254,7 +255,7 @@ define i32 @switch_default_dest(i32 %x) {
254255; CHECK: default:
255256; CHECK-NEXT: br label [[PHI]]
256257; CHECK: phi:
257- ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 0, [[CASE1]] ], [ 1, [[CASE0:%.*]] ], [ [[X ]], [[DEFAULT]] ]
258+ ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ 0, [[CASE1]] ], [ 1, [[CASE0:%.*]] ], [ [[X_0 ]], [[DEFAULT]] ]
258259; CHECK-NEXT: [[FOO:%.*]] = add i32 [[RES]], [[X]]
259260; CHECK-NEXT: ret i32 [[FOO]]
260261;
@@ -279,14 +280,15 @@ phi:
279280define i32 @switch_multicases_dest (i32 %x ) {
280281; CHECK-LABEL: @switch_multicases_dest(
281282; CHECK-NEXT: entry:
282- ; CHECK-NEXT: switch i32 [[X:%.*]], label [[PHI:%.*]] [
283+ ; CHECK: [[X_0:%.*]] = bitcast i32 [[X:%.*]] to i32
284+ ; CHECK-NEXT: switch i32 [[X]], label [[PHI:%.*]] [
283285; CHECK-NEXT: i32 0, label [[CASE:%.*]]
284286; CHECK-NEXT: i32 1, label [[CASE]]
285287; CHECK-NEXT: ]
286288; CHECK: case:
287289; CHECK-NEXT: br label [[PHI]]
288290; CHECK: phi:
289- ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ [[X ]], [[CASE]] ], [ 0, [[ENTRY:%.*]] ]
291+ ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ [[X_0 ]], [[CASE]] ], [ 0, [[ENTRY:%.*]] ]
290292; CHECK-NEXT: [[FOO:%.*]] = add i32 [[RES]], [[X]]
291293; CHECK-NEXT: ret i32 [[FOO]]
292294;
@@ -308,14 +310,15 @@ phi:
308310define i32 @switch_multicases_dest2 (i32 %x ) {
309311; CHECK-LABEL: @switch_multicases_dest2(
310312; CHECK-NEXT: entry:
311- ; CHECK-NEXT: switch i32 [[X:%.*]], label [[DEFAULT:%.*]] [
313+ ; CHECK: [[X_0:%.*]] = bitcast i32 [[X:%.*]] to i32
314+ ; CHECK-NEXT: switch i32 [[X]], label [[DEFAULT:%.*]] [
312315; CHECK-NEXT: i32 0, label [[PHI:%.*]]
313316; CHECK-NEXT: i32 1, label [[PHI]]
314317; CHECK-NEXT: ]
315318; CHECK: default:
316319; CHECK-NEXT: br label [[PHI]]
317320; CHECK: phi:
318- ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ [[X ]], [[ENTRY:%.*]] ], [ [[X ]], [[ENTRY]] ], [ 0, [[DEFAULT]] ]
321+ ; CHECK-NEXT: [[RES:%.*]] = phi i32 [ [[X_0 ]], [[ENTRY:%.*]] ], [ [[X_0 ]], [[ENTRY]] ], [ 0, [[DEFAULT]] ]
319322; CHECK-NEXT: [[FOO:%.*]] = add i32 [[RES]], [[X]]
320323; CHECK-NEXT: ret i32 [[FOO]]
321324;
0 commit comments