1 /* glibc bug, https://sourceware.org/ml/libc-alpha/2017-04/msg00256.html 2 When using software completions, we have to prevent assembler to match 3 input and output operands of sqrtt/sqrtf insn. Fixed in glibc 2.26. */ 4 /* { dg-do run } */ 5 /* { dg-options "-O2 -fno-builtin-sqrt -mieee" } */ 6 7 double sqrt (double); 8 9 static double float64frombits(unsigned long b)10float64frombits (unsigned long b) 11 { 12 union { unsigned long __b; double __d; } u = { .__b = b }; 13 return u.__d; 14 } 15 16 int main(void)17main (void) 18 { 19 double a = float64frombits (2); 20 21 if (sqrt (a) != 3.1434555694052576e-162) 22 __builtin_abort (); 23 24 return 0; 25 } 26