<div dir="ltr">Oops an extra testing change snuck in there. Reverted in r<span style="font-size:12.8px">306509.</span></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature">~Craig</div></div>
<br><div class="gmail_quote">On Tue, Jun 27, 2017 at 11:42 PM, 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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: ctopper<br>
Date: Tue Jun 27 23:42:48 2017<br>
New Revision: 306508<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=306508&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=306508&view=rev</a><br>
Log:<br>
[InstCombine] Add test case demonstrating that we don't handle icmp eq (trunc (lshr(X, cst1)), cst->icmp (and X, mask), cst when the shift type is larger than 64-bits. NFC<br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/IR/<wbr>PatternMatch.h<br>
    llvm/trunk/test/Transforms/<wbr>InstCombine/icmp.ll<br>
<br>
Modified: llvm/trunk/include/llvm/IR/<wbr>PatternMatch.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/PatternMatch.h?rev=306508&r1=306507&r2=306508&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/IR/PatternMatch.h?rev=<wbr>306508&r1=306507&r2=306508&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/include/llvm/IR/<wbr>PatternMatch.h (original)<br>
+++ llvm/trunk/include/llvm/IR/<wbr>PatternMatch.h Tue Jun 27 23:42:48 2017<br>
@@ -379,6 +379,7 @@ struct bind_const_intval_ty {<br>
   template <typename ITy> bool match(ITy *V) {<br>
     if (const auto *CV = dyn_cast<ConstantInt>(V))<br>
       if (CV->getBitWidth() <= 64) {<br>
+        return false;<br>
         VR = CV->getZExtValue();<br>
         return true;<br>
       }<br>
<br>
Modified: llvm/trunk/test/Transforms/<wbr>InstCombine/icmp.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/icmp.ll?rev=306508&r1=306507&r2=306508&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>Transforms/InstCombine/icmp.<wbr>ll?rev=306508&r1=306507&r2=<wbr>306508&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/Transforms/<wbr>InstCombine/icmp.ll (original)<br>
+++ llvm/trunk/test/Transforms/<wbr>InstCombine/icmp.ll Tue Jun 27 23:42:48 2017<br>
@@ -762,6 +762,27 @@ define i1 @test52(i32 %x1) {<br>
   ret i1 %A<br>
 }<br>
<br>
+; TODO we have a 64-bit or less restriction in the handling for this pattern. We should remove that and do the same thing we do above.<br>
+define i1 @test52b(i128 %x1) {<br>
+; CHECK-LABEL: @test52b(<br>
+; CHECK-NEXT:    [[CONV:%.*]] = and i128 [[X1:%.*]], 255<br>
+; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i128 [[CONV]], 127<br>
+; CHECK-NEXT:    [[TMP2:%.*]] = lshr i128 [[X1]], 16<br>
+; CHECK-NEXT:    [[TMP3:%.*]] = trunc i128 [[TMP2]] to i8<br>
+; CHECK-NEXT:    [[CMP15:%.*]] = icmp eq i8 [[TMP3]], 76<br>
+; CHECK-NEXT:    [[A:%.*]] = and i1 [[CMP]], [[CMP15]]<br>
+; CHECK-NEXT:    ret i1 [[A]]<br>
+;<br>
+  %conv = and i128 %x1, 255<br>
+  %cmp = icmp eq i128 %conv, 127<br>
+  %tmp2 = lshr i128 %x1, 16<br>
+  %tmp3 = trunc i128 %tmp2 to i8<br>
+  %cmp15 = icmp eq i8 %tmp3, 76<br>
+<br>
+  %A = and i1 %cmp, %cmp15<br>
+  ret i1 %A<br>
+}<br>
+<br>
 ; PR9838<br>
 define i1 @test53(i32 %a, i32 %b) {<br>
 ; CHECK-LABEL: @test53(<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">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>