http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50088
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> 2011-08-15 15:47:39 UTC --- (In reply to comment #4) > (In reply to comment #3) > > It is done on purpose: > > > > /* X86_TUNE_MOVX: Enable to zero extend integer registers to avoid > > partial dependencies. */ > > m_PPRO | m_P4_NOCONA | m_CORE2I7 | m_ATOM | m_GEODE | m_AMD_MULTIPLE | > > m_GENERIC, > > > > You can remove m_ATOM to see its performance impact with -mtune=atom > > on Atom. > > Well, yes, I think the proposal was to spill/load the full SImode instead > which would avoid both the partial dependency and the mismatched load/store > size. No? It is for movqi. We can only safely replace mozbl with movl if the source is 4byte aligned. It should a new backend option.