2018-02-09 Sebastian Perta <sebastian.perta@renesas.com>
[official-gcc.git] / gcc / testsuite / gcc.target / sh / pr59478.c
blobf2de9e8dc95468a3c72d293231c4466defc36298
1 /* Verify that the fmac insn is used for the standard fmaf function. */
2 /* { dg-do compile { target { any_fpu } } } */
3 /* { dg-options "-O2" } */
4 /* { dg-final { scan-assembler-times "fpul" 8 } } */
5 /* { dg-final { scan-assembler-times "\tflds\tfr" 2 } } */
6 /* { dg-final { scan-assembler-times "\tsts\tfpul" 2 } } */
7 /* { dg-final { scan-assembler-times "\tlds\tr" 2 } } */
8 /* { dg-final { scan-assembler-times "\tfsts\tfpul" 2 } } */
9 /* { dg-final { scan-assembler-not "mov" } } */
11 int
12 test_00 (float val)
14 char valbytes[sizeof (float)];
15 __builtin_memcpy (valbytes, &val, sizeof (float));
17 int result;
18 __builtin_memcpy (&result, valbytes, sizeof (int));
20 return result;
23 float
24 test_01 (int val)
26 char valbytes[sizeof (int)];
27 __builtin_memcpy (valbytes, &val, sizeof (int));
29 float result;
30 __builtin_memcpy (&result, valbytes, sizeof (float));
32 return result;
35 int
36 test_02 (float val)
38 union { int i; float f; } tmp;
39 tmp.f = val;
40 return tmp.i;
43 float
44 test_03 (int val)
46 union { int i; float f; } tmp;
47 tmp.i = val;
48 return tmp.f;