-
- Downloads
[RISCV][VP] Add basic RVV codegen for vp.fcmp
This patch adds the necessary infrastructure to lower vp.fcmp via ISD::VP_SETCC to RVV instructions. Most notably this patch adds cond-code legalization for VP_SETCC, reusing the existing TargetLowering::LegalizeSetCCCondCode by passing in additional SDValue parameters for the Mask and EVL. This method then uses VP operations to legalize the condcode. There is still a general lack of canonicalization on VP_SETCC as opposed to SETCC which results in worse code than is theoretically possible. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D123051
Showing
- llvm/include/llvm/CodeGen/SelectionDAG.h 5 additions, 0 deletionsllvm/include/llvm/CodeGen/SelectionDAG.h
- llvm/include/llvm/CodeGen/TargetLowering.h 19 additions, 15 deletionsllvm/include/llvm/CodeGen/TargetLowering.h
- llvm/include/llvm/IR/VPIntrinsics.def 3 additions, 3 deletionsllvm/include/llvm/IR/VPIntrinsics.def
- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp 27 additions, 10 deletionsllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
- llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp 31 additions, 7 deletionsllvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp 6 additions, 0 deletionsllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
- llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp 26 additions, 6 deletionsllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
- llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td 27 additions, 0 deletionsllvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
- llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-fp-vp.ll 1115 additions, 0 deletionsllvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-fp-vp.ll
- llvm/test/CodeGen/RISCV/rvv/setcc-fp-vp.ll 2225 additions, 0 deletionsllvm/test/CodeGen/RISCV/rvv/setcc-fp-vp.ll
Loading
Please register or sign in to comment