1 /* { dg-do run } */ 2 /* { dg-options "-O2 -ffast-math" } */ 3 4 extern float fabsf(float); 5 extern float sqrtf(float); 6 f(float * dst,float * src)7static __attribute__((noinline)) void f (float *dst, float *src) 8 { 9 int i, j; 10 for (i = 0; i < 2; i++) 11 { 12 float len; 13 dst[0] = src[0]; 14 dst[1] = src[1]; 15 len = sqrtf (dst[0] * dst[0] + dst[1] * dst[1]); 16 if (len > 0.5f) 17 { 18 len = 1.0f / len; 19 dst[0] *= len; 20 dst[1] *= len; 21 } 22 } 23 } 24 25 extern void abort (void); 26 main()27int main() 28 { 29 float dst[2], src[2]; 30 src[0] = 2.0f; 31 src[1] = 5.0f; 32 f (dst, src); 33 if (fabsf (dst[0] * dst[0] + dst[1] * dst[1] - 1.0f) > 0.01f) 34 abort (); 35 return 0; 36 } 37