llvm-project/llvm/lib/CodeGen/SelectionDAG
Sander de Smalen 6709b193ea [SelectionDAG] Make WidenVecRes_EXTRACT_SUBVECTOR work for scalable vectors.
The legalizer handles this by breaking up an EXTRACT_SUBVECTOR into
smaller parts, and combines those together, padding the result with
UNDEF vectors, e.g.

  nxv6i64 extract_subvector(nxv12i64, 6)
  <->
  nxv8i64 concat(
    nxv2i64 extract_subvector(nxv16i64, 6)
    nxv2i64 extract_subvector(nxv16i64, 8)
    nxv2i64 extract_subvector(nxv16i64, 10)
    nxv2i64 undef)

Reviewed By: frasercrmck, david-arm

Differential Revision: https://reviews.llvm.org/D110253
2021-09-29 11:33:45 +01:00
..
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
DAGCombiner.cpp [DAGCombiner][VP] Fold zero-length or false-masked VP ops 2021-09-27 11:30:09 +01:00
FastISel.cpp Reland [clang] Rework dontcall attributes 2021-09-28 15:31:30 -07:00
FunctionLoweringInfo.cpp Revert "[SelectionDAGBuilder] Compute and cache PreferredExtendType on demand." 2021-08-19 08:42:05 -07:00
InstrEmitter.cpp [DebugInfo][InstrRef] Don't use instr-ref for unoptimised functions 2021-08-25 15:10:36 +01:00
InstrEmitter.h [DebugInfo][InstrRef][3/4] Produce DBG_INSTR_REFs for all variable locations 2021-07-06 18:31:38 +01:00
LegalizeDAG.cpp [RISCV][VP] Add support for VP_REDUCE_* operations 2021-09-23 11:11:05 +01:00
LegalizeFloatTypes.cpp [ISel] Legalized arithmetic.fence.f128 for 32-bits target 2021-09-28 10:27:25 +08:00
LegalizeIntegerTypes.cpp [ISel] Legalized arithmetic.fence.f128 for 32-bits target 2021-09-28 10:27:25 +08:00
LegalizeTypes.cpp [llvm] Use pop_back_val (NFC) 2021-09-19 13:44:23 -07:00
LegalizeTypes.h [ISel] Legalized arithmetic.fence.f128 for 32-bits target 2021-09-28 10:27:25 +08:00
LegalizeTypesGeneric.cpp [ISel] Legalized arithmetic.fence.f128 for 32-bits target 2021-09-28 10:27:25 +08:00
LegalizeVectorOps.cpp [SelectionDAG] Use DAG.getNOT to further simplify some code. NFC 2021-09-09 10:53:39 -07:00
LegalizeVectorTypes.cpp [SelectionDAG] Make WidenVecRes_EXTRACT_SUBVECTOR work for scalable vectors. 2021-09-29 11:33:45 +01:00
ResourcePriorityQueue.cpp
SDNodeDbgValue.h [CodeGen] SDDbgValue::getSDNodes() - use const-ref to avoid unnecessary copies. NFCI. 2021-09-21 13:01:08 +01:00
ScheduleDAGFast.cpp [llvm] Use pop_back_val (NFC) 2021-09-19 13:44:23 -07:00
ScheduleDAGRRList.cpp Revert "[NFC][ScheduleDAG] Remove unused EntrySU SUnit" 2020-09-21 13:33:05 +02:00
ScheduleDAGSDNodes.cpp [CodeGen] ProcessSDDbgValues - use const-ref value in for-range loop. NFCI. 2021-09-23 12:23:46 +01:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp [SelectionDAG] Use range-based for loops (NFC) 2021-02-09 22:14:30 -08:00
SelectionDAG.cpp [DAGCombiner][VP] Fold zero-length or false-masked VP ops 2021-09-27 11:30:09 +01:00
SelectionDAGAddressAnalysis.cpp [SelectionDAG] Avoid aliasing analysis if the object size is unknown. 2020-11-25 06:13:37 +08:00
SelectionDAGBuilder.cpp [SelectionDAG] Fix incorrect condition for shift amount truncation 2021-09-28 17:52:30 -07:00
SelectionDAGBuilder.h [VP] implementation of sdag support for VP memory intrinsics 2021-08-31 17:01:50 +02:00
SelectionDAGDumper.cpp Revert @llvm.isnan intrinsic patchset. 2021-09-02 13:53:56 +03:00
SelectionDAGISel.cpp [SelectionDAG][NFC] Fix typo in VerifyDAGDiverence() function name 2021-09-13 20:48:04 +05:30
SelectionDAGPrinter.cpp [SelectionDAG] Drop unnecessary const from a return type (NFC) 2021-02-07 09:49:33 -08:00
SelectionDAGTargetInfo.cpp
StatepointLowering.cpp [Statepoint Lowering] Cleanup: remove unused option statepoint-always-spill-base. 2021-05-18 12:15:15 +07:00
StatepointLowering.h More precisely type code used for gc.relocate assertions [nfc] 2021-04-06 11:27:36 -07:00
TargetLowering.cpp [APInt] Add APIntOps::ScaleBitMask helper 2021-09-13 16:27:12 +01:00