https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79282
--- Comment #5 from ktkachov at gcc dot gnu.org --- I suspect just removing the last two alternatives in the pattern is the way to go. They are just copies of the first two but enabled for mneon-for-64bits. If I remove them the test passes for the normal options (doesn't use a NEON shift) but for -mneon-for-64bits still uses the NEON instruction as intended. For the -mneon-for-64bits case I think we should let the register allocator make the decision on which alternatives to use rather than duplicating them and enabling/disabling them using attributes for tuning purposes.