https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113441
--- Comment #24 from JuzheZhong <juzhe.zhong at rivai dot ai> --- (In reply to Richard Biener from comment #19) > (In reply to Richard Biener from comment #18) > > (In reply to Tamar Christina from comment #17) > > > Ok, bisected to > > > > > > g:2efe3a7de0107618397264017fb045f237764cc7 is the first bad commit > > > commit 2efe3a7de0107618397264017fb045f237764cc7 > > > Author: Hao Liu <h...@os.amperecomputing.com> > > > Date: Wed Dec 6 14:52:19 2023 +0800 > > > > > > tree-optimization/112774: extend the SCEV CHREC tree with a > > > nonwrapping > > > flag > > > > > > Before this commit we were unable to analyse the stride of the access. > > > After this niters seems to estimate the loop trip count at 4 and after > > > that > > > the logs diverge enormously. > > > > Hum, but that's backward and would match to what I said in comment#2 - we > > should get better code with that. > > > > Juzhe - when you revert the above ontop of trunk does the generated code > > look better for Risc-V? > > It doesn't revert but you can do > > diff --git a/gcc/tree-scalar-evolution.cc b/gcc/tree-scalar-evolution.cc > index 25e3130e2f1..7870c8d76fb 100644 > --- a/gcc/tree-scalar-evolution.cc > +++ b/gcc/tree-scalar-evolution.cc > @@ -2054,7 +2054,7 @@ analyze_scalar_evolution (class loop *loop, tree var) > > void record_nonwrapping_chrec (tree chrec) > { > - CHREC_NOWRAP(chrec) = 1; > + CHREC_NOWRAP(chrec) = 0; > > if (dump_file && (dump_flags & TDF_SCEV)) > { Hmmm. With experiments. The codegen looks slightly better but still didn't recover back to GCC-12. Btw, I compare ARM SVE codegen, even with cost model: https://godbolt.org/z/cKc1PG3dv I think GCC 13.2 codegen is better than GCC trunk with cost model.