<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 27, 2014 at 7:12 PM, Nadav Rotem <span dir="ltr"><<a href="mailto:nrotem@apple.com" target="_blank">nrotem@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The vectorizers don’t generate interesting shuffle patterns because it is difficult to predict the cost of shuffles. We use the ShuffleKind enum in TTI to query the backends on the cost of specific instructions such as reverse, broadcast and and alternate. For loop vectorization I don’t think that there are other interesting shuffle patterns. Can you think of other patterns that can help loop vectorization? For SLP-vectorization, shuffling loads could help, but the problem is cost estimation and not inefficient lowering.  </blockquote>
</div><br>I don't know what to tell you, as I'm not familiar with the shuffles in the vectorizer, however I observe that we vectorize loops and the results end up in the x86 shuffle lowering, with rather interesting patterns. Some of these patterns are the reason I started looking at all of this.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">:: shrug ::</div></div>