1 /* Test for #pragma assembly extension generations. */ 2 /* { dg-do compile } */ 3 /* { dg-require-effective-target arm_fp_ok } */ 4 /* { dg-add-options arm_fp } */ 5 6 #include <stdint.h> 7 8 #pragma GCC target("fpu=vfpv3-d16") 9 10 extern uint32_t bar(); 11 12 #pragma GCC push_options 13 #pragma GCC target("fpu=vfpv4") 14 extern float fmaf (float, float, float); 15 16 float vfma32(float x,float y,float z)17vfma32 (float x, float y, float z) 18 { 19 return fmaf (x, y, z); 20 } 21 #pragma GCC pop_options 22 restored()23uint32_t restored () 24 { 25 return bar(); 26 } 27 28 /* { dg-final { scan-assembler-times {\.fpu\s+vfpv4} 1 } } */ 29 /* { dg-final { scan-assembler-times {\.fpu\s+vfpv3-d16} 1 } } */ 30