<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </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 --- - [LoopIdiomRecognition] Add support for run-time checks for memory disambiguation."
   href="https://llvm.org/bugs/show_bug.cgi?id=31391">31391</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[LoopIdiomRecognition] Add support for run-time checks for memory disambiguation.
          </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>normal
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>Loop Optimizer
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>mcrosier@codeaurora.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Currently, the loop idiom recognition pass is unable convert the below test
case into a memcpy because runtime checks are required to ensure 'a' and 'b'
don't alias:

void test(unsigned N, double *src, double *dst) {
  for (int i = 0; i < N; ++i)
    dst[i] = src[i];
}

As an aside, once D27677 (<a href="https://reviews.llvm.org/D27677">https://reviews.llvm.org/D27677</a>) lands the LV will
vectorize this loop when targeting AArch64 by inserting the necessary runtime
checks.  Regardless, we should consider having this feature in the LIR pass
because it will catch cases in loop that the LV can't vectorize.</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>