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)7foo (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