[LLVMdev] Clang 3.1 __builtin_ia32_pcmpeqd128 doesn't work anymore

Duncan Sands baldrick at free.fr
Mon Jun 4 04:29:56 PDT 2012


Hi Christophe,

> So if i understand right, i can't directly compile the c code using clang.
> And i need to manually generate some llvm ir to replace the builtin function.
>
> Is that right?

I think so, though I don't know much about clang's support for such intrinsics,
just what's in http://clang.llvm.org/compatibility.html#vector_builtins

Ciao, Duncan.

>
>
> 2012/6/4 Duncan Sands <baldrick at free.fr <mailto:baldrick at free.fr>>
>
>     Hi Christophe,
>
>      > I recently migrate from llvm/clang 2.8 to 3.1.
>      > The builtin __builtin_ia32_pcmpeqd128 compile and works perfectly with
>     clang 2.8.
>      > But with clang 3.1, i get the compilation error :
>      >
>      > use of unknown builtin '__builtin_ia32_pcmpeqd128'
>     [-Wimplicit-function-declaration]
>      >         __v4i comp = __builtin_ia32_pcmpeqd128(vectTag, vectTag2);
>      >
>      > (cf dummy.c -> clang -c dummy.c -o dummy.o)
>      >
>      > Is that normal? Is there an other way to do it?
>
>     I think it was removed because you can get the same effect using generic IR:
>     a "icmp eq" of the vectors, followed by a "sext" to the result type.
>
>     Ciao, Duncan.
>     _______________________________________________
>     LLVM Developers mailing list
>     LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu> http://llvm.cs.uiuc.edu
>     http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>




More information about the llvm-dev mailing list