This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]