; RUN: opt -passes="require,require,jump-threading" -S < %s | FileCheck %s @d = global i8 0, align 1 @c = global i32 0, align 4 @b = global i1 false, align 2 @f = global i32 0, align 4 @e = global i32 0, align 4 @a = global i32 0, align 4 ; CHECK-LABEL: @test define i32 @test() !prof !0 { bb: %i = load i8, ptr @d, align 1 %i1 = add i8 %i, 1 store i8 %i1, ptr @d, align 1 %i2 = icmp eq i8 %i1, 0 br i1 %i2, label %bb4, label %bb15, !prof !1 bb4: %i5 = load i1, ptr @b, align 2 %i6 = select i1 %i5, i32 0, i32 2 %i7 = load i32, ptr @c, align 4 %i8 = xor i32 %i7, %i6 store i32 %i8, ptr @c, align 4 %i9 = icmp eq i32 %i7, %i6 br i1 %i9, label %bb13, label %bb10, !prof !1 bb10: %i11 = load i32, ptr @f, align 4 %i12 = or i32 %i11, 9 store i32 %i12, ptr @f, align 4 br label %bb18 bb13: store i1 true, ptr @b, align 2 br label %bb18 bb15: store i32 0, ptr @c, align 4 %i16 = load i32, ptr @e, align 4 %i17 = or i32 %i16, 9 store i32 %i17, ptr @e, align 4 %i19.pre = load i1, ptr @b, align 2 br label %bb18 bb18: %i19 = phi i1 [ %i5, %bb10 ], [ true, %bb13 ], [ %i19.pre, %bb15 ] %i20 = select i1 %i19, i32 0, i32 2, !prof !2 store i32 %i20, ptr @a, align 4 ret i32 0 } !0 = !{!"function_entry_count", i64 10} !1 = !{!"branch_weights", i32 5, i32 5} !2 = !{!"branch_weights", i32 0, i32 10} ; CHECK: br i1 %cond.fr{{.*}}, label %{{.*}}, label %{{.*}}, !prof ![[MD:[0-9]+]] ; CHECK: ![[MD]] = !{!"branch_weights", i32 0, i32 -2147483648}