optimization/8049: SSE unaligned vector stores crash with -O0
Ian Ollmann
iano@cco.caltech.edu
Thu Oct 10 18:06:00 GMT 2002
The following reply was made to PR optimization/8049; it has been noted by GNATS.
From: Ian Ollmann <iano@cco.caltech.edu>
To: Jan Hubicka <jh@suse.cz>
Cc: hubicka@gcc.gnu.org, <gcc-bugs@gcc.gnu.org>, <gcc-prs@gcc.gnu.org>,
<gcc-gnats@gcc.gnu.org>
Subject: Re: optimization/8049: SSE unaligned vector stores crash with -O0
Date: Thu, 10 Oct 2002 17:58:22 -0700
I think the problem is that the compiler is not properly padding data.
_mm_store_ps is nearly unique in that its argument order is
_mm_store_ps( float*, vector );
The 0x4 offset is to protect the float* that is written to the stack a few
bytes earlier. The compiler needs to insert an extra 12 bytes of padding.
In fact, it I swap the order of the arguments as follows:
_mm_store_ps( vector, float*)
then the crash goes away.
Ian
---------------------------------------------------
Ian Ollmann, Ph.D. iano@cco.caltech.edu
---------------------------------------------------
More information about the Gcc-prs
mailing list