; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s define void @test(i1 %cnd) !prof !{!"function_entry_count", i64 1024} { ; CHECK-LABEL: @test ; Using the assembly comments to indicate block order.. ; CHECK: # %loop ; CHECK: # %backedge ; CHECK: # %exit ; CHECK: # %rare ; CHECK: # %rare.1 br i1 undef, label %rare.1, label %preheader, !prof !{!"branch_weights", i32 0, i32 1000} rare.1: call void @foo() br label %preheader preheader: br label %loop loop: %iv = phi i32 [0, %preheader], [%iv.next, %backedge] call void @foo() br i1 %cnd, label %backedge, label %rare, !prof !{!"branch_weights", i32 1000000, i32 1} rare: call void @foo() br label %backedge backedge: call void @foo() %iv.next = add i32 %iv, 1 %cmp = icmp eq i32 %iv.next, 200 br i1 %cmp, label %loop, label %exit, !prof !{!"branch_weights", i32 1000, i32 1} exit: ret void } declare void @foo()