https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96789
--- Comment #34 from Hongtao.liu <crazylht at gmail dot com> --- (In reply to Kewen Lin from comment #29) > (In reply to Hongtao.liu from comment #28) > > > Probably you can try to tweak it in ix86_add_stmt_cost? when the statement > > > > Yes, it's the place. > > > > > is UB to UH conversion statement, further check if the def of the input UB > > > is MEM. > > > > Only if there's no multi-use for UB. More generally, it's quite difficult to > > guess later optimizations for the purpose of more accurate vectorization > > cost model, :(. > > Yeah, it's hard sadly. The generic cost modeling is rough, > ix86_add_stmt_cost is more fine-grain (at least than what we have on Power > :)), if you want to check it more, it seems doable in target specific hook > finish_cost where you can get the whole vinfo object, but it could end up > with very heavy analysis and might not be worthy. > > Do you mind to check if it can also fix this degradation on x86 to run FRE > and DSE just after cunroll? I found it worked for Power, hoped it can help > there too. No, it's not working for CLX, problem in i386 backend is a bit different.