/* Test for target attribute assembly extension generations. */ /* { dg-do compile } */ /* { dg-require-effective-target arm_fp_ok } */ /* { dg-add-options arm_fp } */ #include extern uint32_t bar (); #pragma GCC target("fpu=vfpv3-d16") extern float fmaf (float, float, float); float __attribute__((target("fpu=vfpv4"))) vfma32 (float x, float y, float z) { return fmaf (x, y, z); } uint32_t restored () { return bar(); } /* We can't tell exactly how many times the following tests will match because command-line options may cause additional instances to be generated, but each must be present at least once. */ /* { dg-final { scan-assembler {\.fpu\s+vfpv4\n} } } */ /* { dg-final { scan-assembler {\.fpu\s+vfpv3-d16\n} } } */