17 lines
		
	
	
		
			469 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			469 B
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: opt < %s -basicaa -gvn -instcombine -S | FileCheck %s
 | 
						|
 | 
						|
define i32 @test() {
 | 
						|
; CHECK: ret i32 0
 | 
						|
        %A = alloca i32         ; <i32*> [#uses=3]
 | 
						|
        call void @foo( i32* %A )
 | 
						|
        %X = load i32, i32* %A               ; <i32> [#uses=1]
 | 
						|
        tail call void @bar( )
 | 
						|
        %Y = load i32, i32* %A               ; <i32> [#uses=1]
 | 
						|
        %Z = sub i32 %X, %Y             ; <i32> [#uses=1]
 | 
						|
        ret i32 %Z
 | 
						|
}
 | 
						|
 | 
						|
declare void @foo(i32*)
 | 
						|
 | 
						|
declare void @bar()
 |