https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98813
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #5) > (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. Yes, I think we've seen plenty examples in the past where conversions in the SCEV chain prevent analysis.