Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / PowerPC / fast-isel-fcmp-nan.ll
blob045b67bcf733496e6eefa283fe23598ac3321bb1
1 ; RUN: llc -verify-machineinstrs -mtriple powerpc64le-unknown-linux-gnu -fast-isel -O0 < %s | FileCheck %s
3 define i1 @TestULT(double %t0) {
4 ; CHECK-LABEL: TestULT:
5 ; CHECK: fcmpu
6 ; CHECK: blr
7 entry:
8   %t1 = fcmp ult double %t0, 0.000000e+00
9   br i1 %t1, label %good, label %bad
11 bad:
12   ret i1 false
14 good:
15   ret i1 true
18 define i1 @TestULE(double %t0) {
19 ; CHECK-LABEL: TestULE:
20 ; CHECK: xscmpudp
21 ; CHECK-NEXT: ble
22 ; CHECK: blr
23 entry:
24   %t1 = fcmp ule double %t0, 0.000000e+00
25   br i1 %t1, label %good, label %bad
27 bad:
28   ret i1 false
30 good:
31   ret i1 true
34 define i1 @TestUNE(double %t0) {
35 ; CHECK-LABEL: TestUNE:
36 ; CHECK: xscmpudp
37 ; CHECK-NEXT: bne
38 ; CHECK: blr
39 entry:
40   %t1 = fcmp une double %t0, 0.000000e+00
41   br i1 %t1, label %good, label %bad
43 bad:
44   ret i1 false
46 good:
47   ret i1 true
50 define i1 @TestUEQ(double %t0) {
51 ; CHECK-LABEL: TestUEQ:
52 ; CHECK: fcmpu
53 ; CHECK: blr
54 entry:
55   %t1 = fcmp ueq double %t0, 0.000000e+00
56   br i1 %t1, label %good, label %bad
58 bad:
59   ret i1 false
61 good:
62   ret i1 true
65 define i1 @TestUGT(double %t0) {
66 ; CHECK-LABEL: TestUGT:
67 ; CHECK: fcmpu
68 ; CHECK: blr
69 entry:
70   %t1 = fcmp ugt double %t0, 0.000000e+00
71   br i1 %t1, label %good, label %bad
73 bad:
74   ret i1 false
76 good:
77   ret i1 true
80 define i1 @TestUGE(double %t0) {
81 ; CHECK-LABEL: TestUGE:
82 ; CHECK: xscmpudp
83 ; CHECK-NEXT: bge
84 ; CHECK: blr
85 entry:
86   %t1 = fcmp uge double %t0, 0.000000e+00
87   br i1 %t1, label %good, label %bad
89 bad:
90   ret i1 false
92 good:
93   ret i1 true
96 define i1 @TestOLT(double %t0) {
97 ; CHECK-LABEL: TestOLT:
98 ; CHECK: xscmpudp
99 ; CHECK-NEXT: blt
100 ; CHECK: blr
101 entry:
102   %t1 = fcmp olt double %t0, 0.000000e+00
103   br i1 %t1, label %good, label %bad
105 bad:
106   ret i1 false
108 good:
109   ret i1 true
112 define i1 @TestOLE(double %t0) {
113 ; CHECK-LABEL: TestOLE:
114 ; CHECK: fcmpu
115 ; CHECK: blr
116 entry:
117   %t1 = fcmp ole double %t0, 0.000000e+00
118   br i1 %t1, label %good, label %bad
120 bad:
121   ret i1 false
123 good:
124   ret i1 true
127 define i1 @TestONE(double %t0) {
128 ; CHECK-LABEL: TestONE:
129 ; CHECK: fcmpu
130 ; CHECK: blr
131 entry:
132   %t1 = fcmp one double %t0, 0.000000e+00
133   br i1 %t1, label %good, label %bad
135 bad:
136   ret i1 false
138 good:
139   ret i1 true
142 define i1 @TestOEQ(double %t0) {
143 ; CHECK-LABEL: TestOEQ:
144 ; CHECK: xscmpudp
145 ; CHECK-NEXT: beq
146 ; CHECK: blr
147 entry:
148   %t1 = fcmp oeq double %t0, 0.000000e+00
149   br i1 %t1, label %good, label %bad
151 bad:
152   ret i1 false
154 good:
155   ret i1 true
158 define i1 @TestOGT(double %t0) {
159 ; CHECK-LABEL: TestOGT:
160 ; CHECK: xscmpudp
161 ; CHECK-NEXT: bgt
162 ; CHECK: blr
163 entry:
164   %t1 = fcmp ogt double %t0, 0.000000e+00
165   br i1 %t1, label %good, label %bad
167 bad:
168   ret i1 false
170 good:
171   ret i1 true
174 define i1 @TestOGE(double %t0) {
175 ; CHECK-LABEL: TestOGE:
176 ; CHECK: fcmpu
177 ; CHECK: blr
178 entry:
179   %t1 = fcmp oge double %t0, 0.000000e+00
180   br i1 %t1, label %good, label %bad
182 bad:
183   ret i1 false
185 good:
186   ret i1 true