This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: SSE fix 12 - argument alignment PR pending/8212
> On Mon, Oct 21, 2002 at 09:58:05PM +0200, Jan Hubicka wrote:
> > I am just testing the patch with second TYPE_USER_ALIGN changed to
> > TYPE_ALIGN and packed attribute in the testcase.
> > OK if it passes?
>
> I'd like to see the test cases you tried. We need to be
> _really_ careful that we don't break the C ABI here...
I am still having the abort there and did bootstrap without SSE
(so anything aligned will break).
I also tried long double and it works.
I tried the testcase with added __packed__ and it kind of works - the
alignment is correct, but we end up emmiting movdqa to missaligned
reference. I am not quite sure how to deal with this without defining
STRICT_ALIGNMENT that would be performance overkill, perhaps we can keep
packed vectors broken in 3.3.
What is more important IMO that _mm_loadu eexpected to result in
missaligned load using movups don't quite work - we end up with movaps
into register followed with movups into other when value is CSEable and
we are optimizing.
>
> > BTW did you noticed the SSE moves patch I sent yesterday?
>
> Yes. I've been meaning to get to that...
There is _mm_move_epi64 omitted. I will send separate patch for that.
Intel has apprently forgot to describe how MOVQ is supposed to work on
both register operand (movss moves lower word and keeps upper), buv
_mm_move_epi64 is unlike _mm_move_ss specified to clear upper part.
ICC emits simple MOVQ on that. I will try to get more up to date
documentation.
Honza
>
>
> r~