1; RUN: llc -march=hexagon < %s
2
3; Check that branch probabilities are set correctly after performing the
4; simple variant of if-conversion. The converted block has a branch that
5; is not analyzable.
6
7target triple = "hexagon"
8
9declare void @foo()
10
11; CHECK-LABEL: danny
12; CHECK: if (p0.new) jump:nt foo
13define void @danny(i32 %x) {
14  %t0 = icmp sgt i32 %x, 0
15  br i1 %t0, label %tail, label %exit, !prof !0
16tail:
17  tail call void @foo();
18  ret void
19exit:
20  ret void
21}
22
23; CHECK-LABEL: sammy
24; CHECK: if (!p0.new) jump:t foo
25define void @sammy(i32 %x) {
26  %t0 = icmp sgt i32 %x, 0
27  br i1 %t0, label %exit, label %tail, !prof !0
28tail:
29  tail call void @foo();
30  ret void
31exit:
32  ret void
33}
34
35!0 = !{!"branch_weights", i32 1, i32 2000}
36
37