1 /* PR target/63542 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -g -dA" } */
4 /* { dg-additional-options "-fpic" { target fpic } } */
5 
6 float
foo(long long u)7 foo (long long u)
8 {
9   if (!(-(1LL << 53) < u && u < (1LL << 53)))
10     {
11       if ((unsigned long long) u & ((1ULL << 11) - 1))
12 	{
13 	  u &= ~((1ULL << 11) - 1);
14 	  u |= (1ULL << 11);
15 	}
16     }
17   double f = (int) (u >> (32));
18   f *= 0x1p32f;
19   f += (unsigned int) u;
20   return (float) f;
21 }
22