https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68991
--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to H.J. Lu from comment #11) > (In reply to Jakub Jelinek from comment #10) > > But why should the *mov<mode>_internal use Bm or vector_operand? It > > can/should handle both aligned and unaligned memory operands. > > Only for historical reason. I thought Uros said: "Looking at the comment in Patch 3, I'd say let's keep *mov<mode>_internal constraints unchanged." IMNSHO you only want to touch patterns which don't have ssememalign attributes (== have it 0) and leave the others as is. Perhaps in the next step you can kill the UNSPEC_LOADU/UNSPEC_STOREU patterns and handle them in *mov<mode>_internal too - the unspecs were there just to make sure they aren't combined into SSE arithmetic instructions.