http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57748
--- Comment #33 from Richard Biener <rguenth at gcc dot gnu.org> --- My point is that > - mode = TYPE_MODE (TREE_TYPE (tem)); > - if (TREE_CODE (tem) == MEM_REF > - && mode != BLKmode > - && ((align = get_object_alignment (tem)) > - < GET_MODE_ALIGNMENT (mode)) > - && ((icode = optab_handler (movmisalign_optab, mode)) is wrong because it asks if we can do a V2DFmode (the mode of the whole struct!) unaligned store which the backend says, yes!, and it builds a V2DFmode store for us to use. But the _access_ is V1DFmode! The access is not to 'tem' but to 'to'! Using the mode of 'tem' is just wrong to use for movmisalign.