37 lines
732 B
LLVM
37 lines
732 B
LLVM
|
; RUN: llc -march=hexagon < %s
|
||
|
|
||
|
; Check that branch probabilities are set correctly after performing the
|
||
|
; simple variant of if-conversion. The converted block has a branch that
|
||
|
; is not analyzable.
|
||
|
|
||
|
target triple = "hexagon"
|
||
|
|
||
|
declare void @foo()
|
||
|
|
||
|
; CHECK-LABEL: danny
|
||
|
; CHECK: if (p0.new) jump:nt foo
|
||
|
define void @danny(i32 %x) {
|
||
|
%t0 = icmp sgt i32 %x, 0
|
||
|
br i1 %t0, label %tail, label %exit, !prof !0
|
||
|
tail:
|
||
|
tail call void @foo();
|
||
|
ret void
|
||
|
exit:
|
||
|
ret void
|
||
|
}
|
||
|
|
||
|
; CHECK-LABEL: sammy
|
||
|
; CHECK: if (!p0.new) jump:t foo
|
||
|
define void @sammy(i32 %x) {
|
||
|
%t0 = icmp sgt i32 %x, 0
|
||
|
br i1 %t0, label %exit, label %tail, !prof !0
|
||
|
tail:
|
||
|
tail call void @foo();
|
||
|
ret void
|
||
|
exit:
|
||
|
ret void
|
||
|
}
|
||
|
|
||
|
!0 = !{!"branch_weights", i32 1, i32 2000}
|
||
|
|