https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85512

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |rsandifo at gcc dot gnu.org
   Target Milestone|---                         |8.0

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r253337, most likely just latent before.
Either the insns which can't accept 0 immediate for shift should be emitted as
register moves if the shift count is const0_rtx, or we need to use different
constraints for this shift count immediates that don't allow zero.
Right now e.g. the *aarch64_ashr_sisd_or_int_si3 define_insn uses Uss and Usd
constraints for the immediate, which are fine for asr instruction, but not
sshr.
So perhaps add US{s,d} constraints which would be like Us{s,d}, but wouldn't
accept 0?
Relying on GIMPLE passes and/or combiner to always optimize away shifts by 0
doesn't really work.

Reply via email to