Skip to content

Commit 9d7b3bb

Browse files
committed
Precommit test
Change-Id: I01151de8a1f578026ef285883f793db1af77f9a9
1 parent e10e2f7 commit 9d7b3bb

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

llvm/test/Transforms/DFAJumpThreading/dfa-jump-threading-transform.ll

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,64 @@ bb2: ; preds = %select.unfold
445445
unreachable
446446
}
447447

448+
449+
define i16 @DTU_update_crash() {
450+
; CHECK-LABEL: @DTU_update_crash(
451+
; CHECK-NEXT: entry:
452+
; CHECK-NEXT: br label [[FOR_BODY_SELECTBLOCK:%.*]]
453+
; CHECK: for.body.selectblock:
454+
; CHECK-NEXT: br i1 false, label [[SWITCHBLOCK_JT0:%.*]], label [[SEL_SI_UNFOLD_FALSE_JT0:%.*]]
455+
; CHECK: sel.si.unfold.false:
456+
; CHECK-NEXT: br label [[SWITCHBLOCK:%.*]]
457+
; CHECK: sel.si.unfold.false.jt0:
458+
; CHECK-NEXT: [[DOTSI_UNFOLD_PHI_JT0:%.*]] = phi i32 [ 0, [[FOR_BODY_SELECTBLOCK]] ]
459+
; CHECK-NEXT: br label [[SWITCHBLOCK_JT0]]
460+
; CHECK: switchblock:
461+
; CHECK-NEXT: [[SWITCHBLOCK_PHI:%.*]] = phi i32 [ poison, [[SEL_SI_UNFOLD_FALSE:%.*]] ]
462+
; CHECK-NEXT: [[P_24_ADDR_3:%.*]] = phi i32 [ 0, [[SEL_SI_UNFOLD_FALSE]] ]
463+
; CHECK-NEXT: switch i32 [[SWITCHBLOCK_PHI]], label [[CLEANUP:%.*]] [
464+
; CHECK-NEXT: i32 0, label [[FOR_INC:%.*]]
465+
; CHECK-NEXT: i32 1, label [[CLEANUP]]
466+
; CHECK-NEXT: i32 5, label [[FOR_BODY_SELECTBLOCK]]
467+
; CHECK-NEXT: ]
468+
; CHECK: switchblock.jt0:
469+
; CHECK-NEXT: [[SWITCHBLOCK_PHI_JT0:%.*]] = phi i32 [ 0, [[FOR_BODY_SELECTBLOCK]] ], [ [[DOTSI_UNFOLD_PHI_JT0]], [[SEL_SI_UNFOLD_FALSE_JT0]] ]
470+
; CHECK-NEXT: [[P_24_ADDR_3_JT0:%.*]] = phi i32 [ 0, [[FOR_BODY_SELECTBLOCK]] ], [ 0, [[SEL_SI_UNFOLD_FALSE_JT0]] ]
471+
; CHECK-NEXT: br label [[FOR_INC]]
472+
; CHECK: for.inc:
473+
; CHECK-NEXT: [[P_24_ADDR_31:%.*]] = phi i32 [ [[P_24_ADDR_3_JT0]], [[SWITCHBLOCK_JT0]] ], [ [[P_24_ADDR_3]], [[SWITCHBLOCK]] ]
474+
; CHECK-NEXT: br i1 false, label [[FOR_BODY_SELECTBLOCK]], label [[CLEANUP]]
475+
; CHECK: cleanup:
476+
; CHECK-NEXT: [[P_24_ADDR_32:%.*]] = phi i32 [ [[P_24_ADDR_31]], [[FOR_INC]] ], [ [[P_24_ADDR_3]], [[SWITCHBLOCK]] ], [ [[P_24_ADDR_3]], [[SWITCHBLOCK]] ]
477+
; CHECK-NEXT: call void (...) @llvm.fake.use(i32 [[P_24_ADDR_32]])
478+
; CHECK-NEXT: ret i16 0
479+
;
480+
entry:
481+
br label %for.body.selectblock
482+
483+
for.body.selectblock: ; preds = %for.inc, %switchblock, %entry
484+
%sel = select i1 false, i32 0, i32 0
485+
br label %switchblock
486+
487+
switchblock: ; preds = %for.body.selectblock
488+
%switchblock.phi = phi i32 [ %sel, %for.body.selectblock ]
489+
%p_24.addr.3 = phi i32 [ 0, %for.body.selectblock ]
490+
switch i32 %switchblock.phi, label %cleanup [
491+
i32 0, label %for.inc
492+
i32 1, label %cleanup
493+
i32 5, label %for.body.selectblock
494+
]
495+
496+
for.inc: ; preds = %switchblock
497+
br i1 false, label %for.body.selectblock, label %cleanup
498+
499+
cleanup: ; preds = %for.inc, %switchblock, %switchblock
500+
call void (...) @llvm.fake.use(i32 %p_24.addr.3)
501+
ret i16 0
502+
}
503+
504+
declare void @llvm.fake.use(...)
505+
448506
!0 = !{!"function_entry_count", i32 10}
449507
!1 = !{!"branch_weights", i32 3, i32 5}
450508
;.

0 commit comments

Comments
 (0)