forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			30 lines
		
	
	
		
			720 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			720 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc -march=mips64el -mcpu=mips64r2 -O3 < %s |\
 | |
| ; RUN: FileCheck %s -check-prefix=HARD
 | |
| ; RUN: llc -march=mips64el -mcpu=mips64r2 -mattr=+soft-float < %s |\
 | |
| ; RUN: FileCheck %s -check-prefix=SOFT
 | |
| 
 | |
| ; Check that %add is not passed in an integer register.
 | |
| ;
 | |
| ; HARD-LABEL: callfloor:
 | |
| ; HARD-NOT: dmfc1 $4
 | |
| 
 | |
| define double @callfloor(double %d) nounwind readnone {
 | |
| entry:
 | |
|   %add = fadd double %d, 1.000000e+00
 | |
|   %call = tail call double @floor(double %add) nounwind readnone
 | |
|   ret double %call
 | |
| }
 | |
| 
 | |
| declare double @floor(double) nounwind readnone
 | |
| 
 | |
| ; Check call16.
 | |
| ;
 | |
| ; SOFT-LABEL: f64add:
 | |
| ; SOFT: ld $25, %call16(__adddf3)
 | |
| 
 | |
| define double @f64add(double %a, double %b) {
 | |
| entry:
 | |
|   %add = fadd double %a, %b
 | |
|   ret double %add
 | |
| }
 |