<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 - vector x lane version of mlal not generating if shuffle is not in the same basic block as mull + add"
   href="https://bugs.llvm.org/show_bug.cgi?id=52255">52255</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>vector x lane version of mlal not generating if shuffle is not in the same basic block as mull + add
          </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>enhancement
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>Backend: AArch64
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>dsharlet@google.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>arnaud.degrandmaison@arm.com, llvm-bugs@lists.llvm.org, smithp352@googlemail.com, Ties.Stuij@arm.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=25381" name="attach_25381" title="mlal lane not generating">attachment 25381</a> <a href="attachment.cgi?id=25381&action=edit" title="mlal lane not generating">[details]</a></span>
mlal lane not generating

This compiler explorer link shows the issue: <a href="https://godbolt.org/z/Ye9KfofbT">https://godbolt.org/z/Ye9KfofbT</a>

First test is copied from the LLVM tests, which works.

The second test just adds a branch between the shuffle and the mull. -O0 is
necessary to avoid the branch getting optimized away.

In practice, this is almost impossible to avoid in some cases because the
shuffles get lifted out of loops. The ultimate problem this causes is ~4x as
many registers as needed required in an inner loop.

Also attached the ll corresponding to the above link.</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>