|
bool | llvm::isTriviallyVectorizable (Intrinsic::ID ID) |
| Identify if the intrinsic is trivially vectorizable. More...
|
|
bool | llvm::hasVectorInstrinsicScalarOpd (Intrinsic::ID ID, unsigned ScalarOpdIdx) |
| Identifies if the intrinsic has a scalar operand. More...
|
|
Intrinsic::ID | llvm::getVectorIntrinsicIDForCall (const CallInst *CI, const TargetLibraryInfo *TLI) |
| Returns intrinsic ID for call. More...
|
|
unsigned | llvm::getGEPInductionOperand (const GetElementPtrInst *Gep) |
| Find the operand of the GEP that should be checked for consecutive stores. More...
|
|
Value * | llvm::stripGetElementPtr (Value *Ptr, ScalarEvolution *SE, Loop *Lp) |
| If the argument is a GEP, then returns the operand identified by getGEPInductionOperand. More...
|
|
Value * | llvm::getUniqueCastUse (Value *Ptr, Loop *Lp, Type *Ty) |
| If a value has only one user that is a CastInst, return it. More...
|
|
Value * | llvm::getStrideFromPointer (Value *Ptr, ScalarEvolution *SE, Loop *Lp) |
| Get the stride of a pointer access in a loop. More...
|
|
Value * | llvm::findScalarElement (Value *V, unsigned EltNo) |
| Given a vector and an element number, see if the scalar value is already around as a register, for example if it were inserted then extracted from the vector. More...
|
|
const Value * | llvm::getSplatValue (const Value *V) |
| Get splat value if the input is a splat vector or return nullptr. More...
|
|
MapVector< Instruction *, uint64_t > | llvm::computeMinimumValueSizes (ArrayRef< BasicBlock *> Blocks, DemandedBits &DB, const TargetTransformInfo *TTI=nullptr) |
| Compute a map of integer instructions to their minimum legal type size. More...
|
|
MDNode * | llvm::uniteAccessGroups (MDNode *AccGroups1, MDNode *AccGroups2) |
| Compute the union of two access-group lists. More...
|
|
MDNode * | llvm::intersectAccessGroups (const Instruction *Inst1, const Instruction *Inst2) |
| Compute the access-group list of access groups that Inst1 and Inst2 are both in. More...
|
|
Instruction * | llvm::propagateMetadata (Instruction *I, ArrayRef< Value *> VL) |
| Specifically, let Kinds = [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath, MD_nontemporal, MD_access_group]. More...
|
|
Constant * | llvm::createBitMaskForGaps (IRBuilder<> &Builder, unsigned VF, const InterleaveGroup< Instruction > &Group) |
| Create a mask that filters the members of an interleave group where there are gaps. More...
|
|
Constant * | llvm::createReplicatedMask (IRBuilder<> &Builder, unsigned ReplicationFactor, unsigned VF) |
| Create a mask with replicated elements. More...
|
|
Constant * | llvm::createInterleaveMask (IRBuilder<> &Builder, unsigned VF, unsigned NumVecs) |
| Create an interleave shuffle mask. More...
|
|
Constant * | llvm::createStrideMask (IRBuilder<> &Builder, unsigned Start, unsigned Stride, unsigned VF) |
| Create a stride shuffle mask. More...
|
|
Constant * | llvm::createSequentialMask (IRBuilder<> &Builder, unsigned Start, unsigned NumInts, unsigned NumUndefs) |
| Create a sequential shuffle mask. More...
|
|
Value * | llvm::concatenateVectors (IRBuilder<> &Builder, ArrayRef< Value *> Vecs) |
| Concatenate a list of vectors. More...
|
|