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)14foo (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()29main () 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