[PR81647][AARCH64] Fix handling of Unordered Comparisons in aarch64-simd.md
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / f16_mov_immediate_1.c
blob3d22d225851af653f17e04ce7c7cc65ee1c86172
1 /* { dg-do compile } */
2 /* { dg-options "-O3" } */
3 /* { dg-require-effective-target arm_v8_2a_fp16_scalar_ok } */
4 /* { dg-add-options arm_v8_2a_fp16_scalar } */
6 extern __fp16 foo ();
7 extern void bar (__fp16* x);
9 void f1 ()
11 volatile __fp16 a = 17.0;
15 void f2 (__fp16 *a)
17 *a = 17.0;
20 void f3 ()
22 __fp16 b = foo ();
23 b = 17.0;
24 bar (&b);
27 __fp16 f4 ()
29 __fp16 a = 0;
30 __fp16 b = 1;
31 __fp16 c = 2;
32 __fp16 d = 4;
34 __fp16 z = a + b;
35 z = z + c;
36 z = z - d;
37 return z;
40 __fp16 f5 ()
42 __fp16 a = 16;
43 bar (&a);
44 return a;
47 /* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, #?19520" 3 } } */
48 /* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.4h, 0xbc, lsl 8" 1 } } */
49 /* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.4h, 0x4c, lsl 8" 1 } } */