1 /* { dg-do compile } */
2 /* { dg-options "-O2 -ffast-math" } */
3
4 float
5 f1 (float x)
6 {
7 int y = x;
8
9 return (float) y;
10 }
11
12 double
13 f2 (double x)
14 {
15 long y = x;
16
17 return (double) y;
18 }
19
20 float
21 f3 (double x)
22 {
23 int y = x;
24
25 return (float) y;
26 }
27
28 double
29 f4 (float x)
30 {
31 int y = x;
32
33 return (double) y;
34 }
35
36 /* { dg-final { scan-assembler "frintz\\ts\[0-9\]+, s\[0-9\]+" } } */
37 /* { dg-final { scan-assembler "frintz\\td\[0-9\]+, d\[0-9\]+" } } */
38 /* { dg-final { scan-assembler "fcvtzs\\tw\[0-9\]+, d\[0-9\]+" } } */
39 /* { dg-final { scan-assembler "scvtf\\ts\[0-9\]+, w\[0-9\]+" } } */
40 /* { dg-final { scan-assembler "fcvtzs\\tw\[0-9\]+, s\[0-9\]+" } } */
41 /* { dg-final { scan-assembler "scvtf\\td\[0-9\]+, w\[0-9\]+" } } */