SSE types and structures

Jan Hubicka
Tue Jun 18 07:40:00 GMT 2002

> 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.

> r~

More information about the Gcc-patches mailing list