https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98674
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |10.3
Known to work| |9.3.0
Priority|P3 |P2
Summary|[10/11] Regression |[10/11 Regression]
|vectorizer failed for |vectorizer failed for
|compilation time alias |compilation time alias
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
While GCC 9 vectorizes this case (and thus the vectorization failure is a
regression) dependence analysis isn't presented with the problematical access
but instead we see
_1 = *p_22;
_5 = (unsigned short) _1;
bswapdst_10 = _5 r>> 8;
_8 = (short int) bswapdst_10;
*p_22 = _8;
where the problematical access is created by the bswap pass which
detects
16 bit bswap implementation found at: _8 = _4 | _7;
creates the replacement load but then fails half-way, not emitting a
bswap!? That's a bug worth fixing IMHO (either do all or none of the
transform).
I'm nevertheless testing a patch to improve dependence analysis.