<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Aug 13, 2017 at 1:18 PM, Craig Topper <span dir="ltr"><<a href="mailto:craig.topper@gmail.com" target="_blank">craig.topper@gmail.com</a>></span> wrote:<br><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">Yes that was supposed to be Index == 0. I'll fix. Why doesn't clang have that warning?</div></blockquote><div><br></div><div>No idea. Clang seems to be falling behind on warnings these days.</div><div><br></div><div>I've filed <a href="https://bugs.llvm.org/show_bug.cgi?id=34180">https://bugs.llvm.org/show_bug.cgi?id=34180</a></div><div><br></div><div>Though we seem to have a number of open -Wparentheses bugs, so I'm not entirely confident that it will be fixed in a timely manner:</div><div><a href="https://bugs.llvm.org/show_bug.cgi?id=18971">https://bugs.llvm.org/show_bug.cgi?id=18971</a><br></div><div><a href="https://bugs.llvm.org/show_bug.cgi?id=25769">https://bugs.llvm.org/show_bug.cgi?id=25769</a><br></div><div><a href="https://bugs.llvm.org/show_bug.cgi?id=22949">https://bugs.llvm.org/show_bug.cgi?id=22949</a><br></div><div><br></div><div>(I've gone ahead and marked PR34180 and PR18971 as `beginner` though so maybe they can help some newbie get up to speed if nothing else)</div><div><br></div><div>-- Sean Silva</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 class="gmail_extra"><span class="gmail-HOEnZb"><font color="#888888"><br clear="all"><div><div class="gmail-m_327310997519916978gmail_signature">~Craig</div></div></font></span><div><div class="gmail-h5">
<br><div class="gmail_quote">On Sun, Aug 13, 2017 at 1:11 PM, Sean Silva via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><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"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Aug 13, 2017 at 10:40 AM, Craig Topper via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: ctopper<br>
Date: Sun Aug 13 10:40:02 2017<br>
New Revision: 310794<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=310794&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=310794&view=rev</a><br>
Log:<br>
[AVX512] Correct isExtractSubvectorCheap so that it will return the correct answers for extracting 128-bits from a 512-bit vector and for mask registers.<br>
<br>
Previously it would not return true for extracting either of the upper quarters of a 512-bit registers.<br>
<br>
For mask registers we support extracting anything from index 0. And otherwise we only support extracting the upper half of a register.<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D36638" rel="noreferrer" target="_blank">https://reviews.llvm.org/D3663<wbr>8</a><br>
<br>
Modified:<br>
    llvm/trunk/lib/Target/X86/X86I<wbr>SelLowering.cpp<br>
<br>
Modified: llvm/trunk/lib/Target/X86/X86I<wbr>SelLowering.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=310794&r1=310793&r2=310794&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/lib/Target/X8<wbr>6/X86ISelLowering.cpp?rev=3107<wbr>94&r1=310793&r2=310794&view=di<wbr>ff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/Target/X86/X86I<wbr>SelLowering.cpp (original)<br>
+++ llvm/trunk/lib/Target/X86/X86I<wbr>SelLowering.cpp Sun Aug 13 10:40:02 2017<br>
@@ -4579,7 +4579,13 @@ bool X86TargetLowering::isExtractSu<wbr>bvect<br>
   if (!isOperationLegalOrCustom(ISD<wbr>::EXTRACT_SUBVECTOR, ResVT))<br>
     return false;<br>
<br>
-  return (Index == 0 || Index == ResVT.getVectorNumElements());<br>
+  // Mask vectors support all subregister combinations and operations that<br>
+  // extract half of vector.<br>
+  if (ResVT.getVectorElementType() == MVT::i1)<br>
+    return Index = 0 || ((ResVT.getSizeInBits() == SrcVT.getSizeInBits() * 2) &&<br>
+                         (Index == ResVT.getVectorNumElements()))<wbr>;<br></blockquote><div><br></div><div><br></div><div>Is this supposed to be `Index == 0`?</div><div><br></div><div>I'm getting this warning (`gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) `):</div><div><br></div><div><div>/home/sean/pg/llvm/llvm/lib/Ta<wbr>rget/X86/X86ISelLowering.cpp: In member function ‘virtual bool llvm::X86TargetLowering::isExt<wbr>ractSubvectorCheap(llvm::EVT, llvm::EVT, unsigned int) const’:</div><div>/home/sean/pg/llvm/llvm/lib/Ta<wbr>rget/X86/X86ISelLowering.cpp:<wbr>4586:65: warning: suggest parentheses around assignment used as truth value [-Wparentheses]</div><div>                          (Index == ResVT.getVectorNumElements()))<wbr>;</div><div>                                                                 ^</div></div><div><br></div><div><br></div><div>-- Sean Silva</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">
+<br>
+  return (Index % ResVT.getVectorNumElements()) == 0;<br>
 }<br>
<br>
 bool X86TargetLowering::isCheapToSp<wbr>eculateCttz() const {<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>
<br>______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div></div></div>
</blockquote></div><br></div></div>