LLVM 24.0.0git
SLPTypeUtils.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::slpvectorizer
 A private "module" namespace for types and utilities used by this pass.

Functions

bool llvm::slpvectorizer::isValidElementType (Type *Ty, bool ReVec)
 Predicate for the element types that the SLP vectorizer supports.
Typellvm::slpvectorizer::getValueType (Value *V, bool ReVec, bool LookThroughCmp=false)
 Returns the "element type" of the given value/instruction V.
Typellvm::slpvectorizer::getWidenedType (Type *ScalarTy, unsigned VF)
unsigned llvm::slpvectorizer::getFullVectorNumberOfElements (const TargetTransformInfo &TTI, Type *Ty, unsigned Sz, bool ReVec)
 Returns the number of elements of the given type Ty, not less than Sz, which forms type, which splits by TTI into whole vector types during legalization.
unsigned llvm::slpvectorizer::getFloorFullVectorNumberOfElements (const TargetTransformInfo &TTI, Type *Ty, unsigned Sz, bool ReVec)
 Returns the number of elements of the given type Ty, not greater than Sz, which forms type, which splits by TTI into whole vector types during legalization.
FixedVectorTypellvm::slpvectorizer::getMaskedDivRemType (const TargetTransformInfo &TTI, unsigned Opcode, Type *ScalarTy, unsigned NumElts, bool ReVec)
 For a non-power-of-2 NumElts-wide integer div/rem Opcode, returns the padded full-register vector type if padding is structurally possible, or nullptr if the vector already fills a register or the opcode is not div/rem.
bool llvm::slpvectorizer::hasFullVectorsOrPowerOf2 (const TargetTransformInfo &TTI, Type *Ty, unsigned Sz, bool ReVec)
 Returns true if widened type of Ty elements with size Sz represents full vector type, i.e.