[llvm-commits] [PATCH] ARM: Add vaddl/vsubl intrinsics

Bob Wilson bob.wilson at apple.com
Thu Dec 20 09:53:46 PST 2012


Sorry that I'm a bit behind in reviewing patches, but I don't think this is the right way to go.  We intentionally omitted those intrinsics because there is no need for them.  We can already represent those operations as combinations with vmovl.  Look at clang's <arm_neon.h> to see how they are implemented.

Unless you have a good reason why that approach doesn't work, I think this patch should be reverted.

On Dec 20, 2012, at 5:53 AM, Renato Golin <rengolin at systemcall.org> wrote:

> Tested and committed r170694.
> 
> cheers,
> --renato
> 
> On 20 December 2012 05:29, Pete Couperus <pjcoup at gmail.com> wrote:
>> Hi Renato,
>> 
>> My apologies, somehow I neglected to bundle the IntrinsicsARM.td changes.
>> Let's try again :).
>> 
>> Pete
>> 
>> 
>> On Wed, Dec 19, 2012 at 10:29 AM, Renato Golin <rengolin at systemcall.org> wrote:
>>> Hi Pete,
>>> 
>>> I'm having trouble with your patch. It applied nicely, but I get this
>>> compilation error:
>>> 
>>> /home/rengolin/devel/llvm/src/lib/Target/ARM/ARMISelLowering.cpp: In
>>> member function ‘llvm::SDValue
>>> llvm::ARMTargetLowering::LowerINTRINSIC_WO_CHAIN(llvm::SDValue,
>>> llvm::SelectionDAG&, const llvm::ARMSubtarget*) const’:
>>> /home/rengolin/devel/llvm/src/lib/Target/ARM/ARMISelLowering.cpp:2436:8:
>>> error: ‘arm_neon_vaddls’ is not a member of ‘llvm::Intrinsic’
>>> /home/rengolin/devel/llvm/src/lib/Target/ARM/ARMISelLowering.cpp:2437:8:
>>> error: ‘arm_neon_vaddlu’ is not a member of ‘llvm::Intrinsic’
>>> /home/rengolin/devel/llvm/src/lib/Target/ARM/ARMISelLowering.cpp:2438:33:
>>> error: ‘arm_neon_vaddls’ is not a member of ‘llvm::Intrinsic’
>>> /home/rengolin/devel/llvm/src/lib/Target/ARM/ARMISelLowering.cpp:2443:8:
>>> error: ‘arm_neon_vsubls’ is not a member of ‘llvm::Intrinsic’
>>> /home/rengolin/devel/llvm/src/lib/Target/ARM/ARMISelLowering.cpp:2444:8:
>>> error: ‘arm_neon_vsublu’ is not a member of ‘llvm::Intrinsic’
>>> /home/rengolin/devel/llvm/src/lib/Target/ARM/ARMISelLowering.cpp:2445:33:
>>> error: ‘arm_neon_vsubls’ is not a member of ‘llvm::Intrinsic’
>>> 
>>> Have you seen this?
>>> 
>>> --renato
>>> 
>>> On 19 December 2012 15:02, Pete Couperus <pjcoup at gmail.com> wrote:
>>>> Hi Renato,
>>>> 
>>>> On Wed, Dec 19, 2012 at 5:05 AM, Renato Golin <rengolin at systemcall.org> wrote:
>>>>> 
>>>>> On 19 Dec 2012 04:46, "Pete Couperus" <pjcoup at gmail.com> wrote:
>>>>>> Renato, I agree, it would probably be better to have a name other than
>>>>>> SDTARMVMULL, as there are many instructions fitting this category.
>>>>>> Perhaps SDTARMVLONG2 (for NEON Long 2 input argument instructions)?
>>>>> 
>>>>> Yup, should be fine.
>>>>> 
>>>>> Cheers,
>>>>> Renato
>>>> 
>>>> Cool.  Here is a revised patch.
>>>> Let me know if there is anything else.
>>>> If it looks good, would you mind committing for me?
>>>> Thanks!
>>>> 
>>>> Pete
>>> 
>>> 
>>> 
>>> --
>>> cheers,
>>> --renato
>>> 
>>> http://systemcall.org/
> 
> 
> 
> -- 
> cheers,
> --renato
> 
> http://systemcall.org/
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list