41 lines
		
	
	
		
			786 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			786 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | \
 | |
| ; RUN:    not grep {callee\[12\](}
 | |
| ; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | not grep mul
 | |
| 
 | |
| implementation
 | |
| 
 | |
| internal int %callee1(int %A, int %B) {
 | |
| 	%cond = seteq int %A, 123
 | |
| 	br bool %cond, label %T, label %F
 | |
| T:
 | |
| 	%C = mul int %B, %B
 | |
| 	ret int %C
 | |
| F:
 | |
| 	ret int 0
 | |
| }
 | |
| 
 | |
| internal int %callee2(int %A, int %B) {
 | |
| 	switch int %A, label %T [
 | |
|           int 10, label %F
 | |
|           int 1234, label %G
 | |
|         ]
 | |
| 	%cond = seteq int %A, 123
 | |
| 	br bool %cond, label %T, label %F
 | |
| T:
 | |
| 	%C = mul int %B, %B
 | |
| 	ret int %C
 | |
| F:
 | |
| 	ret int 0
 | |
| G:
 | |
| 	%D = mul int %B, %B
 | |
| 	%E = mul int %D, %B
 | |
| 	ret int %E
 | |
| }
 | |
| 
 | |
| int %test(int %A) {
 | |
| 	%X = call int %callee1(int 10, int %A)
 | |
| 	%Y = call int %callee2(int 10, int %A)
 | |
| 	%Z = add int %X, %Y
 | |
| 	ret int %Z
 | |
| }
 |