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

Chris Lattner clattner at apple.com
Thu Feb 9 01:45:14 PST 2012

On Feb 9, 2012, at 1:19 AM, Duncan Sands wrote:

> Hi Craig,
>>    I see that you removed all clang support for these builtins, rather than having
>>    clang turn the builtin into a shufflevector instruction (which is what I thought
>>    you did).  Is that wise?  You just reduced GCC compatibility, when you could
>>    have kept it by expanding the builtins into generic IR.
>>    Ciao, Duncan.
>> That's correct, but what I did is no different than what is already done for
>> pshufd, shufps/pd, punpckl*, punpckh*, unpcklps/pd, unpckhps/pd, pshuflw,
>> pshufhw, etc.
> was it really a good idea to remove them?  You could have had clang support them
> at little cost, maintaining GCC compatibility.

Hi Duncan,

I haven't been following the whole thread, but yes, we really do want to remove intrinsics that are redundant with core IR instructions.  In reality, what we wanted is for them never to be added in the first place :).  Over time, we hope that LLVM IR becomes more expressive, and as such it will increasingly overlap with things that are currently intrinsics.  Another one that is on the chopping block at some point is the half-float conversion intrinsics, which are now redundant with casts to the native half-float type.


More information about the llvm-commits mailing list