[all-commits] [llvm/llvm-project] 84e85e: [SelectionDAG][VP] Provide expansion for VP_MERGE

Fraser Cormack via All-commits all-commits at lists.llvm.org
Thu Jan 27 01:11:18 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 84e85e025e02211d1f24ea423cd1be8945e70009
      https://github.com/llvm/llvm-project/commit/84e85e025e02211d1f24ea423cd1be8945e70009
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2022-01-27 (Thu, 27 Jan 2022)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpmerge.ll
    M llvm/test/CodeGen/RISCV/rvv/vpmerge-sdnode.ll

  Log Message:
  -----------
  [SelectionDAG][VP] Provide expansion for VP_MERGE

This patch adds support for expanding VP_MERGE through a sequence of
vector operations producing a full-length mask setting up the elements
past EVL/pivot to be false, combining this with the original mask, and
culminating in a full-length vector select.

This expansion should work for any data type, though the only use for
RVV is for boolean vectors, which themselves rely on an expansion for
the VSELECT.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D118058




More information about the All-commits mailing list