forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			32 lines
		
	
	
		
			555 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			555 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: opt -inline -attributor-cgscc -tailcallelim -S %s | FileCheck %s
 | |
| ;
 | |
| ; CHECK: define void @foo()
 | |
| ; CHECK: declare i32 @baz()
 | |
| ; CHECK-NOT: void @goo()
 | |
| ; CHECK-NOT: void @bar()
 | |
| 
 | |
| define void @foo() {
 | |
|   call fastcc void @bar()
 | |
|   ret void
 | |
| }
 | |
| 
 | |
| define internal fastcc void @goo() {
 | |
|   call fastcc void @bar()
 | |
|   ret void
 | |
| }
 | |
| 
 | |
| define internal fastcc void @bar() {
 | |
|   %call = call i32 @baz()
 | |
|   %cond = icmp eq i32 %call, 0
 | |
|   br i1 %cond, label %if.then, label %if.end
 | |
| 
 | |
| if.then:
 | |
|   call fastcc void @goo()
 | |
|   br label %if.end
 | |
| 
 | |
| if.end:
 | |
|   ret void
 | |
| }
 | |
| 
 | |
| declare i32 @baz()
 |