hameeza ahmed via llvm-dev
2018-Jul-23 19:40 UTC
[llvm-dev] KNL Vectorization with larger vector width
Thank You. I got it. Version issue. TTI.getRegisterBitWidth(true) How to put my target machine info in TTI? Please help. On Mon, Jul 23, 2018 at 11:33 PM, Friedman, Eli <efriedma at codeaurora.org> wrote:> On 7/23/2018 10:49 AM, hameeza ahmed via llvm-dev wrote: > > Thank You. > > But I cannot find your mentioned function LoopVectorizationCostModel::computeFeasibleMaxVF(bool > OptForSize, unsigned ConstTripCount). I am using LLVM 4. > > > "git log -ScomputeFeasibleMaxVF" says this was refactored in > https://reviews.llvm.org/rL297737 . > > -Eli > > -- > Employee of Qualcomm Innovation Center, Inc. > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180724/6876afbb/attachment.html>
Friedman, Eli via llvm-dev
2018-Jul-23 20:52 UTC
[llvm-dev] KNL Vectorization with larger vector width
On 7/23/2018 12:40 PM, hameeza ahmed wrote:> Thank You. I got it. Version issue. > > TTI.getRegisterBitWidth(true) > > How to put my target machine info in TTI?Each target has an implementation, e.g. X86TTIImpl::getRegisterBitWidth. -Eli -- Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
hameeza ahmed via llvm-dev
2018-Jul-24 00:05 UTC
[llvm-dev] KNL Vectorization with larger vector width
Thank You. Right now to see the effect i did following changes; unsigned X86TTIImpl::getRegisterBitWidth(bool Vector) { if (Vector) { if (ST->hasAVX512()) return 65536; here i changed 512 to 65536. Then in loopvectorize.cpp i did following; assert(MaxVectorSize <= 2048 && "Did not expect to pack so many elements" " into one vector!"); changed 64 to 2048. It runs fine. I can see in IR <2048xi32> or <1024xi64> emission. But I cannot see the vector mix like in default knl if iterations=15 we see 1<8xi32> and rest scalar. so here when i keep iteration=2047 i get all scalar why is that so? similarly in polly as well i cant see vector mixes like its happening for KNL it emits <v16i32>, <v8i32>,<v4i32>...so here it should emit recursively like <v2048i32> <v1024i32> <v512i32>.....<v32i32> how to do this? What am i missing here? what further changes do i need to make? Please help... On Tue, Jul 24, 2018 at 1:52 AM, Friedman, Eli <efriedma at codeaurora.org> wrote:> On 7/23/2018 12:40 PM, hameeza ahmed wrote: > >> Thank You. I got it. Version issue. >> >> TTI.getRegisterBitWidth(true) >> >> How to put my target machine info in TTI? >> > > Each target has an implementation, e.g. X86TTIImpl::getRegisterBitWidth. > > > -Eli > > -- > Employee of Qualcomm Innovation Center, Inc. > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux > Foundation Collaborative Project > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180724/b6472733/attachment.html>