[llvm-commits] [llvm] r150060 - in /llvm/trunk: include/llvm/IntrinsicsX86.td lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86InstrSSE.td

Craig Topper craig.topper at gmail.com
Wed Feb 8 08:03:40 PST 2012

On Wed, Feb 8, 2012 at 7:41 AM, Duncan Sands <baldrick at free.fr> wrote:

> Hi David,
>  I do intend to remove the intrinsics eventually. I just haven't looked
>>> at what I need to do in order to do that in the AutoUpgrade code so I
>>> didn't do it yet. The previous intrinsic removal was my first time
>>> using the IR builder functions so I'm pretty new to that side of llvm.
>>> Would you prefer me to put the builtin lines back or would you rather
>>> fix dragonegg to not use them?
>> Please put back the builtin lines and do not delete the intrinsics.
>> Intrinsics are used by users and we want to respect that.
>> The builtins are useful for running the C backend to get something
>> compilable by gcc.  This is very helpful for debugging.
> once auto-upgrade support for these intrinsics goes in, won't everything be
> fine?  Old bitcode using the intrinsics will be turned into generic LLVM IR
> (shuffles).  The C backend should turn this into valid C, though indeed not
> into the GCC builtins anymore.  Frontends can pretty easily just generate
> the generic IR rather than the intrinsics (at least I hope it's easy,
> since I'm
> going to have to do this in my front-end).
> Ciao, Duncan.

LLVM doesn't match gcc on a lot of builtins. Chris also stated to me in
e-mail that matching gcc on vector builtins isn't a goal. Most of the x86
shuffle instructions don't have llvm intrinsics and instead use the generic
_builtin_shufflevector in the *mmintrin.h header files in clang.  My goal
here was only to make a few more shuffles match the behavior of  the other
shuffles in this respect.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120208/05de4b0e/attachment.html>

More information about the llvm-commits mailing list