(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
sms-8.c
       1  /*  This test is a reduced test case for a bug that caused
       2      bootstrapping with -fmodulo-sched.  Related to a broken anti-dep
       3      that was not fixed by reg-moves.  */
       4  
       5   /* { dg-do run } */
       6   /* { dg-options "-O2 -fmodulo-sched -fmodulo-sched-allow-regmoves -fdump-rtl-sms --param sms-min-sc=1" } */
       7  
       8  extern void abort (void);
       9  
      10  __attribute__ ((noinline))
      11  unsigned long long
      12  foo (long long ixi, unsigned ctr)
      13  {
      14    unsigned long long irslt = 1;
      15    long long ix = ixi;
      16  
      17    for (; ctr; ctr--)
      18      {
      19        irslt *= ix;
      20        ix *= ix;
      21      }
      22  
      23    if (irslt != 14348907)
      24      abort ();
      25    return irslt;
      26  }
      27  
      28  
      29  int
      30  main ()
      31  {
      32    unsigned long long res;
      33  
      34    res = foo (3, 4);
      35    return 0;
      36  }