https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70354
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org --- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 38059 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38059&action=edit gcc6-pr70354.patch Untested fix. Sadly, it will slightly penalize code that use 64-bit shift counts (defined within the vectorized loop), by adding a vectorized and in there; but the information whether the 64-bit value had been passed unmodified into the shift count or whether something has been added to it or subtracted from it or otherwise modified the upper 32 bits is lost, unless we keep the shift counters in the type that has been there (or widen to int if narrower). But that would penalize scalar code.