[LLVMdev] Help with gcc SSE intrinsics

David Greene
Fri, 09 Oct 2009 20:50:03 -0000

On Friday 09 October 2009 15:47, Dale Johannesen wrote:
> On Oct 9, 2009, at 1:26 PMPDT, David Greene wrote:
> > Ok, I've been looking at this for hours and can't figure it
out.  I
> > know I'm
> > missing something obvious.
> >
> > I've been spending the past few days beefing up the vector support
> > in the C
> > Backend.  This should help us debug vector code that's
miscompiled.
> > But
> > gcc doesn't like this fragment:
> >
> >  ((double *)(&llvm_cbe_r1147))[0u] > >
(((llvm_cbe_r1146__BITCAST_TEMPORARY.Int64 = 4ull,
> > llvm_cbe_r1146__BITCAST_TEMPORARY .Double)));
> >  llvm_cbe_r1148 = __builtin_ia32_movddup(llvm_cbe_r1147);
>
> I don't see __builtin_ia32_movddup defined anywhere in the llvm-gcc
> sources.  That's probably it.

Not llvm-gcc.  GNU gcc.  It's documented here:

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

                                 -Dave