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: Vector Extensions to C (SSE2 on X86)


Amund Fjellheim <abc@lavacat.com> writes:

> GCC has some support for vector instructions through typedef'ed types
> like this:
> typedef int v4si __attribute__ ((vector_size (16)));
> 
> Some normal C operators can be done on these and there are some
> platform specific built in functions. The X86 functions are listed at
> http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/X86-Built_002din-
> Functions.html#X86-Built_002din-Functions , but there are lots of
> SSE2 instructions missing. Why? I don't see how it could be so hard
> to implement
> 
> v4si __builtin_ia32_pslld(v4si, int)
> 
> and so on, when so many other SSE and SSE2 instructions are there.
> Also, why aren't they available for C++ programs compiled with g++?
> 
> Will these things be fixed in future releases of gcc? Anyone know
> something about the status on this?

It is a documentation failure.  gcc's current goal is to implement the
Intel intrinsic functions, providing mmintrin.h and friends:
    http://www.intel.com/cd/ids/developer/asmo-na/eng/59644.htm

So, to get pslld, you would use _m_pslld or _m_pslldi, etc.

Ian


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