[all-commits] [llvm/llvm-project] 6709b1: [SelectionDAG] Make WidenVecRes_EXTRACT_SUBVECTOR ...

sdesmalen-arm via All-commits all-commits at lists.llvm.org
Wed Sep 29 03:56:51 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6709b193ea254edf3670a60e1efb3223f199c662
      https://github.com/llvm/llvm-project/commit/6709b193ea254edf3670a60e1efb3223f199c662
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2021-09-29 (Wed, 29 Sep 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll
    M llvm/test/CodeGen/RISCV/rvv/extract-subvector.ll

  Log Message:
  -----------
  [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




More information about the All-commits mailing list