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