[llvm-commits] [llvm] r150060 - in /llvm/trunk: include/llvm/IntrinsicsX86.td lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86InstrSSE.td
Eric Christopher
echristo at apple.com
Wed Feb 8 10:43:08 PST 2012
On Feb 8, 2012, at 8:43 AM, David A. Greene <dag at cray.com> wrote:
> Duncan Sands <baldrick at free.fr> writes:
>
>>> My experience with the C backend says otherwise. I've run across lots
>>> of cases where shuffles could not be handled.
>>
>> then fix the C backend?
>
> Not possible with the current C backend. It uses illegal types, for
> one.
>
It's going to be removed anyhow.
>>> I don't know of any way to generate generic IR and guarantee that the
>>> instruction the user selected through an intrinsic will be the
>>> instruction selected by LLVM's isel. There are too many transformation
>>> steps in-between.
>>
>> Of course there is no such guarantee. The question is whether doing things
>> using generic IR is mostly a win or not. Maybe today it's often not a win,
>> but since that's fixable it seems to me that the "use generic IR if not too
>> crazy" path is on the whole the right way to go.
>
> Whether generic IR is a "win" isn't the primary issue here. The issue
> is that the user wrote code using intrinsics and expects that exact code
> to be in the asm. Whether or not that is the best performing code
> possible doesn't matter. It's what they want and we have to respect it.
> Our customers demand it.
Then make the generic IR match what you think should happen. I see no win
for anyone with this.
-eric
More information about the llvm-commits
mailing list