1  /* PR tree-optimization/82004 */
       2  /* { dg-do run } */
       3  /* { dg-options "-Ofast" } */
       4  
       5  extern double log10 (double);
       6  extern double pow (double, double);
       7  
       8  __attribute__((noipa)) void
       9  bar (double x)
      10  {
      11    if (x < 0.001)
      12      __builtin_abort ();
      13    asm volatile ("" : : : "memory");
      14  }
      15  
      16  int
      17  main ()
      18  {
      19    double d = 0.001;
      20    double e = 10.0;
      21    double f = (log10 (e) - log10 (d)) / 400.0;
      22    double g = log10 (d) - f;
      23    volatile int q = 0;
      24    int i;
      25    if (__builtin_expect (q == 0, 0))
      26      for (i = 0; i < 400; ++i)
      27        {
      28  	g = g + f;
      29  	bar (pow (10.0, g));
      30        }
      31    return 0;  
      32  }