1 /* PR rtl-optimization/57960 */ 2 3 /* { dg-do compile } */ 4 /* { dg-options "-march=z10 -m64 -mzarch -O1" } */ 5 6 typedef union 7 { 8 long double value; 9 struct 10 { 11 unsigned int w0, w1, w2, w3; 12 } 13 parts32; 14 } 15 ieee854_long_double_shape_type; 16 static const long double one = 1.0L; 17 long double __ieee754_acosl(long double x)18__ieee754_acosl (long double x) 19 { 20 long double z, w; 21 int ix; 22 ieee854_long_double_shape_type u; 23 24 z = (one - u.value) * 0.5; 25 u.parts32.w2 = 0; 26 u.parts32.w3 = 0; 27 w = z - u.value * u.value; 28 return 2.0 * w; 29 30 } 31