(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
sms-12.c
       1  /* { dg-do run } */
       2  /* { dg-skip-if "" { ! { aarch64*-*-* } } } */
       3  /* { dg-require-effective-target fpic } */
       4  /* { dg-options "-O2 -fmodulo-sched -funroll-loops -fdump-rtl-sms --param sms-min-sc=1 -fmodulo-sched-allow-regmoves -fPIC" } */
       5  
       6  extern void abort (void);
       7  
       8  int X[1000]={0};
       9  int Y[1000]={0};
      10  
      11  extern void abort (void);
      12  
      13  __attribute__ ((noinline))
      14  int
      15  foo (int len, long a)
      16  {
      17    int i;
      18    long res = a;
      19  
      20    len = 1000;
      21    for (i = 0; i < len; i++)
      22      res += X[i]* Y[i];
      23  
      24    if (res != 601)
      25      abort ();
      26  
      27  }
      28  
      29  int
      30  main ()
      31  {
      32    X[0] = Y[1] = 2;
      33    Y[0] = X[1] = 21;
      34    X[2] = Y[3] = 3;
      35    Y[2] = X[3] = 31;
      36    X[4] = Y[5] = 4;
      37    Y[4] = X[5] = 41;
      38  
      39    foo (6, 3);
      40    return 0;
      41  }
      42  
      43