<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Should be fixed in 58ccbd0<br>
    </p>
    <div class="moz-cite-prefix">On 4/5/21 8:56 PM, Craig Topper wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAF7ks-O8K8GHhOj5DynxNUFShV30dAc9cNY9hpxQPBrE4dDTRQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">I think the header comments for
        getInvertibleOperand need to be updated to match the renamed
        arguments?
        <div><br clear="all">
          <div>
            <div dir="ltr" class="gmail_signature"
              data-smartmail="gmail_signature">~Craig</div>
          </div>
          <br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Mon, Apr 5, 2021 at 6:22 PM
          Philip Reames via llvm-commits <<a
            href="mailto:llvm-commits@lists.llvm.org"
            moz-do-not-send="true">llvm-commits@lists.llvm.org</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
          Author: Philip Reames<br>
          Date: 2021-04-05T18:22:17-07:00<br>
          New Revision: dc8d864e3a91938e11e8aea38bb43c9fdef361bc<br>
          <br>
          URL: <a
href="https://github.com/llvm/llvm-project/commit/dc8d864e3a91938e11e8aea38bb43c9fdef361bc"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://github.com/llvm/llvm-project/commit/dc8d864e3a91938e11e8aea38bb43c9fdef361bc</a><br>
          DIFF: <a
href="https://github.com/llvm/llvm-project/commit/dc8d864e3a91938e11e8aea38bb43c9fdef361bc.diff"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://github.com/llvm/llvm-project/commit/dc8d864e3a91938e11e8aea38bb43c9fdef361bc.diff</a><br>
          <br>
          LOG: Address minor post commit feedback on 0e59dd<br>
          <br>
          Added: <br>
          <br>
          <br>
          Modified: <br>
              llvm/lib/Analysis/ValueTracking.cpp<br>
          <br>
          Removed: <br>
          <br>
          <br>
          <br>
################################################################################<br>
          diff  --git a/llvm/lib/Analysis/ValueTracking.cpp
          b/llvm/lib/Analysis/ValueTracking.cpp<br>
          index e590f13e3d5b..93c628b66575 100644<br>
          --- a/llvm/lib/Analysis/ValueTracking.cpp<br>
          +++ b/llvm/lib/Analysis/ValueTracking.cpp<br>
          @@ -2543,54 +2543,54 @@ bool isKnownNonZero(const Value* V,
          unsigned Depth, const Query& Q) {<br>
           /// to exactly one output value.  This is equivalent to
          saying that O1<br>
           /// and O2 are equal exactly when the specified pair of
          operands are equal,<br>
           /// (except that O1 and O2 may be poison more often.)<br>
          -static Optional<unsigned> getInvertibleOperand(const
          Operator *O1,<br>
          -                                               const Operator
          *O2) {<br>
          -  if (O1->getOpcode() != O2->getOpcode())<br>
          +static Optional<unsigned> getInvertibleOperand(const
          Operator *Op1,<br>
          +                                               const Operator
          *Op2) {<br>
          +  if (Op1->getOpcode() != Op2->getOpcode())<br>
               return None;<br>
          <br>
          -  switch (O1->getOpcode()) {<br>
          +  switch (Op1->getOpcode()) {<br>
             default:<br>
               break;<br>
             case Instruction::Add:<br>
             case Instruction::Sub:<br>
          -    if (O1->getOperand(0) == O2->getOperand(0))<br>
          +    if (Op1->getOperand(0) == Op2->getOperand(0))<br>
                 return 1;<br>
          -    if (O1->getOperand(1) == O2->getOperand(1))<br>
          +    if (Op1->getOperand(1) == Op2->getOperand(1))<br>
                 return 0;<br>
               break;<br>
             case Instruction::Mul: {<br>
               // invertible if A * B == (A * B) mod 2^N where A, and B
          are integers<br>
               // and N is the bitwdith.  The nsw case is non-obvious,
          but proven by<br>
               // alive2: <a href="https://alive2.llvm.org/ce/z/Z6D5qK"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://alive2.llvm.org/ce/z/Z6D5qK</a><br>
          -    auto *OBO1 = cast<OverflowingBinaryOperator>(O1);<br>
          -    auto *OBO2 = cast<OverflowingBinaryOperator>(O2);<br>
          +    auto *OBO1 = cast<OverflowingBinaryOperator>(Op1);<br>
          +    auto *OBO2 = cast<OverflowingBinaryOperator>(Op2);<br>
               if ((!OBO1->hasNoUnsignedWrap() ||
          !OBO2->hasNoUnsignedWrap()) &&<br>
                   (!OBO1->hasNoSignedWrap() ||
          !OBO2->hasNoSignedWrap()))<br>
                 break;<br>
          <br>
               // Assume operand order has been canonicalized<br>
          -    if (O1->getOperand(1) == O2->getOperand(1)
          &&<br>
          -        isa<ConstantInt>(O1->getOperand(1))
          &&<br>
          -       
          !cast<ConstantInt>(O1->getOperand(1))->isZero())<br>
          +    if (Op1->getOperand(1) == Op2->getOperand(1)
          &&<br>
          +        isa<ConstantInt>(Op1->getOperand(1))
          &&<br>
          +       
          !cast<ConstantInt>(Op1->getOperand(1))->isZero())<br>
                 return 0;<br>
               break;<br>
             }<br>
             case Instruction::Shl: {<br>
               // Same as multiplies, with the <br>
          diff erence that we don't need to check<br>
               // for a non-zero multiply. Shifts always multiply by
          non-zero.<br>
          -    auto *OBO1 = cast<OverflowingBinaryOperator>(O1);<br>
          -    auto *OBO2 = cast<OverflowingBinaryOperator>(O2);<br>
          +    auto *OBO1 = cast<OverflowingBinaryOperator>(Op1);<br>
          +    auto *OBO2 = cast<OverflowingBinaryOperator>(Op2);<br>
               if ((!OBO1->hasNoUnsignedWrap() ||
          !OBO2->hasNoUnsignedWrap()) &&<br>
                   (!OBO1->hasNoSignedWrap() ||
          !OBO2->hasNoSignedWrap()))<br>
                 break;<br>
          <br>
          -    if (O1->getOperand(1) == O2->getOperand(1))<br>
          +    if (Op1->getOperand(1) == Op2->getOperand(1))<br>
                 return 0;<br>
               break;<br>
             }<br>
             case Instruction::SExt:<br>
             case Instruction::ZExt:<br>
          -    if (O1->getOperand(0)->getType() ==
          O2->getOperand(0)->getType())<br>
          +    if (Op1->getOperand(0)->getType() ==
          Op2->getOperand(0)->getType())<br>
                 return 0;<br>
               break;<br>
             }<br>
          <br>
          <br>
          <br>
          _______________________________________________<br>
          llvm-commits mailing list<br>
          <a href="mailto:llvm-commits@lists.llvm.org" target="_blank"
            moz-do-not-send="true">llvm-commits@lists.llvm.org</a><br>
          <a
            href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>