<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">> <span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">We'll put together a list of what we do with IVDEP and see if they are all covered under that wording.</span></p>
<p style="margin-top:0;margin-bottom:0"><span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;"><br>
</span></p>
<p style="margin-top:0;margin-bottom:0"><span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;">Thanks, that will be helpful.</span></p>
<p style="margin-top:0;margin-bottom:0"><span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;"><br>
</span></p>
<p style="margin-top:0;margin-bottom:0"><span style="font-family: Calibri, Helvetica, sans-serif, serif, EmojiFont; font-size: 16px;"> -Hal</span></p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<div id="Signature">
<div class="BodyFragment"><font size="2"><span style="font-size:10pt;">
<div class="PlainText">Hal Finkel<br>
Lead, Compiler Technology and Programming Languages<br>
Leadership Computing Facility<br>
Argonne National Laboratory</div>
</span></font></div>
</div>
<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Scott Manley <rscottmanley@gmail.com><br>
<b>Sent:</b> Friday, August 9, 2019 1:26 PM<br>
<b>To:</b> Finkel, Hal J. <hfinkel@anl.gov><br>
<b>Cc:</b> cameron.mcinally@nyu.edu <cameron.mcinally@nyu.edu>; llvm-dev@lists.llvm.org <llvm-dev@lists.llvm.org>; MAMIDALA SAI PRAHARSH <es17btech11013@iith.ac.in>; YASHAS ANDALURI <es17btech11025@iith.ac.in>; HAPPY Mahto <cs17btech11018@iith.ac.in>; BHAVYA
BAGLA <cs17btech11007@iith.ac.in><br>
<b>Subject:</b> Re: [llvm-dev] [LLVM] (RFC) Addition/Support of new Vectorization Pragmas in LLVM</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div>> <span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px">This matches what Cray's manual says, but I'm also not sure how to interpret this statement. Does that means that the dependencies ignored are dependent on the selected
target? I'm a bit worried that the dependencies interesting for vectorization might change over time or depend on the hardware being targeted. </span><br>
</div>
<div><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px"><br>
</span></div>
<div><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px">No, we don't consider the target with regards to ivdep -- but I'll admit I don't know what hardware might do in the future :)</span></div>
<div><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px"><br>
</span></div>
<div><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px">Perhaps </span><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px">we could look at a classic vector dependency issue in what
Cray calls a vector update (I believe Intel refers to it as a histogram) -- a[idx[i]] = a[idx[i]] </span><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px">+ b[i] as an example? Some targets can vectorize this and thus
isn't technically a dependency issue for those targets, but ivdep can still play a role here. Without ivdep, you can still safely vectorize this on Skylake but it requires a particular sequence of instructions to resolve properly. With ivdep, we can simply
generate a gather/scatter. I imagine other vector dependency issues might benefit from a similar user driven choice on hardware that could possibly "resolve" some of the dependency problems. </span></div>
<div><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px"><br>
</span></div>
<div><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px">> </span><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px">Can you please take a look at the way that Intel's Fortran manual
defines ivdep (</span><a href="https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-ivdep" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" id="LPlnk614265" target="_blank" style="font-family:Calibri,Helvetica,sans-serif; font-size:16px" previewremoved="true">https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-ivdep</a><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px">)
and say whether those semantics would also make sense for Cray's implementation?</span></div>
<div id="LPBorder_GT_15653757537710.491924395681018" style="margin-bottom: 20px; overflow: auto; width: 100%; text-indent: 0px;">
<table id="LPContainer_15653757537530.906306745179543" role="presentation" cellspacing="0" style="width: 90%; background-color: rgb(255, 255, 255); position: relative; overflow: auto; padding-top: 20px; padding-bottom: 20px; margin-top: 20px; border-top: 1px dotted rgb(200, 200, 200); border-bottom: 1px dotted rgb(200, 200, 200);">
<tbody>
<tr valign="top" style="border-spacing: 0px;">
<td id="ImageCell_15653757537600.42911312733657714" colspan="1" style="width: 250px; position: relative; display: table-cell; padding-right: 20px;">
<div id="LPImageContainer_15653757537610.07824918439831174" style="background-color: rgb(255, 255, 255); height: 55px; position: relative; margin: auto; display: table; width: 55px;">
<a id="LPImageAnchor_15653757537630.4451832809241705" href="https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-ivdep" target="_blank" style="display: table-cell; text-align: center;"><img id="LPThumbnailImageID_15653757537630.10807722729336056" width="54" height="54" style="display: inline-block; max-width: 250px; max-height: 250px; height: 54px; width: 54px; border-width: 0px; vertical-align: bottom;" src="https://software.intel.com/sites/default/files/33/a8/search_publish_icon.jpg"></a></div>
</td>
<td id="TextCell_15653757537640.6085019044613214" colspan="2" style="vertical-align: top; position: relative; padding: 0px; display: table-cell;">
<div id="LPRemovePreviewContainer_15653757537640.23719867916492232"></div>
<div id="LPTitle_15653757537650.5100060878036983" style="top: 0px; color: rgb(0, 120, 215); font-weight: 400; font-size: 21px; font-family: wf_segoe-ui_light, "Segoe UI Light", "Segoe WP Light", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; line-height: 21px;">
<a id="LPUrlAnchor_15653757537660.1323209553544955" href="https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-ivdep" target="_blank" style="text-decoration: none;">IVDEP | Intel® Fortran Compiler 19.0</a></div>
<div id="LPMetadata_15653757537670.9862797703473121" style="margin: 10px 0px 16px; color: rgb(102, 102, 102); font-weight: 400; font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 14px;">
software.intel.com</div>
<div id="LPDescription_15653757537690.4153540991098197" style="display: block; color: rgb(102, 102, 102); font-weight: 400; font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 20px; max-height: 100px; overflow: hidden;">
The IVDEP directive is an assertion to the compiler's optimizer about the order of memory references inside a DO loop. IVDEP:LOOP implies no loop-carried dependencies.</div>
</td>
</tr>
</tbody>
</table>
</div>
<br>
<div><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px"><br>
Their semantics are certainly cover at least part of Cray's ivdep. I did try a few examples that vectorize with Cray's ivdep using icc and wasn't sure if some of their decisions were due to or in spite of ivdep, so I need to dig into that more. We'll put together
a list of what we do with IVDEP and see if they are all covered under that wording.</span></div>
<div><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px"><br>
</span></div>
<div><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px">Cheers,</span></div>
<div><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px"><br>
</span></div>
<div><span style="color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif; font-size:16px">Scott</span></div>
</div>
<br>
<div class="x_gmail_quote">
<div dir="ltr" class="x_gmail_attr">On Fri, Aug 9, 2019 at 1:12 PM Finkel, Hal J. <<a href="mailto:hfinkel@anl.gov" id="LPlnk890851" class="OWAAutoLink" previewremoved="true">hfinkel@anl.gov</a>> wrote:<br>
</div>
<blockquote class="x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div id="x_gmail-m_-2474621917449286591divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif">
<p style="margin-top:0px; margin-bottom:0px">Thanks, Scott.</p>
<p style="margin-top:0px; margin-bottom:0px"><br>
</p>
<p style="margin-top:0px; margin-bottom:0px">Regarding this:</p>
<p style="margin-top:0px; margin-bottom:0px"><br>
</p>
<p style="margin-top:0px; margin-bottom:0px">> <span> It doesn't remove all dependencies, just dependencies that inhibit vectorization.</span></p>
<p style="margin-top:0px; margin-bottom:0px"><span><br>
</span></p>
<p style="margin-top:0px; margin-bottom:0px"><span>This matches what Cray's manual says, but I'm also not sure how to interpret this statement. Does that means that the dependencies ignored are dependent on the selected target? I'm a bit worried that the dependencies
interesting for vectorization might change over time or depend on the hardware being targeted. </span></p>
<p style="margin-top:0px; margin-bottom:0px"><span><br>
</span></p>
<p style="margin-top:0px; margin-bottom:0px"><span>Can you please take a look at the way that Intel's Fortran manual defines ivdep (<a href="https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-ivdep" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" id="LPlnk792274" target="_blank" previewremoved="true">https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-ivdep</a>)
and say whether those semantics would also make sense for Cray's implementation?</span></p>
<p style="margin-top:0px; margin-bottom:0px"><span><br>
</span></p>
<p style="margin-top:0px; margin-bottom:0px"><span>I believe our consensus view is that the semantics of these kinds of pragmas should be specified such that we could create a sanitizer which checks their dynamic semantic correctness independent of what the
optimizer is actually capable of exploiting.</span></p>
<p style="margin-top:0px; margin-bottom:0px"><span><br>
</span></p>
<p style="margin-top:0px; margin-bottom:0px"><span> -Hal</span></p>
<p style="margin-top:0px; margin-bottom:0px"><br>
</p>
<div id="x_gmail-m_-2474621917449286591Signature">
<div class="x_gmail-m_-2474621917449286591BodyFragment"><font size="2"><span style="font-size:10pt">
<div class="x_gmail-m_-2474621917449286591PlainText">Hal Finkel<br>
Lead, Compiler Technology and Programming Languages<br>
Leadership Computing Facility<br>
Argonne National Laboratory</div>
</span></font></div>
</div>
<br>
<br>
<div style="color:rgb(0,0,0)">
<hr style="display:inline-block; width:98%">
<div id="x_gmail-m_-2474621917449286591divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Scott Manley <<a href="mailto:rscottmanley@gmail.com" target="_blank" id="LPlnk964556" class="OWAAutoLink" previewremoved="true">rscottmanley@gmail.com</a>><br>
<b>Sent:</b> Friday, August 9, 2019 10:57 AM<br>
<b>To:</b> <a href="mailto:cameron.mcinally@nyu.edu" target="_blank" id="LPlnk961889" class="OWAAutoLink" previewremoved="true">
cameron.mcinally@nyu.edu</a> <<a href="mailto:cameron.mcinally@nyu.edu" target="_blank" id="LPlnk245822" class="OWAAutoLink" previewremoved="true">cameron.mcinally@nyu.edu</a>><br>
<b>Cc:</b> Finkel, Hal J. <<a href="mailto:hfinkel@anl.gov" target="_blank" id="LPlnk270958" class="OWAAutoLink" previewremoved="true">hfinkel@anl.gov</a>>;
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" id="LPlnk560895" class="OWAAutoLink" previewremoved="true">
llvm-dev@lists.llvm.org</a> <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" id="LPlnk136035" class="OWAAutoLink" previewremoved="true">llvm-dev@lists.llvm.org</a>>; MAMIDALA SAI PRAHARSH <<a href="mailto:es17btech11013@iith.ac.in" target="_blank" id="LPlnk669318" class="OWAAutoLink" previewremoved="true">es17btech11013@iith.ac.in</a>>;
YASHAS ANDALURI <<a href="mailto:es17btech11025@iith.ac.in" target="_blank" id="LPlnk525877" class="OWAAutoLink" previewremoved="true">es17btech11025@iith.ac.in</a>>; HAPPY Mahto <<a href="mailto:cs17btech11018@iith.ac.in" target="_blank" id="LPlnk441551" class="OWAAutoLink" previewremoved="true">cs17btech11018@iith.ac.in</a>>;
BHAVYA BAGLA <<a href="mailto:cs17btech11007@iith.ac.in" target="_blank" id="LPlnk710334" class="OWAAutoLink" previewremoved="true">cs17btech11007@iith.ac.in</a>><br>
<b>Subject:</b> Re: [llvm-dev] [LLVM] (RFC) Addition/Support of new Vectorization Pragmas in LLVM</font>
<div> </div>
</div>
<div>
<div dir="ltr">> There is a fundamental problem with the way that ivdep is defined by Intel's current documentation, at least for C/C++. As you note in your Google doc, it essentially says that the optimizer may ignore loop-carried dependencies except for those
dependencies it can definitely prove are present. These are not semantics that any other compiler can actually replicate, and is not equivalent to "vectorize(assume_safety)" (which asserts that no loop-carried dependencies are present). The good news is that,
in conversations I've had with Intel, an openness to making these semantics more concrete has been expressed. I think it would be very useful to have ivdep in Clang, but only after we nail down the semantics with Intel is some useful way.
<div><br>
<div>Agreed. I don't see a lot of value in having the compiler override a pragma that is supposed to override the compiler :) Cray's IVDEP really means what the documentation says: Ignore Vector DEPendencies. It doesn't remove all dependencies, just dependencies
that inhibit vectorization. It also does not force vectorization. If it's not possible or not profitable to vectorize, then it won't vectorize. </div>
<div><br>
</div>
<div>I will add that ivdep is well used by Cray and its users, so I'd like to see it well defined in Clang/llvm.</div>
<div><br>
</div>
</div>
</div>
<br>
<div class="x_gmail-m_-2474621917449286591x_gmail_quote">
<div dir="ltr" class="x_gmail-m_-2474621917449286591x_gmail_attr">On Thu, Aug 8, 2019 at 8:51 PM Cameron McInally via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" id="LPlnk904266" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" target="_blank" previewremoved="true">llvm-dev@lists.llvm.org</a>>
wrote:<br>
</div>
<blockquote class="x_gmail-m_-2474621917449286591x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">On Thu, Aug 8, 2019 at 7:52 PM Finkel, Hal J. via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" id="LPlnk251418" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" target="_blank" previewremoved="true">llvm-dev@lists.llvm.org</a>>
wrote:<br>
</div>
<div class="x_gmail-m_-2474621917449286591x_gmail_quote">
<blockquote class="x_gmail-m_-2474621917449286591x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div bgcolor="#FFFFFF">
<p><br>
</p>
<div class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247moz-cite-prefix">
On 8/8/19 2:03 PM, Hal Finkel wrote:<br>
</div>
<blockquote type="cite">
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif">
<p style="margin-top:0px; margin-bottom:0px">Hi,</p>
<p style="margin-top:0px; margin-bottom:0px"><br>
</p>
<p style="margin-top:0px; margin-bottom:0px">First, as a high-level note, you posted a link to a Google doc, and at the end of the Google doc, you have a list of questions that you'd like answered. In the future, please put the questions directly in the email.
For one thing, more people will read your email than will open your Google doc. Second, having the questions in the email should allow a better threading structure to the replies.</p>
<p style="margin-top:0px; margin-bottom:0px"><br>
</p>
<p style="margin-top:0px; margin-bottom:0px"><span id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247docs-internal-guid-383a5534-7fff-9861-7fcb-e593c7227357"></span></p>
<ul style="margin-top:0px; margin-bottom:0px">
<li dir="ltr" style="list-style-type:disc; font-size:14pt; font-family:Arial; background-color:transparent; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:14pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">Ivdep:
</span><span style="font-size:11pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">Is
</span><span style="font-size:11pt; font-style:italic; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">clang loop vectorize(assume_safety)
</span><span style="font-size:11pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">equivalent to</span><span style="font-size:11pt; font-style:italic; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">
ivdep</span><span style="font-size:11pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">? To what extent do the semantics of ivdep need to be modified for Clang to create an equally “</span><span style="font-size:11pt; font-style:italic; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">useful
pragma</span><span style="font-size:11pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">”? To what extent would it be helpful to have this pragma in Clang?</span></p>
</li></ul>
</div>
</blockquote>
<p><br>
</p>
<p><br>
</p>
<p>There is a fundamental problem with the way that ivdep is defined by Intel's current documentation, at least for C/C++. As you note in your Google doc, it essentially says that the optimizer may ignore loop-carried dependencies except for those dependencies
it can definitely prove are present. These are not semantics that any other compiler can actually replicate, and is not equivalent to "vectorize(assume_safety)" (which asserts that no loop-carried dependencies are present). The good news is that, in conversations
I've had with Intel, an openness to making these semantics more concrete has been expressed. I think it would be very useful to have ivdep in Clang, but only after we nail down the semantics with Intel is some useful way.</p>
</div>
</blockquote>
<div> </div>
<div>To be fair, IVDEP most likely originated at Cray. [Or maybe Control Data. The history is fuzzy that far back. I do know it predates ANSI C.]</div>
<div><br>
</div>
<div>There's a publicly available copy of the Cray C/C++ manual here: </div>
<div><br>
</div>
<div><a href="https://pubs.cray.com/content/S-2179/9.0/cray-classic-c-and-c++-reference-manual/vectorization-directives" id="LPlnk441628" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" target="_blank" previewremoved="true">https://pubs.cray.com/content/S-2179/9.0/cray-classic-c-and-c++-reference-manual/vectorization-directives</a></div>
<div><br>
</div>
<div>Scott Manley from Cray would be good resource to tap for clarification on the semantics.</div>
<div><br>
</div>
<blockquote class="x_gmail-m_-2474621917449286591x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div bgcolor="#FFFFFF">
<p></p>
<blockquote type="cite">
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif">
<ul style="margin-top:0px; margin-bottom:0px">
<li dir="ltr" style="list-style-type:disc; font-size:14pt; font-family:Arial; background-color:transparent; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">
</li><li dir="ltr" style="list-style-type:disc; font-size:14pt; font-family:Arial; background-color:transparent; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:14pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">Nontemporal:</span><span style="font-size:11pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">What
kind of analysis can we do in LLVM to find where to use nontemporal accesses? Any help would be greatly appreciated.</span></p>
</li></ul>
</div>
</blockquote>
<p><br>
</p>
<p><br>
</p>
<p>If you're asking about the pragma, then what analysis is necessary? In general, you're looking for accesses that won't benefit from caching (e.g., streaming data which is not accessed again).<br>
</p>
<p><br>
</p>
<blockquote type="cite">
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif">
<ul style="margin-top:0px; margin-bottom:0px">
<li dir="ltr" style="list-style-type:disc; font-size:14pt; font-family:Arial; background-color:transparent; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">
</li><li dir="ltr" style="list-style-type:disc; font-size:11pt; font-family:Arial; background-color:transparent; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:14pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">vecremainder/novecremainder:
</span><span style="font-size:11pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">Should the pragma simply call the vectorizer to attempt to vectorize the remainder loop, or should the vectorizer
use a different method?</span></p>
</li></ul>
</div>
</blockquote>
<p><br>
</p>
<p><br>
</p>
<p>Something like that. There were patches posted at some point to enable tail-loop vectorization. At this point, I imagine that you'd construct a VPlan with the vectorized tail.<br>
</p>
<p><br>
</p>
<blockquote type="cite">
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif">
<ul style="margin-top:0px; margin-bottom:0px">
<li dir="ltr" style="list-style-type:disc; font-size:11pt; font-family:Arial; background-color:transparent; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">
</li><li dir="ltr" style="list-style-type:disc; font-size:14pt; font-family:Arial; background-color:transparent; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:14pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">mask_readwrite/nomask_readwrite:
</span><span style="font-size:11pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">Is it a good idea to implement a pragma that will generate mask intrinsics in the IR? What other architectures (except
x86) has support for masked read/writes?</span></p>
</li></ul>
</div>
</blockquote>
<p><br>
</p>
<p>ARM SVE might also fall into this category.<br>
</p>
<p><br>
</p>
<blockquote type="cite">
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif">
<ul style="margin-top:0px; margin-bottom:0px">
<li dir="ltr" style="list-style-type:disc; font-size:14pt; font-family:Arial; background-color:transparent; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">
</li></ul>
<br>
<p dir="ltr" style="line-height:1.38; margin-left:36pt; margin-top:0pt; margin-bottom:0pt">
<span style="font-size:11pt; font-family:Arial; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">Reference:</span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__llvm.org_devmtg_2015-2D04_slides_MaskedIntrinsics.pdf&d=DwMF-g&c=slrrB7dE8n7gBJbeO0g-IQ&r=O_4M49EtSpZ_-BQYeigzGv0P4__noMcSu2RYEjS1vKs&m=ttZjwoTRuUQgVSd_8PZOPypfqqn-GiNqAl9WLpPxiAk&s=o2U9j6XECBRnTOcqSIRQT-dWi8owoO8q0xKOEW6f8z0&e=" id="LPlnk304809" class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247OWAAutoLink x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" target="_blank" style="text-decoration-line:none" previewremoved="true"><span style="font-size:11pt; font-family:Arial; color:rgb(17,85,204); font-variant-numeric:normal; font-variant-east-asian:normal; text-decoration-line:underline; vertical-align:baseline; white-space:pre-wrap">https://llvm.org/devmtg/2015-04/slides/MaskedIntrinsics.pdf</span></a></p>
<br>
<p dir="ltr" style="line-height:1.38; margin-left:36pt; margin-top:0pt; margin-bottom:0pt">
<span style="font-size:11pt; font-family:Arial; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">LLVM has mask intrinsics for targets with AVX, AVX2, AVX-512.</span></p>
<p dir="ltr" style="line-height:1.38; margin-left:36pt; margin-top:0pt; margin-bottom:0pt">
<span style="font-size:11pt; font-family:Arial; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">From Slides: ”Most of the targets do not support masked instructions, optimization of instructions with
masks is problematic, avoid introducing new masked instructions into LLVM IR”</span></p>
<ul style="margin-top:0px; margin-bottom:0px">
<li dir="ltr" style="list-style-type:disc; font-size:14pt; font-family:Arial; background-color:transparent; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:14pt; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">aligned/unaligned:
</span><span style="font-size:11pt; background-color:transparent; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">Is it worthwhile to have LLVM specific pragma rather depending on OpenMP?</span></p>
</li></ul>
</div>
</blockquote>
<p><br>
</p>
<p>My opinion is that, so long as we have our own vectorization pragma, it should be as fully-featured as people request it to be.</p>
<p><br>
</p>
<p> -Hal</p>
<p><br>
</p>
<p><br>
</p>
<blockquote type="cite">
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sans-serif">
<ul style="margin-top:0px; margin-bottom:0px">
<li dir="ltr" style="list-style-type:disc; font-size:14pt; font-family:Arial; background-color:transparent; font-variant-numeric:normal; font-variant-east-asian:normal; vertical-align:baseline; white-space:pre-wrap">
</li></ul>
<br>
<p style="margin-top:0px; margin-bottom:0px"> -Hal</p>
<p style="margin-top:0px; margin-bottom:0px"><br>
</p>
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247Signature">
<div class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247BodyFragment">
<font size="2"><span style="font-size:10pt">
<div class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247PlainText">
Hal Finkel<br>
Lead, Compiler Technology and Programming Languages<br>
Leadership Computing Facility<br>
Argonne National Laboratory</div>
</span></font></div>
</div>
<br>
<br>
<div style="color:rgb(0,0,0)">
<hr style="display:inline-block; width:98%">
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247divRplyFwdMsg" dir="ltr">
<font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> llvm-dev
<a class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247moz-txt-link-rfc2396E x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" href="mailto:llvm-dev-bounces@lists.llvm.org" id="LPlnk673314" target="_blank" previewremoved="true">
<llvm-dev-bounces@lists.llvm.org></a> on behalf of HAPPY Mahto via llvm-dev <a class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247moz-txt-link-rfc2396E x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" href="mailto:llvm-dev@lists.llvm.org" id="LPlnk315275" target="_blank" previewremoved="true">
<llvm-dev@lists.llvm.org></a><br>
<b>Sent:</b> Thursday, August 8, 2019 11:55 AM<br>
<b>To:</b> <a class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247moz-txt-link-abbreviated x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" href="mailto:llvm-dev@lists.llvm.org" id="LPlnk137752" target="_blank" previewremoved="true">
llvm-dev@lists.llvm.org</a> <a class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247moz-txt-link-rfc2396E x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" href="mailto:llvm-dev@lists.llvm.org" id="LPlnk257552" target="_blank" previewremoved="true">
<llvm-dev@lists.llvm.org></a><br>
<b>Cc:</b> BHAVYA BAGLA <a class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247moz-txt-link-rfc2396E x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" href="mailto:cs17btech11007@iith.ac.in" id="LPlnk465346" target="_blank" previewremoved="true">
<cs17btech11007@iith.ac.in></a>; MAMIDALA SAI PRAHARSH <a class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247moz-txt-link-rfc2396E x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" href="mailto:es17btech11013@iith.ac.in" id="LPlnk556277" target="_blank" previewremoved="true">
<es17btech11013@iith.ac.in></a>; HAPPY KUMAR <a class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247moz-txt-link-rfc2396E x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" href="mailto:cs17btech11018@iith.ac.in" id="LPlnk791233" target="_blank" previewremoved="true">
<cs17btech11018@iith.ac.in></a>; YASHAS ANDALURI <a class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247moz-txt-link-rfc2396E x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" href="mailto:es17btech11025@iith.ac.in" id="LPlnk471017" target="_blank" previewremoved="true">
<es17btech11025@iith.ac.in></a><br>
<b>Subject:</b> [llvm-dev] [LLVM] (RFC) Addition/Support of new Vectorization Pragmas in LLVM</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">Hello
all,</span></div>
<div><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap"></span></div>
<div>
<p dir="ltr" id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247x_gmail-docs-internal-guid-ab5c3399-7fff-ad6d-77a6-fda8a9ad8e90" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt">
<span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">We
are students from Indian Institute of Technology(IIT), Hyderabad, we would like to propose the addition of the following pragmas in LLVM that aide in (or possibly increase the scope of) vectorization in LLVM (in comparison with other compilers).</span></p>
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap"></span></p>
<ol id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247x_gmail-docs-internal-guid-1210961d-7fff-442e-856b-6600c80a36d8" style="margin-top:0px; margin-bottom:0px">
<li dir="ltr" style="list-style-type:decimal; font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">ivdep</span></p>
</li><li dir="ltr" style="list-style-type:decimal; font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">Nontemporal</span></p>
</li><li dir="ltr" style="list-style-type:decimal; font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">[no]vecremainder</span></p>
</li><li dir="ltr" style="list-style-type:decimal; font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">[no]mask_readwrite</span></p>
</li><li dir="ltr" style="list-style-type:decimal; font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">[un]aligned</span></p>
</li></ol>
<br>
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">Could
you please check the following Google document for the semantic description of these pragmas: </span></p>
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.google.com_document_d_1YjGnyzWFKJvqbpCsZicCUczzU8HlLHkmG9MssUw-2DR1A_edit-3Fusp-3Dsharing&d=DwMF-g&c=slrrB7dE8n7gBJbeO0g-IQ&r=O_4M49EtSpZ_-BQYeigzGv0P4__noMcSu2RYEjS1vKs&m=ttZjwoTRuUQgVSd_8PZOPypfqqn-GiNqAl9WLpPxiAk&s=JAlwNOiT5i7zvP9qxjAe_Rt8ZZv_ukBvSbfEZzH_CZI&e=" id="LPlnk117478" class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247OWAAutoLink x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" title="https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.google.com_document_d_1YjGnyzWFKJvqbpCsZicCUczzU8HlLHkmG9MssUw-2DR1A_edit-3Fusp-3Dsharing&d=DwMF-g&c=slrrB7dE8n7gBJbeO0g-IQ&r=O_4M49EtSpZ_-BQYeigzGv0P4__noMcSu2RYEjS1vKs&m=ttZjwoTRuUQgVSd_8PZOPypfqqn-GiNqAl9WLpPxiAk&s=JAlwNOiT5i7zvP9qxjAe_Rt8ZZv_ukBvSbfEZzH_CZI&e=
Ctrl+Click or tap to follow the link" target="_blank" previewremoved="true"><span style="font-size:11pt; font-family:Arial; color:rgb(17,85,204); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:underline; vertical-align:baseline; white-space:pre-wrap">https://docs.google.com/document/d/1YjGnyzWFKJvqbpCsZicCUczzU8HlLHkmG9MssUw-R1A/edit?usp=sharing</span></a></p>
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247LPBorder_GT_15652855648010.5487166625028437" style="margin-bottom:20px; overflow:auto; width:100%; text-indent:0px">
<table id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247LPContainer_15652855647870.6039906081120645" cellspacing="0" style="width:90%; background-color:rgb(255,255,255); overflow:auto; padding-top:20px; padding-bottom:20px; margin-top:20px; border-top:1px dotted rgb(200,200,200); border-bottom:1px dotted rgb(200,200,200)">
<tbody>
<tr valign="top" style="border-spacing:0px">
<td id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247ImageCell_15652855647910.6809876809871069" colspan="1" style="width:250px; display:table-cell; padding-right:20px">
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247LPImageContainer_15652855647910.4010814812050496" style="background-color:rgb(255,255,255); height:131px; margin:auto; display:table; width:251px">
<a id="LPlnk787625" href="https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.google.com_document_d_1YjGnyzWFKJvqbpCsZicCUczzU8HlLHkmG9MssUw-2DR1A_edit-3Fusp-3Dsharing&d=DwMF-g&c=slrrB7dE8n7gBJbeO0g-IQ&r=O_4M49EtSpZ_-BQYeigzGv0P4__noMcSu2RYEjS1vKs&m=ttZjwoTRuUQgVSd_8PZOPypfqqn-GiNqAl9WLpPxiAk&s=JAlwNOiT5i7zvP9qxjAe_Rt8ZZv_ukBvSbfEZzH_CZI&e=" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" target="_blank" style="display:table-cell; text-align:center" previewremoved="true"><img id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247LPThumbnailImageID_15652855647930.8542209161246299" height="131" width="250" style="display: inline-block; max-width: 250px; max-height: 250px; height: 131px; width: 250px; border-width: 0px; vertical-align: bottom; user-select: none;" src="https://lh4.googleusercontent.com/BFUxChQk941g1yFLPCtFJ6l0ADX-mYOx9H4rwnKhKhax-5qlknMQuqS5g1glN-44f0Ls3w=w1200-h630-p"></a></div>
</td>
<td id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247TextCell_15652855647940.6259626968425227" colspan="2" style="vertical-align:top; padding:0px; display:table-cell">
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247LPTitle_15652855647940.417183158898472">
<a id="LPlnk810908" href="https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.google.com_document_d_1YjGnyzWFKJvqbpCsZicCUczzU8HlLHkmG9MssUw-2DR1A_edit-3Fusp-3Dsharing&d=DwMF-g&c=slrrB7dE8n7gBJbeO0g-IQ&r=O_4M49EtSpZ_-BQYeigzGv0P4__noMcSu2RYEjS1vKs&m=ttZjwoTRuUQgVSd_8PZOPypfqqn-GiNqAl9WLpPxiAk&s=JAlwNOiT5i7zvP9qxjAe_Rt8ZZv_ukBvSbfEZzH_CZI&e=" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" target="_blank" style="text-decoration:none" previewremoved="true">Vectorization
Pragmas LLVM:RFC: V2</a></div>
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247LPMetadata_15652855647970.864892127964479">
<a href="http://docs.google.com" id="LPlnk555111" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" target="_blank" previewremoved="true">docs.google.com</a></div>
<div id="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247LPDescription_15652855647990.6759826847547004" style="display:block; color:rgb(102,102,102); font-weight:400; font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif; font-size:14px; line-height:20px; max-height:100px; overflow:hidden">
Vectorization Pragmas in LLVM: An RFC Yashas Andaluri, Happy Mahto, M Sai Praharsh, Bhavya Bagla IIT Hyderabad Aug 8th, 2019 [Thanks to feedback from Venugopal Raghavan, Shivarama Rao (AMD) and Michael Kruse & Hal Finkel (ANL).] Vectorization Pragmas ivdep
vector(nontemporal) vector([no]vecrema...</div>
</td>
</tr>
</tbody>
</table>
</div>
<br>
<br>
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">It
would be great if you could please review the above document and suggest us on how to proceed further (either about the semantics, or, about the code sections in LLVM).</span></p>
<br>
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">Thank
you</span></p>
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">Yashas,
Happy, Sai Praharsh, and Bhavya</span></p>
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap">B.Tech
3rd year, IITH.</span></p>
<p dir="ltr" style="line-height:1.38; margin-top:0pt; margin-bottom:0pt"><span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap"></span></p>
<span style="font-size:11pt; font-family:Arial; color:rgb(0,0,0); background-color:transparent; font-weight:400; font-style:normal; font-variant-ligatures:normal; font-variant-caps:normal; font-variant-east-asian:normal; text-decoration:none; vertical-align:baseline; white-space:pre-wrap"></span></div>
</div>
</div>
</div>
</div>
</blockquote>
<pre class="x_gmail-m_-2474621917449286591x_gmail-m_-7382431773272125579gmail-m_-748571500196814769gmail-m_1475094253979463247moz-signature" cols="72">--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
</div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" id="LPlnk529929" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" target="_blank" previewremoved="true">llvm-dev@lists.llvm.org</a><br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=DwIGaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=O_4M49EtSpZ_-BQYeigzGv0P4__noMcSu2RYEjS1vKs&m=ttZjwoTRuUQgVSd_8PZOPypfqqn-GiNqAl9WLpPxiAk&s=L-X4vbafbWIKsdnIqTTXsiRM2ku9-D5cLKCXc18dtUo&e=" rel="noreferrer" id="LPlnk496912" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" target="_blank" previewremoved="true">https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=DwIGaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=O_4M49EtSpZ_-BQYeigzGv0P4__noMcSu2RYEjS1vKs&m=ttZjwoTRuUQgVSd_8PZOPypfqqn-GiNqAl9WLpPxiAk&s=L-X4vbafbWIKsdnIqTTXsiRM2ku9-D5cLKCXc18dtUo&e=</a>
<br>
</blockquote>
</div>
</div>
</div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" id="LPlnk209441" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" target="_blank" previewremoved="true">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" id="LPlnk870216" class="x_gmail-m_-2474621917449286591OWAAutoLink OWAAutoLink" target="_blank" previewremoved="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</body>
</html>