This is the mail archive of the gcc-help@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]

Missing SSE Intrinsics?


The X86 SSE intrinsics are documented here:

http://gcc.gnu.org/onlinedocs/gcc-4.4.1/gcc/X86-Built_002din-Functions.html#X86-Built_002din-Functions

In particular, this list includes __builtin_ia32_movddup.

But it doesn't work:

#include <stdio.h>

int main(void)
{
  typedef double v2df __attribute__ ((vector_size (16)));

  v2df vec = {};
  ((double *)(&vec))[0] = 1.0;
  vec = __builtin_ia32_movddup(vec);
  
  printf("vec[0] = %f, vec[1] = %f\n", ((double *)(&vec))[0], ((double *)
(&vec))[1]);

  return 0;
}

% gcc movddup.c -o movddup
movddup.c: In function 'main':
movddup.c:9: error: incompatible types when assigning to type 'v2df' from type 
'int'

I found this message that indicates it's gone:

http://gcc.gnu.org/ml/gcc-help/2005-12/msg00148.html

So is it gone?  If so, why is it still documented?  And where are the 
xmmintrinsics documented?

Thanks.

                                   -Dave


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