<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 - LoopReroll incorrectly reorders memory instrs when there is overlap"
   href="https://bugs.llvm.org/show_bug.cgi?id=47658">47658</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>LoopReroll incorrectly reorders memory instrs when there is overlap
          </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>All
          </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>Scalar Optimizations
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>kevindevos9542@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org, nunoplopes@sapo.pt
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Test: Transforms/LoopReroll/basic.ll
Function: pointer_bitcast_baseinst
Reason: Memory mismatch

Example: <a href="https://godbolt.org/z/5c8YK1">https://godbolt.org/z/5c8YK1</a>
Ordering of loads and stores with memory offsets:

source -  load 876, load  892, store 892, store 900, ... 
target -  load 876, store 892, load  892, store 900, ...

Since there is overlap between the memory positions of the second load and
first store in source then the swapped ordering of these instructions in target
is incorrect. 
This optimization should not be performed in case of such a memory overlap.

A detailed and complete Alive report with single iteration loop unroll on this
test can be seen here: <a href="https://pastebin.com/pQsf61wb">https://pastebin.com/pQsf61wb</a></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>