| ; 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} |