16#ifndef LLVM_LIB_TRANSFORMS_VECTORIZE_SLPVECTORIZER_SLPUTILS_H
17#define LLVM_LIB_TRANSFORMS_VECTORIZE_SLPVECTORIZER_SLPUTILS_H
51unsigned getNumElems(
unsigned Size,
unsigned PartNumElems,
unsigned Part);
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
A private "module" namespace for types and utilities used by this pass.
std::optional< unsigned > getExtractIndex(const Instruction *E)
std::optional< unsigned > getInsertExtractIndex(const Value *Inst, unsigned Offset)
bool allSameType(ArrayRef< Value * > VL)
bool allSameOpcode(ArrayRef< Value * > VL)
bool isSplat(ArrayRef< Value * > VL)
unsigned getNumElements(Type *Ty)
unsigned getPartNumElems(unsigned Size, unsigned NumParts)
Returns power-of-2 number of elements in a single register (part), given the total number of elements...
bool allConstant(ArrayRef< Value * > VL)
bool allSameBlock(ArrayRef< Value * > VL)
bool isVectorLikeInstWithConstOps(Value *V)
Checks if V is one of vector-like instructions, i.e.
unsigned getNumElems(unsigned Size, unsigned PartNumElems, unsigned Part)
Returns correct remaining number of elements, considering total amount Size, (power-of-2 number) of e...
bool isConstant(Value *V)
This is an optimization pass for GlobalISel generic memory operations.
RelativeUniformCounterPtr ValuesPtrExpr VTableAddr Value
ArrayRef(const T &OneElt) -> ArrayRef< T >