<div dir="ltr"><div>Hello, <br></div><div>I need help here. I am able to adjust the vector width through WidestRegister value. When number of iterations=31 and I set vector width=32 it gives <16xi32> and <8xi32> instructions.</div><div><br></div><div>However if i replicate same behavior with number of iterations=63 and I set vector width=64, no vector instructions are emitted. it should do as previous and gives <32xi32> and <16xi32> vector instructions.</div><div><br></div><div>How to do this?</div><div>What adjustments are needed?<br></div><div><br></div><div>Please help</div><div><br></div><div>I m trying this but unable to solve.</div><div><br></div><div>Thank You<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 24, 2018 at 4:44 PM, hameeza ahmed <span dir="ltr"><<a href="mailto:hahmed2305@gmail.com" target="_blank">hahmed2305@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hello,</div><div>Do i need to change following function;</div><div><br></div><div>unsigned X86TTIImpl::<wbr>getNumberOfRegisters(bool Vector) {<br> if (Vector && !ST->hasSSE1())<br> return 0;<br><br> if (ST->is64Bit()) {<br> if (Vector && ST->hasAVX512())<br> return 32;<br> return 16;<br> }<br> return 8;<br>}</div><div><br></div><div>to <br></div><div><br></div><div>if (ST->is2048Bit()) {<br> if (Vector && ST->hasAVX512())<br> return 1024;<br> return 512;<br> }<br> return 256;<br></div><div><br></div><div><br></div><div>please help...<br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 24, 2018 at 5:05 AM, hameeza ahmed <span dir="ltr"><<a href="mailto:hahmed2305@gmail.com" target="_blank">hahmed2305@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Thank You.</div><div>Right now to see the effect i did following changes;</div><div><br></div><div>unsigned X86TTIImpl::getRegisterBitWidt<wbr>h(bool Vector) {<br> if (Vector) {<br> if (ST->hasAVX512())<br> return 65536;</div><div><br></div><div>here i changed 512 to 65536. Then in loopvectorize.cpp i did following;</div><div><br></div><div> assert(MaxVectorSize <= 2048 && "Did not expect to pack so many elements"<br> <wbr> " into one vector!");</div><div><br></div><div>changed 64 to 2048.</div><div><br></div><div>It runs fine. I can see in IR <2048xi32> or <1024xi64> emission.</div><div><br></div><div>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></div><div><br></div><div>how to do this?</div><div><br></div><div>What am i missing here?</div><div>what further changes do i need to make?</div><div><br></div><div>Please help...<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="m_-4698488175367679473HOEnZb"><div class="m_-4698488175367679473h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 24, 2018 at 1:52 AM, Friedman, Eli <span dir="ltr"><<a href="mailto:efriedma@codeaurora.org" target="_blank">efriedma@codeaurora.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On 7/23/2018 12:40 PM, hameeza ahmed wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thank You. I got it. Version issue.<br>
<br>
TTI.getRegisterBitWidth(true)<br>
<br>
How to put my target machine info in TTI?<br>
</blockquote>
<br></span>
Each target has an implementation, e.g. X86TTIImpl::getRegisterBitWidt<wbr>h.<div class="m_-4698488175367679473m_8841872642354152121HOEnZb"><div class="m_-4698488175367679473m_8841872642354152121h5"><br>
<br>
-Eli<br>
<br>
-- <br>
Employee of Qualcomm Innovation Center, Inc.<br>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project<br>
<br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>