1 // { dg-do run { target i?86-*-* x86_64-*-* } }
2 // { dg-options "-O2" }
3 
foo(double x)4 inline double foo (double x)
5 {
6   register double r;
7   asm volatile ("fsqrt" : "=t" (r) : "0" (x));
8   return r;
9 }
10 
11 struct X
12 {
~XX13   ~X() {}
14 };
15 
16 int b;
17 
bar(X x)18 double bar (X x)
19 {
20   if (b)
21     return 1.0;
22   return 36.0 * foo (36.0);
23 }
24 
main()25 int main ()
26 {
27   X x;
28   if (bar (x) != 216.0)
29     return 1;
30   return 0;
31 }
32