[Bug rtl-optimization/45678] [4.4/4.5/4.6 Regression] crash on vector code with -m32 -msse
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Sep 16 10:17:00 GMT 2010
------- Comment #3 from rguenth at gcc dot gnu dot org 2010-09-16 10:17 -------
DECL_ALIGN of d is set to 128 (but appearantly it isn't ensured it'll end up
that way). DECL_ALIGN is adjusted here:
Old value = 32
New value = 128
expand_one_stack_var_at (decl=0x7ffff5ae90a0, offset=-16)
at /space/rguenther/src/svn/trunk/gcc/cfgexpand.c:739
739 DECL_USER_ALIGN (decl) = 0;
so on trunk get_object_alignment of the MEM_REF will return 128 and thus
we do not run into unaligned move expansion here:
if (mode != BLKmode
&& (unsigned) align < GET_MODE_ALIGNMENT (mode)
/* If the target does not have special handling for unaligned
loads of mode then it can use regular moves for them. */
&& ((icode = optab_handler (movmisalign_optab, mode))
!= CODE_FOR_nothing))
manually setting alignment back to 32 in gdb results in ok asm.
movlps (%esp), %xmm0
movhps 8(%esp), %xmm0
mulps .LC4, %xmm0
instead of
mulps (%esp), %xmm0
Appearantly stack alignment code doesn't work.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hjl at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45678
More information about the Gcc-bugs
mailing list