Lines Matching +full:native +full:- +full:test
1 // REQUIRES: arm-registered-target
2 // RUN: %clang_cc1 -emit-llvm -o - -triple arm-none-linux-gnueabi %s | FileCheck %s --check-prefix=…
3 // RUN: %clang_cc1 -emit-llvm -o - -triple aarch64-none-linux-gnueabi %s | FileCheck %s --check-pre…
4 … %clang_cc1 -emit-llvm -o - -triple arm-none-linux-gnueabi -fallow-half-arguments-and-returns %s |…
5 …clang_cc1 -emit-llvm -o - -triple aarch64-none-linux-gnueabi -fallow-half-arguments-and-returns %s…
6 // RUN: %clang_cc1 -emit-llvm -o - -triple arm-none-linux-gnueabi -fnative-half-type %s \
7 // RUN: | FileCheck %s --check-prefix=NATIVE-HALF
8 // RUN: %clang_cc1 -emit-llvm -o - -triple aarch64-none-linux-gnueabi -fnative-half-type %s \
9 // RUN: | FileCheck %s --check-prefix=NATIVE-HALF
10 // RUN: %clang_cc1 -emit-llvm -o - -x renderscript %s \
11 // RUN: | FileCheck %s --check-prefix=NATIVE-HALF
14 volatile cond_t test; variable
21 // CHECK-LABEL: define void @foo() in foo()
28 // NATIVE-HALF: fptoui half in foo()
29 test = (h0); in foo()
33 // NATIVE-HALF: uitofp i32 {{.*}} to half in foo()
34 h0 = (test); in foo()
37 // NATIVE-HALF: fcmp une half in foo()
38 test = (!h1); in foo()
43 // NATIVE-HALF: fsub half in foo()
44 h1 = -h1; in foo()
47 // NATIVE-HALF: load volatile half in foo()
48 // NATIVE-HALF-NEXT: store volatile half in foo()
53 // NATIVE-HALF: fadd half in foo()
58 // NATIVE-HALF: fadd half in foo()
63 // NATIVE-HALF: fadd half in foo()
64 --h1; in foo()
68 // NATIVE-HALF: fadd half in foo()
69 h1--; in foo()
76 // NATIVE-HALF: fmul half in foo()
83 // NATIVE-HALF: fmul half in foo()
84 h1 = h0 * (__fp16) -2.0f; in foo()
88 // NATIVE-HALF: fpext half in foo()
89 // NATIVE-HALF: fmul float in foo()
94 // NATIVE-HALF: fpext half in foo()
95 // NATIVE-HALF: fmul float in foo()
100 // NATIVE-HALF: fmul half in foo()
107 // NATIVE-HALF: fdiv half in foo()
113 // NATIVE-HALF: fdiv half in foo()
114 h1 = (h0 / (__fp16) -2.0f); in foo()
118 // NATIVE-HALF: fpext half in foo()
119 // NATIVE-HALF: fdiv float in foo()
124 // NATIVE-HALF: fpext half in foo()
125 // NATIVE-HALF: fdiv float in foo()
130 // NATIVE-HALF: fdiv half in foo()
137 // NATIVE-HALF: fadd half in foo()
143 // NATIVE-HALF: fadd half in foo()
144 h1 = ((__fp16)-2.0 + h0); in foo()
148 // NATIVE-HALF: fpext half in foo()
149 // NATIVE-HALF: fadd float in foo()
154 // NATIVE-HALF: fpext half in foo()
155 // NATIVE-HALF: fadd float in foo()
160 // NATIVE-HALF: fadd half in foo()
167 // NATIVE-HALF: fsub half in foo()
168 h1 = (h2 - h0); in foo()
173 // NATIVE-HALF: fsub half in foo()
174 h1 = ((__fp16)-2.0f - h0); in foo()
178 // NATIVE-HALF: fpext half in foo()
179 // NATIVE-HALF: fsub float in foo()
180 h1 = (h2 - f0); in foo()
184 // NATIVE-HALF: fpext half in foo()
185 // NATIVE-HALF: fsub float in foo()
186 h1 = (f2 - h0); in foo()
190 // NATIVE-HALF: fsub half in foo()
191 h1 = (h0 - i0); in foo()
196 // NATIVE-HALF: fcmp olt half in foo()
197 test = (h2 < h0); in foo()
201 // NATIVE-HALF: fcmp olt half in foo()
202 test = (h2 < (__fp16)42.0); in foo()
205 // NATIVE-HALF: fpext half in foo()
206 // NATIVE-HALF: fcmp olt float in foo()
207 test = (h2 < f0); in foo()
210 // NATIVE-HALF: fpext half in foo()
211 // NATIVE-HALF: fcmp olt float in foo()
212 test = (f2 < h0); in foo()
215 // NATIVE-HALF: fcmp olt half in foo()
216 test = (i0 < h0); in foo()
219 // NATIVE-HALF: fcmp olt half in foo()
220 test = (h0 < i0); in foo()
225 // NATIVE-HALF: fcmp ogt half in foo()
226 test = (h0 > h2); in foo()
230 // NATIVE-HALF: fcmp ogt half in foo()
231 test = ((__fp16)42.0 > h2); in foo()
234 // NATIVE-HALF: fpext half in foo()
235 // NATIVE-HALF: fcmp ogt float in foo()
236 test = (h0 > f2); in foo()
239 // NATIVE-HALF: fpext half in foo()
240 // NATIVE-HALF: fcmp ogt float in foo()
241 test = (f0 > h2); in foo()
244 // NATIVE-HALF: fcmp ogt half in foo()
245 test = (i0 > h0); in foo()
248 // NATIVE-HALF: fcmp ogt half in foo()
249 test = (h0 > i0); in foo()
254 // NATIVE-HALF: fcmp ole half in foo()
255 test = (h2 <= h0); in foo()
259 // NATIVE-HALF: fcmp ole half in foo()
260 test = (h2 <= (__fp16)42.0); in foo()
263 // NATIVE-HALF: fpext half in foo()
264 // NATIVE-HALF: fcmp ole float in foo()
265 test = (h2 <= f0); in foo()
268 // NATIVE-HALF: fpext half in foo()
269 // NATIVE-HALF: fcmp ole float in foo()
270 test = (f2 <= h0); in foo()
273 // NATIVE-HALF: fcmp ole half in foo()
274 test = (i0 <= h0); in foo()
277 // NATIVE-HALF: fcmp ole half in foo()
278 test = (h0 <= i0); in foo()
284 // NATIVE-HALF: fcmp oge half in foo()
285 test = (h0 >= h2); in foo()
289 // NATIVE-HALF: fcmp oge half in foo()
290 test = (h0 >= (__fp16)-2.0); in foo()
293 // NATIVE-HALF: fpext half in foo()
294 // NATIVE-HALF: fcmp oge float in foo()
295 test = (h0 >= f2); in foo()
298 // NATIVE-HALF: fpext half in foo()
299 // NATIVE-HALF: fcmp oge float in foo()
300 test = (f0 >= h2); in foo()
303 // NATIVE-HALF: fcmp oge half in foo()
304 test = (i0 >= h0); in foo()
307 // NATIVE-HALF: fcmp oge half in foo()
308 test = (h0 >= i0); in foo()
313 // NATIVE-HALF: fcmp oeq half in foo()
314 test = (h1 == h2); in foo()
318 // NATIVE-HALF: fcmp oeq half in foo()
319 test = (h1 == (__fp16)1.0); in foo()
322 // NATIVE-HALF: fpext half in foo()
323 // NATIVE-HALF: fcmp oeq float in foo()
324 test = (h1 == f1); in foo()
327 // NATIVE-HALF: fpext half in foo()
328 // NATIVE-HALF: fcmp oeq float in foo()
329 test = (f1 == h1); in foo()
332 // NATIVE-HALF: fcmp oeq half in foo()
333 test = (i0 == h0); in foo()
336 // NATIVE-HALF: fcmp oeq half in foo()
337 test = (h0 == i0); in foo()
342 // NATIVE-HALF: fcmp une half in foo()
343 test = (h1 != h2); in foo()
347 // NATIVE-HALF: fcmp une half in foo()
348 test = (h1 != (__fp16)1.0); in foo()
351 // NATIVE-HALF: fpext half in foo()
352 // NATIVE-HALF: fcmp une float in foo()
353 test = (h1 != f1); in foo()
356 // NATIVE-HALF: fpext half in foo()
357 // NATIVE-HALF: fcmp une float in foo()
358 test = (f1 != h1); in foo()
361 // NATIVE-HALF: fcmp une half in foo()
362 test = (i0 != h0); in foo()
365 // NATIVE-HALF: fcmp une half in foo()
366 test = (h0 != i0); in foo()
373 // NATIVE-HALF: fcmp une half {{.*}}, 0xH0000 in foo()
379 // NATIVE-HALF: store {{.*}} half 0xHC000 in foo()
380 h0 = (__fp16)-2.0f; in foo()
382 // NATIVE-HALF: fptrunc float in foo()
387 // NATIVE-HALF: sitofp i32 {{.*}} to half in foo()
391 // NATIVE-HALF: fptosi half {{.*}} to i32 in foo()
398 // NATIVE-HALF: fadd half in foo()
404 // NATIVE-HALF: fadd half in foo()
409 // NATIVE-HALF: fpext half in foo()
410 // NATIVE-HALF: fadd float in foo()
411 // NATIVE-HALF: fptrunc float in foo()
417 // NATIVE-HALF: sitofp i32 {{.*}} to half in foo()
418 // NATIVE-HALF: fadd half in foo()
419 // NATIVE-HALF: fptosi half {{.*}} to i32 in foo()
425 // NATIVE-HALF: sitofp i32 {{.*}} to half in foo()
426 // NATIVE-HALF: fadd half in foo()
433 // NATIVE-HALF: fsub half in foo()
434 h0 -= h1; in foo()
439 // NATIVE-HALF: fsub half in foo()
440 h0 -= (__fp16)1.0; in foo()
444 // NATIVE-HALF: fpext half in foo()
445 // NATIVE-HALF: fsub float in foo()
446 // NATIVE-HALF: fptrunc float in foo()
447 h0 -= f2; in foo()
452 // NATIVE-HALF: sitofp i32 {{.*}} to half in foo()
453 // NATIVE-HALF: fsub half in foo()
454 // NATIVE-HALF: fptosi half {{.*}} to i32 in foo()
455 i0 -= h0; in foo()
460 // NATIVE-HALF: sitofp i32 {{.*}} to half in foo()
461 // NATIVE-HALF: fsub half in foo()
462 h0 -= i0; in foo()
468 // NATIVE-HALF: fmul half in foo()
474 // NATIVE-HALF: fmul half in foo()
479 // NATIVE-HALF: fpext half in foo()
480 // NATIVE-HALF: fmul float in foo()
481 // NATIVE-HALF: fptrunc float in foo()
487 // NATIVE-HALF: sitofp i32 {{.*}} to half in foo()
488 // NATIVE-HALF: fmul half in foo()
489 // NATIVE-HALF: fptosi half {{.*}} to i32 in foo()
495 // NATIVE-HALF: sitofp i32 {{.*}} to half in foo()
496 // NATIVE-HALF: fmul half in foo()
503 // NATIVE-HALF: fdiv half in foo()
509 // NATIVE-HALF: fdiv half in foo()
514 // NATIVE-HALF: fpext half in foo()
515 // NATIVE-HALF: fdiv float in foo()
516 // NATIVE-HALF: fptrunc float in foo()
522 // NATIVE-HALF: sitofp i32 {{.*}} to half in foo()
523 // NATIVE-HALF: fdiv half in foo()
524 // NATIVE-HALF: fptosi half {{.*}} to i32 in foo()
530 // NATIVE-HALF: sitofp i32 {{.*}} to half in foo()
531 // NATIVE-HALF: fdiv half in foo()
537 // NATIVE-HALF: fptrunc double {{.*}} to half in foo()
543 // NATIVE-HALF: [[MID:%.*]] = fptrunc double {{%.*}} to float in foo()
544 // NATIVE-HALF: fptrunc float {{.*}} to half in foo()
549 // NATIVE-HALF: fpext half {{.*}} to double in foo()
555 // NATIVE-HALF: [[MID:%.*]] = fpext half {{.*}} to float in foo()
556 // NATIVE-HALF: fpext float [[MID]] to double in foo()