https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98813
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Jiu Fu Guo from comment #0) > For the below code: > ---t.c---- > void > foo (const double* __restrict__ A, const double* __restrict__ B, double* > __restrict__ C, > int n, int k, int m) > { > for (unsigned int l_m = 0; l_m < m; l_m++) > C[n + l_m] += A[k + l_m] * B[k]; > } Try using unsigned long instead of unsigned int. I think this is the same as PR 61247.