| ; RUN: llc -mtriple=i686-linux < %s | FileCheck %s | |
| define i1 @block_filter() !prof !22{ | |
| ; CHECK-LABEL: block_filter | |
| ; CHECK: %.entry | |
| ; CHECK: %.header1 | |
| ; CHECK: %.bb1 | |
| ; CHECK: %.header2 | |
| ; CHECK: %.latch2 | |
| ; CHECK: %.cold | |
| ; CHECK: %.pred | |
| ; CHECK: %.problem | |
| ; CHECK: %.latch1 | |
| ; CHECK: %.exit | |
| .entry: | |
| %val0 = call i1 @bar() | |
| br label %.header1 | |
| .header1: | |
| %val1 = call i1 @foo() | |
| br i1 %val1, label %.bb1, label %.pred, !prof !2 | |
| .bb1: | |
| %val11 = call i1 @foo() | |
| br i1 %val11, label %.header2, label %.pred, !prof !2 | |
| .header2: | |
| %val2 = call i1 @foo() | |
| br i1 %val2, label %.latch2, label %.cold, !prof !10 | |
| .cold: | |
| %val4 = call i1 @bar() | |
| br i1 %val4, label %.latch2, label %.problem | |
| .latch2: | |
| %val5 = call i1 @foo() | |
| br i1 %val5, label %.header2, label %.latch1, !prof !1 | |
| .pred: | |
| %valp = call i1 @foo() | |
| br label %.problem | |
| .problem: | |
| %val3 = call i1 @foo() | |
| br label %.latch1 | |
| .latch1: | |
| %val6 = call i1 @foo() | |
| br i1 %val6, label %.header1, label %.exit, !prof !1 | |
| .exit: | |
| %val7 = call i1 @foo() | |
| ret i1 %val7 | |
| } | |
| declare i1 @foo() | |
| declare i1 @bar() | |
| !1 = !{!"branch_weights", i32 5, i32 5} | |
| !2 = !{!"branch_weights", i32 60, i32 40} | |
| !3 = !{!"branch_weights", i32 90, i32 10} | |
| !10 = !{!"branch_weights", i32 90, i32 10} | |
| !22 = !{!"function_entry_count", i64 100} |