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}
 | 
						|
 |