modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/simd-3.c (about) 1 #include <float.h> 2 3 /* If double is not wider than float, we probably don't have DFmode, 4 or at least it's not as wide as double. */ 5 #if DBL_MANT_DIG > FLT_MANT_DIG 6 typedef double floatvect2 __attribute__((vector_size (16))); 7 8 typedef union 9 { 10 floatvect2 vector; 11 double f[2]; 12 }resfloatvect2; 13 14 void tempf(double *x, double *y) 15 { 16 floatvect2 temp={x[0],x[1]}; 17 floatvect2 temp1={y[0],y[1]}; 18 resfloatvect2 temp2; 19 temp2.vector=temp+temp1; 20 x[0]=temp2.f[0]; 21 x[1]=temp2.f[1]; 22 } 23 #endif