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.