blob: 5a85045b095a7b19904cf179cedf2f5daf4e2fa9 [file] [log] [blame]
/* PR target/95046 */
/* { dg-do compile { target { ! ia32 } } } */
/* { dg-options "-O3 -msse2" } */
float r[2], a[2], b[2];
float copysignf (float, float);
void
test_copysign (void)
{
for (int i = 0; i < 2; i++)
r[i] = copysignf (a[i], b[i]);
}
/* { dg-final { scan-assembler "\tv?andnps" } } */
void
test_xorsign (void)
{
for (int i = 0; i < 2; i++)
r[i] = a[i] * copysignf (1.0f, b[i]);
}
/* { dg-final { scan-assembler "\tv?xorps" } } */
int s[2];
int signbitf (float);
void
test_signbitf (void)
{
for (int i = 0; i < 2; i++)
s[i] = signbitf (a[i]);
}
/* { dg-final { scan-assembler "\tv?psrld" } } */