LLVM 22.0.0git
|
#include "RISCV.h"
#include "RISCVISelLowering.h"
#include "RISCVSubtarget.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/Analysis/VectorUtils.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicsRISCV.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/PatternMatch.h"
Go to the source code of this file.
Functions | |
static bool | isMultipleOfN (const Value *V, const DataLayout &DL, unsigned N) |
static bool | getMemOperands (unsigned Factor, VectorType *VTy, Type *XLenTy, Instruction *I, Value *&Ptr, Value *&Mask, Value *&VL, Align &Alignment) |
Do the common operand retrieval and validition required by the routines below. | |
Variables | |
static const Intrinsic::ID | FixedVlsegIntrIds [] |
static const Intrinsic::ID | FixedVlssegIntrIds [] |
static const Intrinsic::ID | ScalableVlsegIntrIds [] |
static const Intrinsic::ID | FixedVssegIntrIds [] |
static const Intrinsic::ID | FixedVsssegIntrIds [] |
static const Intrinsic::ID | ScalableVssegIntrIds [] |
|
static |
Do the common operand retrieval and validition required by the routines below.
Definition at line 119 of file RISCVInterleavedAccess.cpp.
References assert(), llvm::IRBuilderBase::CreateElementCount(), llvm::IRBuilderBase::CreateExactUDiv(), llvm::IRBuilderBase::CreateZExt(), DL, llvm::IRBuilderBase::getAllOnesMask(), llvm::Constant::getAllOnesValue(), llvm::Value::getType(), I, II, isMultipleOfN(), llvm_unreachable, and Ptr.
Referenced by llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::RISCVTargetLowering::lowerInterleavedLoad(), llvm::RISCVTargetLowering::lowerInterleavedStore(), and llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore().
Definition at line 96 of file RISCVInterleavedAccess.cpp.
References assert(), llvm::CallingConv::C, llvm::computeKnownBits(), llvm::KnownBits::countMinTrailingZeros(), DL, llvm::isPowerOf2_32(), llvm::Log2_32(), llvm::PatternMatch::m_CombineOr(), llvm::PatternMatch::m_ConstantInt(), llvm::PatternMatch::m_NUWMul(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), and N.
Referenced by getMemOperands().
|
static |
Definition at line 60 of file RISCVInterleavedAccess.cpp.
Referenced by llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), and llvm::RISCVTargetLowering::lowerInterleavedLoad().
|
static |
Definition at line 66 of file RISCVInterleavedAccess.cpp.
Referenced by llvm::RISCVTargetLowering::lowerInterleavedLoad().
|
static |
Definition at line 78 of file RISCVInterleavedAccess.cpp.
Referenced by llvm::RISCVTargetLowering::lowerInterleavedStore(), and llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore().
|
static |
Definition at line 84 of file RISCVInterleavedAccess.cpp.
Referenced by llvm::RISCVTargetLowering::lowerInterleavedStore().
|
static |
Definition at line 72 of file RISCVInterleavedAccess.cpp.
Referenced by llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad().
|
static |
Definition at line 90 of file RISCVInterleavedAccess.cpp.
Referenced by llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore().