forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			23 lines
		
	
	
		
			641 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			641 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc -march=mipsel -mcpu=mips32r2 -mattr=+micromips \
 | |
| ; RUN:   -relocation-model=static -O2 < %s | FileCheck %s
 | |
| ; RUN: llc -march=mipsel -mcpu=mips32r6 -mattr=+micromips \
 | |
| ; RUN:   -relocation-model=static -O2 < %s | FileCheck %s -check-prefix=CHECK-MMR6
 | |
| 
 | |
| ; Function Attrs: nounwind
 | |
| define i32 @foo(i32 signext %a) #0 {
 | |
| entry:
 | |
|   %a.addr = alloca i32, align 4
 | |
|   store i32 %a, i32* %a.addr, align 4
 | |
|   %0 = load i32, i32* %a.addr, align 4
 | |
|   %shl = shl i32 %0, 2
 | |
|   %call = call i32 @bar(i32 signext %shl)
 | |
|   ret i32 %call
 | |
| }
 | |
| 
 | |
| declare i32 @bar(i32 signext) #1
 | |
| 
 | |
| ; CHECK:      jals
 | |
| ; CHECK-NEXT: sll16
 | |
| ; CHECK-MMR6: jal
 | |
| ; CHECK-MMR6-NOT: sll16
 |