xref: /llvm-project/llvm/test/CodeGen/X86/block_set.ll (revision 687e80be7fcf75900c354152d8b21500c3b08850)
1; RUN: llc -mtriple=i686-linux < %s | FileCheck %s
2
3define i1 @block_filter() !prof !22{
4; CHECK-LABEL: block_filter
5; CHECK: %.entry
6; CHECK: %.header1
7; CHECK: %.bb1
8; CHECK: %.header2
9; CHECK: %.latch2
10; CHECK: %.cold
11; CHECK: %.pred
12; CHECK: %.problem
13; CHECK: %.latch1
14; CHECK: %.exit
15.entry:
16  %val0 = call i1 @bar()
17  br label %.header1
18
19.header1:
20  %val1 = call i1 @foo()
21  br i1 %val1, label %.bb1, label %.pred, !prof !2
22
23.bb1:
24  %val11 = call i1 @foo()
25  br i1 %val11, label %.header2, label %.pred, !prof !2
26
27.header2:
28  %val2 = call i1 @foo()
29  br i1 %val2, label %.latch2, label %.cold, !prof !10
30
31.cold:
32  %val4 = call i1 @bar()
33  br i1 %val4, label %.latch2, label %.problem
34
35.latch2:
36  %val5 = call i1 @foo()
37  br i1 %val5, label %.header2, label %.latch1, !prof !1
38
39.pred:
40  %valp = call i1 @foo()
41  br label %.problem
42
43.problem:
44  %val3 = call i1 @foo()
45  br label %.latch1
46
47.latch1:
48  %val6 = call i1 @foo()
49  br i1 %val6, label %.header1, label %.exit, !prof !1
50
51.exit:
52  %val7 = call i1 @foo()
53  ret i1 %val7
54}
55
56declare i1 @foo()
57declare i1 @bar()
58
59!1 = !{!"branch_weights", i32 5, i32 5}
60!2 = !{!"branch_weights", i32 60, i32 40}
61!3 = !{!"branch_weights", i32 90, i32 10}
62!10 = !{!"branch_weights", i32 90, i32 10}
63
64!22 = !{!"function_entry_count", i64 100}
65