[llvm-bugs] [Bug 37989] New: [DAGCombine] Call TargetLowering::SimplifyDemandedVectorElts from supported ops

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Jun 29 09:12:16 PDT 2018


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

            Bug ID: 37989
           Summary: [DAGCombine] Call
                    TargetLowering::SimplifyDemandedVectorElts from
                    supported ops
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Common Code Generator Code
          Assignee: unassignedbugs at nondot.org
          Reporter: llvm-dev at redking.me.uk
                CC: andrea.dibiagio at gmail.com, craig.topper at gmail.com,
                    efriedma at codeaurora.org, filcab at gmail.com,
                    lebedev.ri at gmail.com, llvm-bugs at lists.llvm.org,
                    spatel+llvm at rotateright.com

As mentioned on [Bug #37890], we currently only use SimplifyDemandedVectorElts
in the DAGCombiner DAGCombiner::visitVECTOR_SHUFFLE.

We should add support/tests for calling from DAGCombiner::vist* for all the
supported vector ops:

ISD::CONCAT_VECTORS
ISD::INSERT_SUBVECTOR (and add ISD::EXTRACT_SUBVECTOR support)
ISD::INSERT_VECTOR_ELT (and call from DAGCombiner::visitEXTRACT_VECTOR_ELT)
ISD::VSELECT

Other possible useful operations to add include the various ISD::*EXTEND ops
and we should support passthrough handling of the same AND/OR/XOR/ADD/SUB/MUL
(+SHL/SRL/SRA?) operations as InstCombiner::SimplifyDemandedVectorElts.

Once those are in place we can start adding any necessary target opcodes
through SimplifyDemandedVectorEltsForTargetNode etc.

-- 
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/20180629/f49dd7b0/attachment.html>


More information about the llvm-bugs mailing list