1  /* This testcase failed on Alpha at -O2 because $27 hard register
       2     for the indirect call was exposed too early and reload couldn't
       3     allocate it for multiplication and division.  */
       4  
       5  /* { dg-require-effective-target indirect_calls } */
       6  
       7  struct S {
       8    int a, b;
       9    void (*f) (long, int);
      10  };
      11  
      12  void foo (struct S *x)
      13  {
      14    long c = x->a * 50;
      15    c /= (long) x->b;
      16    c *= (long) x->b;
      17    x->f (c, 0);
      18  }