forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			188 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			188 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc -mtriple powerpc64le-unknown-linux-gnu -fast-isel -O0 < %s | FileCheck %s
 | |
| 
 | |
| define i1 @TestULT(double %t0) {
 | |
| ; CHECK-LABEL: TestULT:
 | |
| ; CHECK: xscmpudp
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp ult double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 | |
| 
 | |
| define i1 @TestULE(double %t0) {
 | |
| ; CHECK-LABEL: TestULE:
 | |
| ; CHECK: fcmpu
 | |
| ; CHECK-NEXT: ble
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp ule double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 | |
| 
 | |
| define i1 @TestUNE(double %t0) {
 | |
| ; CHECK-LABEL: TestUNE:
 | |
| ; CHECK: fcmpu
 | |
| ; CHECK-NEXT: bne
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp une double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 | |
| 
 | |
| define i1 @TestUEQ(double %t0) {
 | |
| ; CHECK-LABEL: TestUEQ:
 | |
| ; CHECK: xscmpudp
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp ueq double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 | |
| 
 | |
| define i1 @TestUGT(double %t0) {
 | |
| ; CHECK-LABEL: TestUGT:
 | |
| ; CHECK: xscmpudp
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp ugt double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 | |
| 
 | |
| define i1 @TestUGE(double %t0) {
 | |
| ; CHECK-LABEL: TestUGE:
 | |
| ; CHECK: fcmpu
 | |
| ; CHECK-NEXT: bge
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp uge double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 | |
| 
 | |
| define i1 @TestOLT(double %t0) {
 | |
| ; CHECK-LABEL: TestOLT:
 | |
| ; CHECK: fcmpu
 | |
| ; CHECK-NEXT: blt
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp olt double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 | |
| 
 | |
| define i1 @TestOLE(double %t0) {
 | |
| ; CHECK-LABEL: TestOLE:
 | |
| ; CHECK: xscmpudp
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp ole double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 | |
| 
 | |
| define i1 @TestONE(double %t0) {
 | |
| ; CHECK-LABEL: TestONE:
 | |
| ; CHECK: xscmpudp
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp one double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 | |
| 
 | |
| define i1 @TestOEQ(double %t0) {
 | |
| ; CHECK-LABEL: TestOEQ:
 | |
| ; CHECK: fcmpu
 | |
| ; CHECK-NEXT: beq
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp oeq double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 | |
| 
 | |
| define i1 @TestOGT(double %t0) {
 | |
| ; CHECK-LABEL: TestOGT:
 | |
| ; CHECK: fcmpu
 | |
| ; CHECK-NEXT: bgt
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp ogt double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 | |
| 
 | |
| define i1 @TestOGE(double %t0) {
 | |
| ; CHECK-LABEL: TestOGE:
 | |
| ; CHECK: xscmpudp
 | |
| ; CHECK: blr
 | |
| entry:
 | |
|   %t1 = fcmp oge double %t0, 0.000000e+00
 | |
|   br i1 %t1, label %good, label %bad
 | |
| 
 | |
| bad:
 | |
|   ret i1 false
 | |
| 
 | |
| good:
 | |
|   ret i1 true
 | |
| }
 |