x264 satd_4x4 stack spilling with mtune=generic-ooo for vls code but not on vla code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119361
--- Comment #1 from Robin Dapp--- The issue is due to: _279 = BIT_FIELD_REF <_480, 64, 0>; _330 = BIT_FIELD_REF <_480, 64, 64>; _340 = BIT_FIELD_REF <_481, 64, 0>; _350 = BIT_FIELD_REF <_481, 64, 64>; Ideally they expand to simple slidedowns (from mode V4SI to mode V2SI) but here this doesn't happen but we redundantly use subregs. Those subregs are long due for fixing. Right now, at some point, we realize that we cannot "resolve" the subreg and unfortunately go via memory instead. In the good case we have a (subreg:V2SI (reg:V4SI ...) while in the bad case there is "vec_extract V4SI -> DI" and (subreg:V2SI (reg:DI ...) but of course those should result in identical code. Another "fun" thing is that we seem to use more "VLA" modes when compiling for VLS... in particular for gathers. Is that a regression from one of the gather patches?
Read more here: Source link
