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.

Reply via email to