blob: 7d055ed871b84f1f458b0a2f8e7ce9cca4deae8b [file] [log] [blame]
/* PR target/104612 */
/* { dg-do compile } */
/* { dg-options "-O2" } */
/* { dg-additional-options "-msse2 -mfpmath=sse" { target i?86-*-* x86_64-*-* } } */
struct V { float x, y; };
struct V
foo (struct V v)
{
struct V ret;
ret.x = __builtin_copysignf (1.0e+0, v.x);
ret.y = __builtin_copysignf (1.0e+0, v.y);
return ret;
}
float
bar (struct V v)
{
return __builtin_copysignf (v.x, v.y);
}
float
baz (struct V v)
{
return v.x * __builtin_copysignf (1.0f, v.y);
}