[llvm-dev] KNL Vectorization with larger vector width

hameeza ahmed via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 23 17:05:24 PDT 2018


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>


More information about the llvm-dev mailing list