http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48262
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-03-23 23:40:18 UTC --- ;; Under VSX, vectors of 4/8 byte alignments do not need to be aligned ;; since the load already handles it. (define_expand "movmisalign<mode>" [(set (match_operand:VEC_N 0 "vfloat_operand" "") (match_operand:VEC_N 1 "vfloat_operand" ""))] "VECTOR_MEM_VSX_P (<MODE>mode) && TARGET_ALLOW_MOVMISALIGN" "") Only accepts registers while expr.c thinks the operands should allow memory too.