aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/s390/pr57960.c
blob: ee751edc842344a3cdbdfeb9a54acbb247f26c5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* PR rtl-optimization/57960  */

/* { dg-do compile } */
/* { dg-options "-march=z10 -m64 -mzarch  -O1" } */

typedef union
{
  long double value;
  struct
  {
    unsigned int w0, w1, w2, w3;
  }
    parts32;
}
  ieee854_long_double_shape_type;
static const long double one = 1.0L;
long double
__ieee754_acosl (long double x)
{
  long double z, w;
  int ix;
  ieee854_long_double_shape_type u;

  z = (one - u.value) * 0.5;
  u.parts32.w2 = 0;
  u.parts32.w3 = 0;
  w = z - u.value * u.value;
  return 2.0 * w;

}