[llvm-bugs] [Bug 52255] New: vector x lane version of mlal not generating if shuffle is not in the same basic block as mull + add

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Oct 21 10:11:10 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=52255

            Bug ID: 52255
           Summary: vector x lane version of mlal not generating if
                    shuffle is not in the same basic block as mull + add
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: AArch64
          Assignee: unassignedbugs at nondot.org
          Reporter: dsharlet at google.com
                CC: arnaud.degrandmaison at arm.com,
                    llvm-bugs at lists.llvm.org, smithp352 at googlemail.com,
                    Ties.Stuij at arm.com

Created attachment 25381
  --> https://bugs.llvm.org/attachment.cgi?id=25381&action=edit
mlal lane not generating

This compiler explorer link shows the issue: https://godbolt.org/z/Ye9KfofbT

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.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20211021/3b8b6643/attachment.html>


More information about the llvm-bugs mailing list