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

Reply via email to