[all-commits] [llvm/llvm-project] 6be5e8: [RISCV][VP] Add basic RVV codegen for vp.icmp
Fraser Cormack via All-commits
all-commits at lists.llvm.org
Wed Apr 6 09:03:21 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6be5e875beed1a630a7b414f9658b233763af59e
https://github.com/llvm/llvm-project/commit/6be5e875beed1a630a7b414f9658b233763af59e
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2022-04-06 (Wed, 06 Apr 2022)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/IR/VPIntrinsics.def
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-int-vp.ll
A llvm/test/CodeGen/RISCV/rvv/setcc-int-vp.ll
Log Message:
-----------
[RISCV][VP] Add basic RVV codegen for vp.icmp
This patch adds the minimum required to successfully lower vp.icmp via
the new ISD::VP_SETCC node to RVV instructions.
Regular ISD::SETCC goes through a lot of canonicalization which targets
may rely on which has not hereto been ported to VP_SETCC. It also
supports expansion of individual condition codes and a non-boolean
return type. Support for all of that will follow in later patches.
In the case of RVV this largely isn't a problem as the vector integer
comparison instructions are plentiful enough that it can lower all
VP_SETCC nodes on legal integer vectors except for boolean vectors,
which regular SETCC folds away immediately into logical operations.
Floating-point VP_SETCC operations aren't as well supported in RVV and
the backend relies on condition code expansion, so support for those
operations will come in later patches.
Portions of this code were taken from the VP reference patches.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D122743
More information about the All-commits
mailing list