Shahid, Asghar-ahmad
2015-May-01 16:59 UTC
[LLVMdev] [RFC][PATCH] Adding absd/hadd/sad intrinsics
Hi All, I would like to introduce intrinsics to generate efficient codes for 'absolute differences', 'horizontal add' and 'sum of absolute differences' Idioms used by user programs. Identifying these idioms at lower level (Codegen) is complex. These idioms can be identified in LV/SLP and vectorized using above intrinsics to generate better code. Proposal: 1. Add intrinsics for 'absolute differences', 'horizontal add' and 'sum of absolute differences' having variants of Fixed / floating point data types and signed/unsigned operations. 2. Recognize these idioms at loop vectorizer or SLP and replace with corresponding intrinsics based on the target's Backend support. Having these intrinsic will also help in cost modeling for these idioms which is complex down the lane. Pls find attached a patch regarding this which is incomplete & dirty at this moment, however, it may help in this discussion. Regards, Shahid -------------- next part -------------- A non-text attachment was scrubbed... Name: absd_hadd_sad_intrinsic.patch Type: application/octet-stream Size: 30121 bytes Desc: absd_hadd_sad_intrinsic.patch URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150501/facd5cdb/attachment.obj>
Shahid, Asghar-ahmad
2015-May-04 05:31 UTC
[LLVMdev] [RFC][PATCH] Adding absd/hadd/sad intrinsics
Hi Devs, Pinging..., as didn't get any response yet. Or shall I assume it is acceptable to all? Regards, Shahid> -----Original Message----- > From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] > On Behalf Of Shahid, Asghar-ahmad > Sent: Friday, May 01, 2015 10:29 PM > To: llvmdev at cs.uiuc.edu > Subject: [LLVMdev] [RFC][PATCH] Adding absd/hadd/sad intrinsics > > Hi All, > > I would like to introduce intrinsics to generate efficient codes for 'absolute > differences', 'horizontal add' > and 'sum of absolute differences' Idioms used by user programs. > > Identifying these idioms at lower level (Codegen) is complex. These idioms > can be identified in LV/SLP and vectorized using above intrinsics to generate > better code. > > Proposal: > 1. Add intrinsics for 'absolute differences', 'horizontal add' and 'sum of > absolute differences' having variants of Fixed / floating point data types and > signed/unsigned operations. > 2. Recognize these idioms at loop vectorizer or SLP and replace with > corresponding intrinsics based on the target's Backend support. > > Having these intrinsic will also help in cost modeling for these idioms which is > complex down the lane. > > Pls find attached a patch regarding this which is incomplete & dirty at this > moment, however, it may help in this discussion. > > Regards, > Shahid >
Hi Asghar-Ahmed, I saw your last ping - sorry, I'm away on vacation and back on Wednesday. Generally, I'm not sure that having both absd/hadd and sad are compatible with the discussions going on in other threads, for example my thread about min and max. Given that those two intrinsics are fairly trivial to match , I don't see the need to have two different canonical forms. James On Mon, 4 May 2015 at 07:55, Shahid, Asghar-ahmad < Asghar-ahmad.Shahid at amd.com> wrote:> Hi Devs, > > Pinging..., as didn't get any response yet. Or shall I assume it is > acceptable to all? > > Regards, > Shahid > > > -----Original Message----- > > From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] > > On Behalf Of Shahid, Asghar-ahmad > > Sent: Friday, May 01, 2015 10:29 PM > > To: llvmdev at cs.uiuc.edu > > Subject: [LLVMdev] [RFC][PATCH] Adding absd/hadd/sad intrinsics > > > > Hi All, > > > > I would like to introduce intrinsics to generate efficient codes for > 'absolute > > differences', 'horizontal add' > > and 'sum of absolute differences' Idioms used by user programs. > > > > Identifying these idioms at lower level (Codegen) is complex. These > idioms > > can be identified in LV/SLP and vectorized using above intrinsics to > generate > > better code. > > > > Proposal: > > 1. Add intrinsics for 'absolute differences', 'horizontal add' and 'sum > of > > absolute differences' having variants of Fixed / floating point data > types and > > signed/unsigned operations. > > 2. Recognize these idioms at loop vectorizer or SLP and replace with > > corresponding intrinsics based on the target's Backend support. > > > > Having these intrinsic will also help in cost modeling for these idioms > which is > > complex down the lane. > > > > Pls find attached a patch regarding this which is incomplete & dirty at > this > > moment, however, it may help in this discussion. > > > > Regards, > > Shahid > > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150504/cff0e901/attachment.html>
Reasonably Related Threads
- [LLVMdev] [RFC][PATCH] Adding absd/hadd/sad intrinsics
- [LLVMdev] [RFC][PATCH] Adding absd/hadd/sad intrinsics
- [LLVMdev] [RFC][PATCH] Adding absd/hadd/sad intrinsics
- [LLVMdev] [RFC][PATCH] Adding absd/hadd/sad intrinsics
- [LLVMdev] [RFC][PATCH] Adding absd/hadd/sad intrinsics