[AArch64] Add support for 16-bit FMOV immediates
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / f16_mov_immediate_1.c
blob4411ecfed0bb791f5c715d5dfacf14bd2d7f3a61
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 {fmov\th[0-9]+, #?1\.7e\+1} 3 } } */
48 /* { dg-final { scan-assembler-times {fmov\th[0-9]+, #?-1\.0e\+0} 1 } } */
49 /* { dg-final { scan-assembler-times {fmov\th[0-9]+, #?1\.6e\+1} 1 } } */