35 lines
		
	
	
		
			1003 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1003 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
 | |
| ; RUN: llc -mtriple=powerpc64le-unknown-linux < %s | FileCheck %s
 | |
| ; RUN: llc -mtriple=powerpc64-ibm-aix-xcoff < %s | FileCheck %s
 | |
| 
 | |
| define double @ldbl_1(ppc_fp128 %x) {
 | |
| ; CHECK-LABEL: ldbl_1:
 | |
| ; CHECK:       # %bb.0: # %entry
 | |
| ; CHECK-NEXT:    fmr 1, 2
 | |
| ; CHECK-NEXT:    blr
 | |
| entry:
 | |
|   %0 = call double @llvm.ppc.unpack.longdouble(ppc_fp128 %x, i32 0)
 | |
|   ret double %0
 | |
| }
 | |
| 
 | |
| define double @ldbl_2(ppc_fp128 %x) {
 | |
| ; CHECK-LABEL: ldbl_2:
 | |
| ; CHECK:       # %bb.0: # %entry
 | |
| ; CHECK-NEXT:    blr
 | |
| entry:
 | |
|   %0 = call double @llvm.ppc.unpack.longdouble(ppc_fp128 %x, i32 1)
 | |
|   ret double %0
 | |
| }
 | |
| 
 | |
| define ppc_fp128 @ldbl_pack(double %x, double %y) {
 | |
| ; CHECK-LABEL: ldbl_pack:
 | |
| ; CHECK:       # %bb.0: # %entry
 | |
| ; CHECK-NEXT:    blr
 | |
| entry:
 | |
|   %0 = call ppc_fp128 @llvm.ppc.pack.longdouble(double %x, double %y)
 | |
|   ret ppc_fp128 %0
 | |
| }
 | |
| 
 | |
| declare double @llvm.ppc.unpack.longdouble(ppc_fp128, i32)
 | |
| declare ppc_fp128 @llvm.ppc.pack.longdouble(double, double)
 |