1  /* { dg-do compile { target { ! ia32 } } } */
       2  /* { dg-options "-O2 -mavx" } */
       3  /* { dg-final { scan-assembler-times "vmovapd|vmovsd" 3 } } */
       4  
       5  static inline double g (double x){
       6    asm volatile ("" : "+x" (x));
       7    return x;
       8  }
       9  static inline double f (double a, double b){
      10    return g (g (a) + g (b));
      11  }
      12  double h (double a, double b){
      13    return f (f (a, a), f (b, b));
      14  }