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