[llvm-bugs] [Bug 38243] New: [X86][SSE] Add modulo rotate support to LowerRotate

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Jul 20 02:22:15 PDT 2018


            Bug ID: 38243
           Summary: [X86][SSE] Add modulo rotate support to LowerRotate
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: X86
          Assignee: unassignedbugs at nondot.org
          Reporter: llvm-dev at redking.me.uk
                CC: craig.topper at gmail.com, lebedev.ri at gmail.com,
                    llvm-bugs at lists.llvm.org, spatel+llvm at rotateright.com
            Blocks: 38152

With the introduction of the funnelshift intrinsics, the intention is to
support lowering to rotation ISD ops. For this to work, LowerRotate must
correctly handle the fact that the rotation amount will need to be treated as a
modulo amount.

The AVX512 and XOP rotation instructions already exhibit modulo behaviour, and
the v16i8/v32i8 non-AVX512BWI case should be modulo safe as well.

But the remaining vXi16/vXi32 cases need to fixed.

An initial attempt at adding a mask to the rotation amount caused issues with
IsSplatValue() which needs remedying as well.

I haven't checked other targets or the rotation legalization code to see if
that needs adjustment.

Referenced Bugs:

[Bug 38152] add intrinsics and backend support for rotate ops
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/20180720/0f981472/attachment.html>

More information about the llvm-bugs mailing list