<div dir="ltr"><div>Renato,<br><br>On Wed, Feb 5, 2014 at 4:09 PM, Renato Golin <span dir="ltr"><<a href="mailto:renato.golin@linaro.org" target="_blank">renato.golin@linaro.org</a>></span> wrote:<br><br></div>As far as I can get it from here:<div>
<div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div><br></div><div><a href="http://software.intel.com/en-us/node/462948" target="_blank">http://software.intel.com/en-us/node/462948</a><br>
</div><div><a href="http://software.intel.com/en-us/node/462942" target="_blank">http://software.intel.com/en-us/node/462942</a><br></div><div><br></div><div></div></div></div><div class="gmail_extra">It does provide some, but not all of the features we need. Or maybe the doc was too poor to explain the whole thing...</div>
</div></blockquote><div><br></div><div>It is better to refer to the official OpenMP 4.0 spec (<a href="http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf">http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf</a>, pg. 68) -- though I'm pretty sure the explanation is pretty similar.<br>
<br></div><div>I agree -- "omp simd" pragma doesn't cover everything you proposed (certainly has nothing to do with unrolling). However, it is a part of an accepted and widely used standard. Thus, if we (meaning the whole community) want to introduce a method to control vectorization that we advocate to be employed by end users and not as a debug tool by llvm developers, this is, IMHO, the way to go.<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">
<div class="gmail_extra"><br></div><div class="gmail_extra">The only one I thought it could be used directly is the safelen(n), but we still don't have safety metadata for loops in the back-end.</div><div class="gmail_extra">

<br></div><div class="gmail_extra">I don't know how we could use those pragmas to control width and unroll factors, but I'm assuming that the existence of the pragma is the same as our "vectorize enable", however, there isn't a way to "disable" the vectorizer on a specific loop where the compiler does a bad job.</div>

<div class="gmail_extra"><br></div><div class="gmail_extra">Anyway, I don't mind having the support for our metadata on different pragmas (or C++11 annotations)...</div></div></blockquote><div><br></div><div>If you volunteer to do code review, we can prepare patches (that implement "omp simd" and rely on back-end support you implemented) and commit them.<br>
</div><div> </div>Yours,<br>Andrey<br><br></div></div></div></div>