Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Side by Side Diff: crosstest/test_fcmp.pnacl.ll

Issue 265703002: Add Om1 lowering with no optimizations (Closed) Base URL: https://gerrit.chromium.org/gerrit/p/native_client/pnacl-subzero.git@master
Patch Set: Merge changed from Karl's committed CL Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « crosstest/test_fcmp.def ('k') | crosstest/test_fcmp_main.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 target triple = "i686-pc-linux-gnu"
2
3 ; This file is extracted from fp.pnacl.ll in the lit tests, with
4 ; the "internal" attribute removed from the functions.
5
6 define i32 @fcmpFalseFloat(float %a, float %b) {
7 entry:
8 %cmp = fcmp false float %a, %b
9 %cmp.ret_ext = zext i1 %cmp to i32
10 ret i32 %cmp.ret_ext
11 }
12 ; CHECK: fcmpFalseFloat:
13 ; CHECK: mov {{.*}}, 0
14
15 define i32 @fcmpFalseDouble(double %a, double %b) {
16 entry:
17 %cmp = fcmp false double %a, %b
18 %cmp.ret_ext = zext i1 %cmp to i32
19 ret i32 %cmp.ret_ext
20 }
21 ; CHECK: fcmpFalseDouble:
22 ; CHECK: mov {{.*}}, 0
23
24 define i32 @fcmpOeqFloat(float %a, float %b) {
25 entry:
26 %cmp = fcmp oeq float %a, %b
27 %cmp.ret_ext = zext i1 %cmp to i32
28 ret i32 %cmp.ret_ext
29 }
30 ; CHECK: fcmpOeqFloat:
31 ; CHECK: ucomiss
32 ; CHECK: jne .
33 ; CHECK: jp .
34
35 define i32 @fcmpOeqDouble(double %a, double %b) {
36 entry:
37 %cmp = fcmp oeq double %a, %b
38 %cmp.ret_ext = zext i1 %cmp to i32
39 ret i32 %cmp.ret_ext
40 }
41 ; CHECK: fcmpOeqDouble:
42 ; CHECK: ucomisd
43 ; CHECK: jne .
44 ; CHECK: jp .
45
46 define i32 @fcmpOgtFloat(float %a, float %b) {
47 entry:
48 %cmp = fcmp ogt float %a, %b
49 %cmp.ret_ext = zext i1 %cmp to i32
50 ret i32 %cmp.ret_ext
51 }
52 ; CHECK: fcmpOgtFloat:
53 ; CHECK: ucomiss
54 ; CHECK: ja .
55
56 define i32 @fcmpOgtDouble(double %a, double %b) {
57 entry:
58 %cmp = fcmp ogt double %a, %b
59 %cmp.ret_ext = zext i1 %cmp to i32
60 ret i32 %cmp.ret_ext
61 }
62 ; CHECK: fcmpOgtDouble:
63 ; CHECK: ucomisd
64 ; CHECK: ja .
65
66 define i32 @fcmpOgeFloat(float %a, float %b) {
67 entry:
68 %cmp = fcmp oge float %a, %b
69 %cmp.ret_ext = zext i1 %cmp to i32
70 ret i32 %cmp.ret_ext
71 }
72 ; CHECK: fcmpOgeFloat:
73 ; CHECK: ucomiss
74 ; CHECK: jae .
75
76 define i32 @fcmpOgeDouble(double %a, double %b) {
77 entry:
78 %cmp = fcmp oge double %a, %b
79 %cmp.ret_ext = zext i1 %cmp to i32
80 ret i32 %cmp.ret_ext
81 }
82 ; CHECK: fcmpOgeDouble:
83 ; CHECK: ucomisd
84 ; CHECK: jae .
85
86 define i32 @fcmpOltFloat(float %a, float %b) {
87 entry:
88 %cmp = fcmp olt float %a, %b
89 %cmp.ret_ext = zext i1 %cmp to i32
90 ret i32 %cmp.ret_ext
91 }
92 ; CHECK: fcmpOltFloat:
93 ; CHECK: ucomiss
94 ; CHECK: ja .
95
96 define i32 @fcmpOltDouble(double %a, double %b) {
97 entry:
98 %cmp = fcmp olt double %a, %b
99 %cmp.ret_ext = zext i1 %cmp to i32
100 ret i32 %cmp.ret_ext
101 }
102 ; CHECK: fcmpOltDouble:
103 ; CHECK: ucomisd
104 ; CHECK: ja .
105
106 define i32 @fcmpOleFloat(float %a, float %b) {
107 entry:
108 %cmp = fcmp ole float %a, %b
109 %cmp.ret_ext = zext i1 %cmp to i32
110 ret i32 %cmp.ret_ext
111 }
112 ; CHECK: fcmpOleFloat:
113 ; CHECK: ucomiss
114 ; CHECK: jae .
115
116 define i32 @fcmpOleDouble(double %a, double %b) {
117 entry:
118 %cmp = fcmp ole double %a, %b
119 %cmp.ret_ext = zext i1 %cmp to i32
120 ret i32 %cmp.ret_ext
121 }
122 ; CHECK: fcmpOleDouble:
123 ; CHECK: ucomisd
124 ; CHECK: jae .
125
126 define i32 @fcmpOneFloat(float %a, float %b) {
127 entry:
128 %cmp = fcmp one float %a, %b
129 %cmp.ret_ext = zext i1 %cmp to i32
130 ret i32 %cmp.ret_ext
131 }
132 ; CHECK: fcmpOneFloat:
133 ; CHECK: ucomiss
134 ; CHECK: jne .
135
136 define i32 @fcmpOneDouble(double %a, double %b) {
137 entry:
138 %cmp = fcmp one double %a, %b
139 %cmp.ret_ext = zext i1 %cmp to i32
140 ret i32 %cmp.ret_ext
141 }
142 ; CHECK: fcmpOneDouble:
143 ; CHECK: ucomisd
144 ; CHECK: jne .
145
146 define i32 @fcmpOrdFloat(float %a, float %b) {
147 entry:
148 %cmp = fcmp ord float %a, %b
149 %cmp.ret_ext = zext i1 %cmp to i32
150 ret i32 %cmp.ret_ext
151 }
152 ; CHECK: fcmpOrdFloat:
153 ; CHECK: ucomiss
154 ; CHECK: jnp .
155
156 define i32 @fcmpOrdDouble(double %a, double %b) {
157 entry:
158 %cmp = fcmp ord double %a, %b
159 %cmp.ret_ext = zext i1 %cmp to i32
160 ret i32 %cmp.ret_ext
161 }
162 ; CHECK: fcmpOrdDouble:
163 ; CHECK: ucomisd
164 ; CHECK: jnp .
165
166 define i32 @fcmpUeqFloat(float %a, float %b) {
167 entry:
168 %cmp = fcmp ueq float %a, %b
169 %cmp.ret_ext = zext i1 %cmp to i32
170 ret i32 %cmp.ret_ext
171 }
172 ; CHECK: fcmpUeqFloat:
173 ; CHECK: ucomiss
174 ; CHECK: je .
175
176 define i32 @fcmpUeqDouble(double %a, double %b) {
177 entry:
178 %cmp = fcmp ueq double %a, %b
179 %cmp.ret_ext = zext i1 %cmp to i32
180 ret i32 %cmp.ret_ext
181 }
182 ; CHECK: fcmpUeqDouble:
183 ; CHECK: ucomisd
184 ; CHECK: je .
185
186 define i32 @fcmpUgtFloat(float %a, float %b) {
187 entry:
188 %cmp = fcmp ugt float %a, %b
189 %cmp.ret_ext = zext i1 %cmp to i32
190 ret i32 %cmp.ret_ext
191 }
192 ; CHECK: fcmpUgtFloat:
193 ; CHECK: ucomiss
194 ; CHECK: jb .
195
196 define i32 @fcmpUgtDouble(double %a, double %b) {
197 entry:
198 %cmp = fcmp ugt double %a, %b
199 %cmp.ret_ext = zext i1 %cmp to i32
200 ret i32 %cmp.ret_ext
201 }
202 ; CHECK: fcmpUgtDouble:
203 ; CHECK: ucomisd
204 ; CHECK: jb .
205
206 define i32 @fcmpUgeFloat(float %a, float %b) {
207 entry:
208 %cmp = fcmp uge float %a, %b
209 %cmp.ret_ext = zext i1 %cmp to i32
210 ret i32 %cmp.ret_ext
211 }
212 ; CHECK: fcmpUgeFloat:
213 ; CHECK: ucomiss
214 ; CHECK: jbe .
215
216 define i32 @fcmpUgeDouble(double %a, double %b) {
217 entry:
218 %cmp = fcmp uge double %a, %b
219 %cmp.ret_ext = zext i1 %cmp to i32
220 ret i32 %cmp.ret_ext
221 }
222 ; CHECK: fcmpUgeDouble:
223 ; CHECK: ucomisd
224 ; CHECK: jbe .
225
226 define i32 @fcmpUltFloat(float %a, float %b) {
227 entry:
228 %cmp = fcmp ult float %a, %b
229 %cmp.ret_ext = zext i1 %cmp to i32
230 ret i32 %cmp.ret_ext
231 }
232 ; CHECK: fcmpUltFloat:
233 ; CHECK: ucomiss
234 ; CHECK: jb .
235
236 define i32 @fcmpUltDouble(double %a, double %b) {
237 entry:
238 %cmp = fcmp ult double %a, %b
239 %cmp.ret_ext = zext i1 %cmp to i32
240 ret i32 %cmp.ret_ext
241 }
242 ; CHECK: fcmpUltDouble:
243 ; CHECK: ucomisd
244 ; CHECK: jb .
245
246 define i32 @fcmpUleFloat(float %a, float %b) {
247 entry:
248 %cmp = fcmp ule float %a, %b
249 %cmp.ret_ext = zext i1 %cmp to i32
250 ret i32 %cmp.ret_ext
251 }
252 ; CHECK: fcmpUleFloat:
253 ; CHECK: ucomiss
254 ; CHECK: jbe .
255
256 define i32 @fcmpUleDouble(double %a, double %b) {
257 entry:
258 %cmp = fcmp ule double %a, %b
259 %cmp.ret_ext = zext i1 %cmp to i32
260 ret i32 %cmp.ret_ext
261 }
262 ; CHECK: fcmpUleDouble:
263 ; CHECK: ucomisd
264 ; CHECK: jbe .
265
266 define i32 @fcmpUneFloat(float %a, float %b) {
267 entry:
268 %cmp = fcmp une float %a, %b
269 %cmp.ret_ext = zext i1 %cmp to i32
270 ret i32 %cmp.ret_ext
271 }
272 ; CHECK: fcmpUneFloat:
273 ; CHECK: ucomiss
274 ; CHECK: je .
275 ; CHECK: jnp .
276
277 define i32 @fcmpUneDouble(double %a, double %b) {
278 entry:
279 %cmp = fcmp une double %a, %b
280 %cmp.ret_ext = zext i1 %cmp to i32
281 ret i32 %cmp.ret_ext
282 }
283 ; CHECK: fcmpUneDouble:
284 ; CHECK: ucomisd
285 ; CHECK: je .
286 ; CHECK: jnp .
287
288 define i32 @fcmpUnoFloat(float %a, float %b) {
289 entry:
290 %cmp = fcmp uno float %a, %b
291 %cmp.ret_ext = zext i1 %cmp to i32
292 ret i32 %cmp.ret_ext
293 }
294 ; CHECK: fcmpUnoFloat:
295 ; CHECK: ucomiss
296 ; CHECK: jp .
297
298 define i32 @fcmpUnoDouble(double %a, double %b) {
299 entry:
300 %cmp = fcmp uno double %a, %b
301 %cmp.ret_ext = zext i1 %cmp to i32
302 ret i32 %cmp.ret_ext
303 }
304 ; CHECK: fcmpUnoDouble:
305 ; CHECK: ucomisd
306 ; CHECK: jp .
307
308 define i32 @fcmpTrueFloat(float %a, float %b) {
309 entry:
310 %cmp = fcmp true float %a, %b
311 %cmp.ret_ext = zext i1 %cmp to i32
312 ret i32 %cmp.ret_ext
313 }
314 ; CHECK: fcmpTrueFloat:
315 ; CHECK: mov {{.*}}, 1
316
317 define i32 @fcmpTrueDouble(double %a, double %b) {
318 entry:
319 %cmp = fcmp true double %a, %b
320 %cmp.ret_ext = zext i1 %cmp to i32
321 ret i32 %cmp.ret_ext
322 }
323 ; CHECK: fcmpTrueDouble:
324 ; CHECK: mov {{.*}}, 1
OLDNEW
« no previous file with comments | « crosstest/test_fcmp.def ('k') | crosstest/test_fcmp_main.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698