https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120941
--- Comment #32 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Filip Kastl from comment #30) > (In reply to H.J. Lu from comment #29) > > Created attachment 61973 [details] > > A new patch > > > > Please try this. > > Sadly, this patch doesn't help. Actually, lbm gets compiled into the same > binary with and without the patch applied (at least on the current master). > If I disassemble the binary, I still see a spill (vbroadcast to %ymm3 and > then almost immediately vmovapd %ymm3 onto stack). > > Not sure, why the patch doesn't trigger. It works for the testcase. I > currently don't see what's different between the testcase and unreduced lbm. > In both cases, rrvl attempts to hoist a vbroadcastsd out of a loop. For the > testcase, the patch successfully forbids this. For lbm itself, it fails to > forbid this. Perhaps bb->loop_father->latch info is corrupted? Not sure > how probable that is. > > I guess that someone with access to lbm must debug this. I'll look into it. Please send me .273r.expand and .311r.rrvl files. I will take a look.