blob: 42191b1360e53342e240b11c39a1618adcd9fe21 [file] [log] [blame]
/* Functional tests for the "target" attribute and pragma. */
/* { dg-do compile } */
/* { dg-require-effective-target target_attribute } */
/* { dg-options "-msoft-float" } */
#pragma GCC target("hard-float")
float p1(float f)
{
return 2 * f;
}
#pragma GCC reset_options
#pragma GCC target("soft-float")
float p0(float f)
{
return 2 * f;
}
float p0b(float f)
{
return 2 * f;
}
#pragma GCC reset_options
__attribute__ ((target("hard-float")))
float a1(float f)
{
return 2 * f;
}
__attribute__ ((target("hard-float")))
float a1b(float f)
{
return 2 * f;
}
__attribute__ ((target("hard-float")))
float a1c(float f)
{
return 2 * f;
}
__attribute__ ((target("hard-float")))
float a1d(float f)
{
return 2 * f;
}
__attribute__ ((target("soft-float")))
float a0(float f)
{
return 2 * f;
}
__attribute__ ((target("soft-float")))
float a0b(float f)
{
return 2 * f;
}
__attribute__ ((target("soft-float")))
float a0c(float f)
{
return 2 * f;
}
__attribute__ ((target("soft-float")))
float a0d(float f)
{
return 2 * f;
}
__attribute__ ((target("soft-float")))
float a0e(float f)
{
return 2 * f;
}
__attribute__ ((target("soft-float")))
float a0f(float f)
{
return 2 * f;
}
__attribute__ ((target("soft-float")))
float a0g(float f)
{
return 2 * f;
}
__attribute__ ((target("soft-float")))
float a0h(float f)
{
return 2 * f;
}
/* { dg-final { scan-assembler-times "\tste\t%f" 5 } } */