[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / Transforms / JumpThreading / update-edge-weight.ll
blobe6a6093279de13a3259b94c5847091fe4764c429
1 ; RUN: opt -S -jump-threading %s | FileCheck %s
2 ; RUN: opt -S -passes=jump-threading %s | FileCheck %s
4 ; Test if edge weights are properly updated after jump threading.
6 ; CHECK: !2 = !{!"branch_weights", i32 1629125526, i32 518358122}
8 define void @foo(i32 %n) !prof !0 {
9 entry:
10   %cmp = icmp sgt i32 %n, 10
11   br i1 %cmp, label %if.then.1, label %if.else.1, !prof !1
13 if.then.1:
14   tail call void @a()
15   br label %if.cond
17 if.else.1:
18   tail call void @b()
19   br label %if.cond
21 if.cond:
22   %cmp1 = icmp sgt i32 %n, 5
23   br i1 %cmp1, label %if.then.2, label %if.else.2, !prof !2
25 if.then.2:
26   tail call void @c()
27   br label %if.end
29 if.else.2:
30   tail call void @d()
31   br label %if.end
33 if.end:
34   ret void
37 declare void @a()
38 declare void @b()
39 declare void @c()
40 declare void @d()
42 !0 = !{!"function_entry_count", i64 1}
43 !1 = !{!"branch_weights", i32 10, i32 5}
44 !2 = !{!"branch_weights", i32 10, i32 1}