mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	input filename so that opt doesn't print the input filename in the output so that grep lines in the tests don't unintentionally match strings in the input filename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81537 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			32 lines
		
	
	
		
			644 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			644 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
; RUN: opt < %s -instcombine -S | not grep {phi i32}
 | 
						|
; PR1777
 | 
						|
 | 
						|
declare i1 @rrr()
 | 
						|
 | 
						|
define i1 @zxcv() {
 | 
						|
entry:
 | 
						|
%a = alloca i32
 | 
						|
%i = ptrtoint i32* %a to i32
 | 
						|
%b = call i1 @rrr()
 | 
						|
br i1 %b, label %one, label %two
 | 
						|
 | 
						|
one:
 | 
						|
%x = phi i32 [%i, %entry], [%y, %two]
 | 
						|
%c = call i1 @rrr()
 | 
						|
br i1 %c, label %two, label %end
 | 
						|
 | 
						|
two:
 | 
						|
%y = phi i32 [%i, %entry], [%x, %one]
 | 
						|
%d = call i1 @rrr()
 | 
						|
br i1 %d, label %one, label %end
 | 
						|
 | 
						|
end:
 | 
						|
%f = phi i32 [ %x, %one], [%y, %two]
 | 
						|
; Change the %f to %i, and the optimizer suddenly becomes a lot smarter
 | 
						|
; even though %f must equal %i at this point
 | 
						|
%g = inttoptr i32 %f to i32*
 | 
						|
store i32 10, i32* %g
 | 
						|
%z = call i1 @rrr()
 | 
						|
ret i1 %z
 | 
						|
}
 |