blob: 7d15b39e5af50f68cc845c086391221cb84aa0ea [file] [log] [blame]
/* PR target/95046 */
/* { dg-do compile { target { ! ia32 } } } */
/* { dg-options "-O3 -mfma" } */
float r[2], a[2], b[2], c[2];
void
test_fma (void)
{
for (int i = 0; i < 2; i++)
r[i] = a[i] * b[i] + c[i];
}
/* { dg-final { scan-assembler "\tvfmadd\[123\]+ps" } } */
void
test_fms (void)
{
for (int i = 0; i < 2; i++)
r[i] = a[i] * b[i] - c[i];
}
/* { dg-final { scan-assembler "\tvfmsub\[123\]+ps" } } */
void
test_fnma (void)
{
for (int i = 0; i < 2; i++)
r[i] = -(a[i] * b[i]) + c[i];
}
/* { dg-final { scan-assembler "\tvfnmadd\[123\]+ps" } } */
void
test_fnms (void)
{
for (int i = 0; i < 2; i++)
r[i] = -(a[i] * b[i]) - c[i];
}
/* { dg-final { scan-assembler "\tvfnmsub\[123\]+ps" } } */