3 /* { dg-options "-O2" } */
5 __attribute__((noipa
)) float
8 return x
* __builtin_copysignf (1.0f
, x
);
11 __attribute__((noipa
)) float
12 bar (float x
, float y
)
14 return x
* __builtin_copysignf (1.0f
, y
);
17 __attribute__((noipa
)) float
18 baz (float z
, float x
)
20 return x
* __builtin_copysignf (1.0f
, x
);
23 __attribute__((noipa
)) float
24 qux (float z
, float x
, float y
)
26 return x
* __builtin_copysignf (1.0f
, y
);
32 if (foo (1.0f
) != 1.0f
33 || foo (-4.0f
) != 4.0f
)
35 if (bar (1.25f
, 7.25f
) != 1.25f
36 || bar (1.75f
, -3.25f
) != -1.75f
37 || bar (-2.25f
, 7.5f
) != -2.25f
38 || bar (-3.0f
, -4.0f
) != 3.0f
)
40 if (baz (5.5f
, 1.0f
) != 1.0f
41 || baz (4.25f
, -4.0f
) != 4.0f
)
43 if (qux (1.0f
, 1.25f
, 7.25f
) != 1.25f
44 || qux (2.0f
, 1.75f
, -3.25f
) != -1.75f
45 || qux (3.0f
, -2.25f
, 7.5f
) != -2.25f
46 || qux (4.0f
, -3.0f
, -4.0f
) != 3.0f
)