30 lines
		
	
	
		
			718 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			718 B
		
	
	
	
		
			LLVM
		
	
	
	
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
 | 
						|
; RUN: opt < %s -sccp -S | FileCheck %s
 | 
						|
 | 
						|
@A = constant i32 10
 | 
						|
 | 
						|
define i712 @test1() {
 | 
						|
; CHECK-LABEL: @test1(
 | 
						|
; CHECK-NEXT:    [[BB:%.*]] = and i64 ptrtoint (i32* @A to i64), undef
 | 
						|
; CHECK-NEXT:    [[C:%.*]] = icmp sge i64 [[BB]], 0
 | 
						|
; CHECK-NEXT:    [[X:%.*]] = select i1 [[C]], i712 0, i712 1
 | 
						|
; CHECK-NEXT:    ret i712 [[X]]
 | 
						|
;
 | 
						|
  %P = getelementptr i32, i32* @A, i32 0
 | 
						|
  %B = ptrtoint i32* %P to i64
 | 
						|
  %BB = and i64 %B, undef
 | 
						|
  %C = icmp sge i64 %BB, 0
 | 
						|
  %X = select i1 %C, i712 0, i712 1
 | 
						|
  ret i712 %X
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
define i712 @test2(i1 %C) {
 | 
						|
; CHECK-LABEL: @test2(
 | 
						|
; CHECK-NEXT:    ret i712 0
 | 
						|
;
 | 
						|
  %X = select i1 %C, i712 0, i712 undef
 | 
						|
  ret i712 %X
 | 
						|
}
 |