1; RUN: opt -S -jump-threading %s | FileCheck %s 2; RUN: opt -S -passes=jump-threading %s | FileCheck %s 3 4; Test if edge weights are properly updated after jump threading. 5 6; CHECK: !2 = !{!"branch_weights", i32 1629125526, i32 518358122} 7 8define void @foo(i32 %n) !prof !0 { 9entry: 10 %cmp = icmp sgt i32 %n, 10 11 br i1 %cmp, label %if.then.1, label %if.else.1, !prof !1 12 13if.then.1: 14 tail call void @a() 15 br label %if.cond 16 17if.else.1: 18 tail call void @b() 19 br label %if.cond 20 21if.cond: 22 %cmp1 = icmp sgt i32 %n, 5 23 br i1 %cmp1, label %if.then.2, label %if.else.2, !prof !2 24 25if.then.2: 26 tail call void @c() 27 br label %if.end 28 29if.else.2: 30 tail call void @d() 31 br label %if.end 32 33if.end: 34 ret void 35} 36 37declare void @a() 38declare void @b() 39declare void @c() 40declare void @d() 41 42!0 = !{!"function_entry_count", i64 1} 43!1 = !{!"branch_weights", i32 10, i32 5} 44!2 = !{!"branch_weights", i32 10, i32 1} 45