2015-12-10 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr63542-1.c
blob98a4007306314fc7e632e69ff4e175c0569b7c9d
1 /* PR target/63542 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -g -dA" } */
4 /* { dg-additional-options "-fpic" { target fpic } } */
6 float
7 foo (long long u)
9 if (!(-(1LL << 53) < u && u < (1LL << 53)))
11 if ((unsigned long long) u & ((1ULL << 11) - 1))
13 u &= ~((1ULL << 11) - 1);
14 u |= (1ULL << 11);
17 double f = (int) (u >> (32));
18 f *= 0x1p32f;
19 f += (unsigned int) u;
20 return (float) f;