1*da99e33aSMandeep Singh Grang; RUN: llc -mcpu=corei7 -mtriple=x86_64-linux -force-precise-rotation-cost < %s | FileCheck %s 2a94e3831SXinliang David Li 3a94e3831SXinliang David Lidefine void @bar() { 4a94e3831SXinliang David Li; Test that all edges in the loop chain are fall through with profile data. 5a94e3831SXinliang David Li; 6a94e3831SXinliang David Li; CHECK-LABEL: bar: 7a94e3831SXinliang David Li; CHECK: latch 8a94e3831SXinliang David Li; CHECK: header 9a94e3831SXinliang David Li; CHECK: if.then 10a94e3831SXinliang David Li; CHECK: end 11a94e3831SXinliang David Li 12a94e3831SXinliang David Lientry: 13a94e3831SXinliang David Li br label %header 14a94e3831SXinliang David Li 15a94e3831SXinliang David Liheader: 16a94e3831SXinliang David Li call void @e() 17a94e3831SXinliang David Li %call = call zeroext i1 @a() 18b61f01d0SXinliang David Li br i1 %call, label %if.then, label %latch, !prof !1 19a94e3831SXinliang David Li 20a94e3831SXinliang David Liif.then: 21a94e3831SXinliang David Li call void @f() 22a94e3831SXinliang David Li %call3 = call zeroext i1 @a() 23b61f01d0SXinliang David Li br i1 %call3, label %latch, label %end, !prof !2 24a94e3831SXinliang David Li 25a94e3831SXinliang David Lilatch: 26a94e3831SXinliang David Li call void @h() 27a94e3831SXinliang David Li %call2 = call zeroext i1 @a() 28b61f01d0SXinliang David Li br i1 %call2, label %header, label %end, !prof !3 29a94e3831SXinliang David Li 30a94e3831SXinliang David Liend: 31a94e3831SXinliang David Li ret void 32a94e3831SXinliang David Li} 33a94e3831SXinliang David Li 34a94e3831SXinliang David Lideclare zeroext i1 @a() 35a94e3831SXinliang David Lideclare void @e() 36a94e3831SXinliang David Lideclare void @f() 37a94e3831SXinliang David Lideclare void @g() 38a94e3831SXinliang David Lideclare void @h() 39a94e3831SXinliang David Li 40a94e3831SXinliang David Li!1 = !{!"branch_weights", i32 16, i32 16} 41b61f01d0SXinliang David Li!2 = !{!"branch_weights", i32 97, i32 3} 42a94e3831SXinliang David Li!3 = !{!"branch_weights", i32 97, i32 3} 43