// { dg-do run { target i?86-*-* x86_64-*-* } } // { dg-options "-O2" } inline double foo (double x) { register double r; asm volatile ("fsqrt" : "=t" (r) : "0" (x)); return r; } struct X { ~X() {} }; int b; double bar (X x) { if (b) return 1.0; return 36.0 * foo (36.0); } int main () { X x; if (bar (x) != 216.0) return 1; return 0; }