<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">There currently isn't any
implementation of epilog loop vectorization (see
<a class="moz-txt-link-freetext" href="https://reviews.llvm.org/D30247">https://reviews.llvm.org/D30247</a>, but it never got merged).<br>
<br>
In some cases you might get lucky with loop unrolling plus SLP
vectorization.<br>
<br>
-Eli<br>
<br>
On 7/24/2018 10:34 AM, hameeza ahmed wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAFMPKeYgprEff1HBqhYvp-tDAmSDq+By6mJ5Lg9RpD=PFY+LLQ@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<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"
moz-do-not-send="true">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" moz-do-not-send="true">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" moz-do-not-send="true">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>
-- <br>
You received this message because you are subscribed to the Google
Groups "Polly Development" group.<br>
To unsubscribe from this group and stop receiving emails from it,
send an email to <a
href="mailto:polly-dev+unsubscribe@googlegroups.com"
moz-do-not-send="true">polly-dev+unsubscribe@googlegroups.com</a>.<br>
For more options, visit <a
href="https://groups.google.com/d/optout" moz-do-not-send="true">https://groups.google.com/d/optout</a>.<br>
</blockquote>
<p><br>
</p>
<pre class="moz-signature" cols="72">--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</pre>
</body>
</html>