Since GET_MODE_ALIGNMENT is defined by psABI and the biggest alignment is 4 byte for IA MCU psABI, we should use GET_MODE_BITSIZE to get vector natural alignment to check misaligned vector move.
OK for trunk? Thanks. H.J. --- * config/i386/i386.c (ix86_expand_vector_move): Use GET_MODE_BITSIZE to get vector natural alignment. --- gcc/config/i386/i386.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index ebe2b0a..d0e1f4c 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -18650,7 +18650,9 @@ void ix86_expand_vector_move (machine_mode mode, rtx operands[]) { rtx op0 = operands[0], op1 = operands[1]; - unsigned int align = GET_MODE_ALIGNMENT (mode); + /* Use GET_MODE_BITSIZE instead of GET_MODE_ALIGNMENT since the + biggest alignment is 4 byte for IA MCU psABI. */ + unsigned int align = GET_MODE_BITSIZE (mode); if (push_operand (op0, VOIDmode)) op0 = emit_move_resolve_push (mode, op0); -- 2.4.3