<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 17, 2016 at 5:17 PM, Saito, Hideki via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<font face="Calibri" size="2"><span style="font-size:11pt"><span class="">
<div><font color="#1F497D"> </font></div>
<div>>What situations are they common in?</div>
<div><font color="#1F497D"> </font></div>
</span><div><font color="#1F497D">ICC Vectorizer made a paradigm shift a while ago.</font></div>
<div style="text-indent:36pt"><font color="#1F497D">If there aren’t a clear reason why something can’t be vectorized, we should try our best to vectorize.</font></div>
<div><font color="#1F497D">The rest is a performance modeling (and priority to implement) question, not a capability question.</font></div>
<div><font color="#1F497D">We believe this is a good paradigm to follow in a vectorizer development.</font></div></span></font></div></blockquote><div><br></div><div>In some sense, yes, but not at all possible costs.</div><div>There needs to be some actual motivating case to make it worth even writing the code for.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><font face="Calibri" size="2"><span style="font-size:11pt"><div><font color="#1F497D"> It was a big departure from</font></div>
<div><font color="#1F497D">“vectorize when all things look nice to vectorizer”.</font></div></span></font></div></blockquote><div><br></div><div>These are not diametrically opposed.</div><div><br></div><div>I mean, it may be not worth the cost of mainintaing the *compiler code* to do o it.</div><div>This isn't the same as "when things look nice to the vectorizer", it's more "we're willing to vectorize whatever we can, as long as someone is going to actually use it".</div><div><br></div><div>Nobody has here provided a useful set of cases/applications/etc that suggests it should be done. I'm not saying there are none, i'm saying, literally, nobody has motivated this use case yet :)</div><div><br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><font face="Calibri" size="2"><span style="font-size:11pt">
<div><font color="#1F497D"> </font></div>
<div><font color="#1F497D">We shouldn’t give up vectorizing simply because programmer wrote a FP induction code.(*)</font></div></span></font></div></blockquote><div><br></div><div>We shouldn't add code to the compiler just because we can.</div><div><br></div><div>I would similarly be against, for example, vectorizing loops with binary coded decimal induction variables, and adding an entire BCD SCEV infrastructure, without some motivating case *somewhere*.</div><div><br></div><div>So i suggest y'all start from: "Here are the cases we care about making faster, and why we care about making them faster".</div><div><br></div><div>In compilers, building infrastructure first, then finding customers works a lot worse than figuring out what customers want, and then building infrastructure for them :)</div><div><br></div></div></div></div>