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