https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120734
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |liuhongt at gcc dot gnu.org Summary|-m32 -march=i686 doesn't |*mov<mode>_(and|or) can be |use "mov $0, mem" |used for | |TARGET_SPLIT_LONG_MOVES --- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> --- Since there is /* X86_TUNE_SPLIT_LONG_MOVES: Avoid instructions moving immediates directly to memory. */ DEF_TUNE (X86_TUNE_SPLIT_LONG_MOVES, "split_long_moves", m_PPRO) to avoid long move instructions, like c7 02 00 00 00 00 movl $0x0,(%rdx) c7 02 ff ff ff ff movl $0xffffffff,(%rdx) *mov<mode>_(and|or) can be enable for TARGET_SPLIT_LONG_MOVES with 83 22 00 andl $0x0,(%rdx) 83 0a ff orl $0xffffffff,(%rdx)