LLVM 20.0.0git
|
This file implements the targeting of the Machinelegalizer class for RISC-V. More...
#include "RISCVLegalizerInfo.h"
#include "MCTargetDesc/RISCVMatInt.h"
#include "RISCVMachineFunctionInfo.h"
#include "RISCVSubtarget.h"
#include "llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h"
#include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
#include "llvm/CodeGen/GlobalISel/LegalizerHelper.h"
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineMemOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Type.h"
Go to the source code of this file.
This file implements the targeting of the Machinelegalizer class for RISC-V.
Definition in file RISCVLegalizerInfo.cpp.
|
static |
Creates an all ones mask suitable for masking a vector of type VecTy with vector length VL.
Definition at line 773 of file RISCVLegalizerInfo.cpp.
References llvm::MachineIRBuilder::buildInstr(), and getMaskTypeFor().
Referenced by buildDefaultVLOps().
|
static |
Gets the two common "VL" operands: an all-ones mask and the vector length.
VecTy is a scalable vector type.
Definition at line 783 of file RISCVLegalizerInfo.cpp.
References assert(), buildAllOnesMask(), llvm::LLT::isScalableVector(), and MRI.
|
static |
Definition at line 793 of file RISCVLegalizerInfo.cpp.
References llvm::MachineIRBuilder::buildInstr(), llvm::Hi, and llvm::Lo.
Referenced by buildSplatSplitS64WithVL().
|
static |
Definition at line 809 of file RISCVLegalizerInfo.cpp.
References assert(), buildSplatPartsS64WithVL(), llvm::MachineIRBuilder::buildUnmerge(), llvm::SrcOp::getReg(), MRI, and llvm::LLT::scalar().
Return the type of the mask type suitable for masking the provided vector type.
This is simply an i1 element type vector of the same (possibly scalable) length.
Definition at line 765 of file RISCVLegalizerInfo.cpp.
References assert(), llvm::LLT::getElementCount(), llvm::LLT::isVector(), llvm::LLT::scalar(), and llvm::LLT::vector().
Referenced by buildAllOnesMask(), getAllOnesMask(), lowerFMAXIMUM_FMINIMUM(), lowerVectorFTRUNC_FCEIL_FFLOOR_FROUND(), and llvm::RISCVTargetLowering::PerformDAGCombine().
|
static |
Definition at line 61 of file RISCVLegalizerInfo.cpp.
References llvm::LegalityPredicates::all(), P, and llvm::LegalityPredicates::typeInSet().
Referenced by llvm::RISCVLegalizerInfo::RISCVLegalizerInfo().
|
static |
Definition at line 46 of file RISCVLegalizerInfo.cpp.
References llvm::LegalityPredicates::all(), P, and llvm::LegalityPredicates::typeInSet().
Referenced by llvm::RISCVLegalizerInfo::RISCVLegalizerInfo().
|
static |
Definition at line 71 of file RISCVLegalizerInfo.cpp.
References llvm::LegalityPredicates::all(), P, and llvm::LegalityPredicates::typeInSet().
Referenced by llvm::RISCVLegalizerInfo::RISCVLegalizerInfo().
|
static |
Definition at line 35 of file RISCVLegalizerInfo.cpp.
Referenced by llvm::RISCVLegalizerInfo::RISCVLegalizerInfo().