1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/lib/Target/RISCV
Fraser Cormack 50b0b8da35 [RISCV] Add ISel support for RVV vector/scalar forms
This patch extends the SDNode ISel support for RVV from only the
vector/vector instructions to include the vector/scalar and
vector/immediate forms.

It uses splat_vector to carry the scalar in each case, except when
XLEN<SEW (RV32 SEW=64) when a custom node `SPLAT_VECTOR_I64` is used for
type-legalization and to encode the fact that the value is sign-extended
to SEW. When the scalar is a full 64-bit value we use a sequence to
materialize the constant into the vector register.

The non-intrinsic ISel patterns have also been split into their own
file.

Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com>
Co-Authored-by: Fraser Cormack <fraser@codeplay.com>

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D93312
2020-12-23 20:16:18 +00:00
..
AsmParser [MC] Split MCContext::createTempSymbol, default AlwaysAddSuffix to true, and add comments 2020-12-21 14:04:13 -08:00
Disassembler [RISCV] Support Zfh half-precision floating-point extension. 2020-12-03 09:16:33 +08:00
MCTargetDesc [RISCV] Move vtype decoding and printing from RISCVInstPrinter to RISCVBaseInfo. Share with the assembly parser's debug output 2020-12-14 10:50:26 -08:00
TargetInfo llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Utils [RISCV] Add intrinsics for vsetvli instruction 2020-12-18 12:10:09 -08:00
CMakeLists.txt [RISCV] Add a pass to remove duplicate VSETVLI instructions in a basic block. 2020-12-11 10:35:37 -08:00
RISCV.h [RISCV] Add a pass to remove duplicate VSETVLI instructions in a basic block. 2020-12-11 10:35:37 -08:00
RISCV.td [RISCV] V does not imply F. 2020-12-17 10:57:36 +08:00
RISCVAsmPrinter.cpp
RISCVCallingConv.td
RISCVCallLowering.cpp
RISCVCallLowering.h
RISCVCleanupVSETVLI.cpp [RISCV] Add a pass to remove duplicate VSETVLI instructions in a basic block. 2020-12-11 10:35:37 -08:00
RISCVExpandAtomicPseudoInsts.cpp
RISCVExpandPseudoInsts.cpp [RISCV] Initial infrastructure for code generation of the RISC-V V-extension 2020-12-04 11:39:30 -08:00
RISCVFrameLowering.cpp [RISCV] Support Zfh half-precision floating-point extension. 2020-12-03 09:16:33 +08:00
RISCVFrameLowering.h [SVE] Return StackOffset for TargetFrameLowering::getFrameIndexReference. 2020-11-05 11:02:18 +00:00
RISCVInstrFormats.td
RISCVInstrFormatsC.td
RISCVInstrFormatsV.td
RISCVInstrInfo.cpp [Target] Use llvm::erase_if (NFC) 2020-12-20 17:43:22 -08:00
RISCVInstrInfo.h [RISCV] Don't include CodeGen layer files in MC layer 2020-11-12 07:45:38 -08:00
RISCVInstrInfo.td [RISCV] Add (Proposed) Assembler Extend Pseudo-Instructions 2020-12-10 19:25:51 +00:00
RISCVInstrInfoA.td
RISCVInstrInfoB.td [RISCV] Add (Proposed) Assembler Extend Pseudo-Instructions 2020-12-10 19:25:51 +00:00
RISCVInstrInfoC.td [RISCV] Add support for printing pcrel immediates as absolute addresses in llvm-objdump 2020-12-04 10:34:12 -08:00
RISCVInstrInfoD.td [RISCV][LegalizeDAG] Expand SETO and SETUO comparisons. Teach LegalizeDAG to expand SETUO expansion when UNE isn't legal. 2020-12-10 09:15:52 -08:00
RISCVInstrInfoF.td [RISCV][LegalizeDAG] Expand SETO and SETUO comparisons. Teach LegalizeDAG to expand SETUO expansion when UNE isn't legal. 2020-12-10 09:15:52 -08:00
RISCVInstrInfoM.td [RISCV] Don't remove (and X, 0xffffffff) from inputs when matching RISCVISD::DIVUW/REMUW to 64-bit DIVU/REMU. 2020-11-26 23:15:41 -08:00
RISCVInstrInfoV.td Recommit "[RISCV] Add intrinsics for vfmv.f.s and vfmv.s.f" 2020-12-18 11:19:05 -08:00
RISCVInstrInfoVPseudos.td [RISCV] Add ISel support for RVV vector/scalar forms 2020-12-23 20:16:18 +00:00
RISCVInstrInfoVSDPatterns.td [RISCV] Add ISel support for RVV vector/scalar forms 2020-12-23 20:16:18 +00:00
RISCVInstrInfoZfh.td [RISCV][LegalizeDAG] Expand SETO and SETUO comparisons. Teach LegalizeDAG to expand SETUO expansion when UNE isn't legal. 2020-12-10 09:15:52 -08:00
RISCVInstructionSelector.cpp
RISCVISelDAGToDAG.cpp [RISCV] Add ISel support for RVV vector/scalar forms 2020-12-23 20:16:18 +00:00
RISCVISelDAGToDAG.h [RISCV] Add ISel support for RVV vector/scalar forms 2020-12-23 20:16:18 +00:00
RISCVISelLowering.cpp [RISCV] Add ISel support for RVV vector/scalar forms 2020-12-23 20:16:18 +00:00
RISCVISelLowering.h [RISCV] Add ISel support for RVV vector/scalar forms 2020-12-23 20:16:18 +00:00
RISCVLegalizerInfo.cpp
RISCVLegalizerInfo.h
RISCVMachineFunctionInfo.h
RISCVMCInstLower.cpp [RISCV] Basic jump table lowering 2020-12-22 15:05:54 +00:00
RISCVMergeBaseOffset.cpp [RISCV] Support Zfh half-precision floating-point extension. 2020-12-03 09:16:33 +08:00
RISCVRegisterBankInfo.cpp
RISCVRegisterBankInfo.h
RISCVRegisterBanks.td
RISCVRegisterInfo.cpp [RISCV] Define the remaining vector fixed-point arithmetic intrinsics. 2020-12-20 22:57:07 -08:00
RISCVRegisterInfo.h
RISCVRegisterInfo.td [RISCV] Define the remaining vector fixed-point arithmetic intrinsics. 2020-12-20 22:57:07 -08:00
RISCVSchedRocket.td
RISCVSchedSiFive7.td
RISCVSchedule.td
RISCVSubtarget.cpp
RISCVSubtarget.h [RISCV] Support Zfh half-precision floating-point extension. 2020-12-03 09:16:33 +08:00
RISCVSystemOperands.td
RISCVTargetMachine.cpp [RISCV] Address clang-tidy warnings in RISCVTargetMachine. NFC. 2020-12-18 21:50:55 +00:00
RISCVTargetMachine.h [RISCV] Address clang-tidy warnings in RISCVTargetMachine. NFC. 2020-12-18 21:50:55 +00:00
RISCVTargetObjectFile.cpp
RISCVTargetObjectFile.h
RISCVTargetTransformInfo.cpp
RISCVTargetTransformInfo.h