1 /* PR rtl-optimization/57960 */
2
3 /* { dg-do compile } */
4 /* { dg-options "-march=z10 -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
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 }