This is the mail archive of the gcc@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 Mon, Jun 17, 2002 at 04:26:09PM +0200, Jan Hubicka wrote:
> > 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.
> 
> Well, duh, you'd do it uneasily and change them all, or add
> a cast at every single invocation.

Problem is that I don't see how to write the cast in C.  Simple (long
long)__m64 does not work of course :(

Even if I change them all, still there is function to convert __m64 into
integer and back.  Perhaps the union trick will work, but I am not quite
sure how that would affect code generation.  Whats about aliasing?
SHould __m64 alias with long long?
> 
> > Perhaps I can go half way, use __attribute__ (align (8)) for 3.1 and try
> > to figure out better way for 3.2...
> 
> That doesn't help you with the x86-64 abi.

Yes, but for 3.1 it will keep things compatible with ICC.
ICC appears to use exactly this definition.

Honza
> 
> 
> r~


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