BranchProbability fails an assert when its denominator is zero. Reported at <https://github.com/llvm/llvm-project/pull/159163#pullrequestreview-3406318423>.
31 lines
739 B
LLVM
31 lines
739 B
LLVM
; Check that zeroed branch weights do not crash or otherwise break basic
|
|
; LoopUnroll behavior when it tries to compute a probability from them.
|
|
|
|
; RUN: opt < %s -S -unroll-count=2 -passes='loop-unroll' 2>&1 | FileCheck %s
|
|
|
|
define void @test() {
|
|
entry:
|
|
br label %loop
|
|
|
|
loop:
|
|
br i1 false, label %end, label %loop, !prof !0
|
|
|
|
end:
|
|
ret void
|
|
}
|
|
|
|
!0 = !{!"branch_weights", i32 0, i32 0}
|
|
|
|
; CHECK: define void @test() {
|
|
; CHECK: entry:
|
|
; CHECK: br label %loop
|
|
; CHECK: loop:
|
|
; CHECK: br i1 false, label %end, label %loop.1, !prof !0
|
|
; CHECK: loop.1:
|
|
; CHECK: br i1 false, label %end, label %loop, !prof !0, !llvm.loop !1
|
|
; CHECK-NOT: loop.2
|
|
; CHECK: end:
|
|
; CHECK: ret void
|
|
; CHECK: }
|
|
; CHECK: !0 = !{!"branch_weights", i32 0, i32 0}
|