<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Simplify repeated bounds checks to a min/max reduction style pattern"
   href="https://bugs.llvm.org/show_bug.cgi?id=39455">39455</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Simplify repeated bounds checks to a min/max reduction style pattern
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Windows NT
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Common Code Generator Code
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>llvm-dev@redking.me.uk
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org, spatel+llvm@rotateright.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Checking multiple variables against the same value might be more efficiently
performed as just checking the maximum of the variables:

#include <algorithm>
bool foo(int f, int g) { return f < 123 && g < 123; }
bool bar(int f, int g) { return std::max(f, g) < 123; }

The or case might be similarly handled:

#include <algorithm>
bool foo(int f, int g) { return f < 123 || g < 123; }
bool bar(int f, int g) { return std::min(f, g) < 123; }

The higher the number of variables the higher the likelihood that its
performant (a full vector reduction pattern might even be worthwhile).

Float types might benefit similarly (or more as fmin/fmax instructions are more
common).</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>