| /* APPLE LOCAL file 4278461 */ |
| /* { dg-do run { target "i?86-*-darwin*" } } */ |
| /* { dg-options "-O2 -fPIC -msse2" } */ |
| /* Radar 4278461, GCC used a pic-base it neglected to set. */ |
| #include <stdio.h> |
| #include <emmintrin.h> |
| double __attribute__ ((noinline)) |
| xsqrt( double x ) |
| { |
| __v2df f, g; |
| double _d; |
| x += x; |
| g = __extension__ (__v2df){ x, 0 }; |
| f = _mm_sqrt_pd( g ); |
| _d = _mm_cvtsd_f64 (f); |
| return (_d); |
| } |
| |
| double global_x, global_y; |
| |
| main () |
| { |
| global_x = 100.0; |
| printf ("", &global_x, &global_y); /* Frighten the optimizer. */ |
| global_y = xsqrt (global_x / 2.0); /* Compensate for the "x += x;" in xsqrt(). */ |
| if (global_y != 10.0) |
| abort (); |
| exit (0); |
| } |