<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:max.kazantsev@azul.com" title="Max Kazantsev <max.kazantsev@azul.com>"> <span class="fn">Max Kazantsev</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - [SCEV] computeBackedgeTakenCount() returns incorrect BackedgeTakenInfo"
   href="https://bugs.llvm.org/show_bug.cgi?id=48225">bug 48225</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>FIXED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>RESOLVED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - [SCEV] computeBackedgeTakenCount() returns incorrect BackedgeTakenInfo"
   href="https://bugs.llvm.org/show_bug.cgi?id=48225#c6">Comment # 6</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - [SCEV] computeBackedgeTakenCount() returns incorrect BackedgeTakenInfo"
   href="https://bugs.llvm.org/show_bug.cgi?id=48225">bug 48225</a>
              from <span class="vcard"><a class="email" href="mailto:max.kazantsev@azul.com" title="Max Kazantsev <max.kazantsev@azul.com>"> <span class="fn">Max Kazantsev</span></a>
</span></b>
        <pre>Fix merged.

commit 48d7cc6ae23b0e5b1922457462d0f6e4582a1ae7
Author: Max Kazantsev <<a href="mailto:mkazantsev@azul.com">mkazantsev@azul.com</a>>
Date:   Mon Nov 23 16:45:20 2020 +0700

    [SCEV] Fix incorrect treatment of max taken count. PR48225

    SCEV makes a logical mistake when handling EitherMayExit in
    case when both conditions must be met to exit the loop. The
    mistake looks like follows: "if condition `A` fails within at most `X`
first
    iterations, and `B` fails within at most `Y` first iterations, then `A & B`
    fails at most within `min (X, Y)` first iterations". This is wrong, because
    both of them must fail at the same time.

    Simple example illustrating this is following: we have an IV with step 1,
    condition `A` = "IV is even", condition `B` = "IV is odd". Both `A` and `B`
    will fail within first two iterations. But it doesn't mean that both of
them
    will fail within first two first iterations at the same time, which would
mean
    that IV is neither even nor odd at the same time within first 2 iterations.

    We can only do so for known exact BE counts, but not for max.

    Differential Revision: <a href="https://reviews.llvm.org/D91942">https://reviews.llvm.org/D91942</a>
    Reviewed By: nikic</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>