[all-commits] [llvm/llvm-project] f4dee8: [RISCV][VP] Custom lower VP_SCATTER and VP_GATHER

Fraser Cormack via All-commits all-commits at lists.llvm.org
Tue Sep 7 02:53:05 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f4dee8cb82d199f843b0ca7e9846470f3912f593
      https://github.com/llvm/llvm-project/commit/f4dee8cb82d199f843b0ca7e9846470f3912f593
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2021-09-07 (Tue, 07 Sep 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpgather.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpscatter.ll
    A llvm/test/CodeGen/RISCV/rvv/vpgather-sdnode.ll
    A llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll

  Log Message:
  -----------
  [RISCV][VP] Custom lower VP_SCATTER and VP_GATHER

This patch adds support for the `VP_SCATTER` and `VP_GATHER` nodes by
lowering them to RVV's `vsox`/`vlux` instructions, respectively. This
process is almost identical to the existing `MSCATTER`/`MGATHER` support.

One extra change was made to `SelectionDAGLegalize` so that
`VP_SCATTER`'s operation action is derived from its stored "value"
operand rather than its return type (which is always the chain).

Reviewed By: craig.topper, rogfer01

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




More information about the All-commits mailing list