This is the mail archive of the gcc-bugs@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 types and structures


> On Sat, Jun 15, 2002 at 02:08:36PM +0200, Jan Hubicka wrote:
> > Just did and __m64 gets aligned to 8 byte boundary, while long long doesn't.
> 
> Ok.  I guess you can fiddle __m64 to v8qi mode or something
> then.  You'll need to fix up mmintrin.h to match.

I am just poking around this.  It appears to be tricky, as the __builtin
interface appears to be built around assumtpion that __m64 == long long.
All the functions returns long long and I don't see way to cast it into
V8QI and back easilly.

Perhaps I can define it as union of long long and all the vector modes
supported?  I remember it being defined that way in Intel manual, at
least some early versions.

Intel GCC appears to use long long or structure of two integers, depending
on machine.  This opens another problem of return conventions, as I
believe structure would be returned by reference, while long long in
eax:edx, both not making much sense.

Perhaps I can go half way, use __attribute__ (align (8)) for 3.1 and try
to figure out better way for 3.2...

Honza
> 
> 
> r~


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