llvm-project/llvm/lib/CodeGen/SelectionDAG
Philip Reames b9c4733079 [DAG] Move one-use add of splat to base of scatter/gather
This extends the uniform base transform used with scatter/gather to support one-use vector adds-of-splats with a non-zero base. This has the effect of essentially reassociating an add from vector to scalar domain.

The motivation is to improve the lowering of scatter/gather operations fed by complex geps.

Differential Revision: https://reviews.llvm.org/D134472
2022-09-22 18:45:12 -07:00
..
CMakeLists.txt
DAGCombiner.cpp [DAG] Move one-use add of splat to base of scatter/gather 2022-09-22 18:45:12 -07:00
FastISel.cpp [FastISel] Propagate PCSections metadata to MachineInstr 2022-09-07 11:36:01 +02:00
FunctionLoweringInfo.cpp Untangle the mess which is MachineBasicBlock::hasAddressTaken(). 2022-08-16 16:15:44 -07:00
InstrEmitter.cpp KCFI sanitizer 2022-08-24 22:41:38 +00:00
InstrEmitter.h [DebugInfo][InstrRef] Avoid a crash from mixed variable location modes 2022-04-06 11:55:38 +01:00
LegalizeDAG.cpp [SDAG] Add `getCALLSEQ_END` overload taking `uint64_t`s 2022-09-15 14:02:12 -04:00
LegalizeFloatTypes.cpp [SelectionDAG] Rewrite bfloat16 softening to use the "half promotion" path 2022-09-06 11:54:34 +02:00
LegalizeIntegerTypes.cpp [LegalizeTypes][NVPTX] Remove extra compare from fallback code for ISD::ADD in ExpandIntRes_ADDSUB. 2022-09-13 09:07:56 -07:00
LegalizeTypes.cpp [LegalizeTypes] Fix bug in expensive checks verification 2022-05-26 13:13:32 -07:00
LegalizeTypes.h [LegalizeTypes] Support widen result for VECTOR_REVERSE. 2022-08-30 10:01:26 +08:00
LegalizeTypesGeneric.cpp [LegalizeTypes][NFC] Use getConstantOperandVal instead of cast constant getvalue 2022-08-12 14:35:10 +08:00
LegalizeVectorOps.cpp [VP][VE] Default VP_SREM/UREM to Expand and add generic expansion using VP_SDIV/UDIV+VP_MUL+VP_SUB. 2022-09-16 13:19:02 -07:00
LegalizeVectorTypes.cpp [llvm] Use std::size instead of llvm::array_lengthof 2022-09-08 09:01:53 -06:00
ResourcePriorityQueue.cpp Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 00:31:44 -07:00
SDNodeDbgValue.h Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
ScheduleDAGFast.cpp [CodeGen] Qualify auto variables in for loops (NFC) 2022-07-17 01:33:28 -07:00
ScheduleDAGRRList.cpp [NFC][ScheduleDAG] Use a reference to iterate over NodeSuccs/ChainSuccs 2022-09-12 15:54:48 +03:00
ScheduleDAGSDNodes.cpp [AMDGPU] Always select s_cselect_b32 for uniform 'select' SDNode 2022-09-15 22:03:56 +02:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
SelectionDAG.cpp [SelectionDAG] Propagate PCSections through SDNodes 2022-09-07 11:22:50 +02:00
SelectionDAGAddressAnalysis.cpp [llvm] Don't use Optional::hasValue (NFC) 2022-06-20 10:38:12 -07:00
SelectionDAGBuilder.cpp [RISCV] Disallow scale for scatter/gather 2022-09-22 15:31:26 -07:00
SelectionDAGBuilder.h [SDAG] Split handling of VPLoad/VPGather and VPStore/VPScatter [nfc] 2022-09-21 09:06:02 -07:00
SelectionDAGDumper.cpp [SDAG] Print divergence in SDNode::dump 2022-09-16 11:43:34 -07:00
SelectionDAGISel.cpp SelectionDAG: Add AssumptionCache analysis dependency 2022-09-19 19:10:51 -04:00
SelectionDAGPrinter.cpp Revert "[CodeGen] Place SDNode debug ID declaration under appropriate #if" 2022-04-06 20:32:53 +03:00
SelectionDAGTargetInfo.cpp
StatepointLowering.cpp Remove redundant initialization of Optional (NFC) 2022-08-20 21:18:28 -07:00
StatepointLowering.h
TargetLowering.cpp [DAG] SimplifyDemandedVectorElts - add MULHS/MULHU handling to existing MUL/AND handling 2022-09-19 12:44:43 +01:00