LLVM  6.0.0svn
Classes | Namespaces | Functions
VectorUtils.h File Reference
#include "llvm/ADT/MapVector.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/IR/IRBuilder.h"
Include dependency graph for VectorUtils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::ArrayRef< T >
 ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory), i.e. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 
 llvm::Intrinsic
 This namespace contains an enum with a value for every intrinsic/builtin function known by LLVM.
 

Functions

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...
 
Valuellvm::stripGetElementPtr (Value *Ptr, ScalarEvolution *SE, Loop *Lp)
 If the argument is a GEP, then returns the operand identified by getGEPInductionOperand. More...
 
Valuellvm::getUniqueCastUse (Value *Ptr, Loop *Lp, Type *Ty)
 If a value has only one user that is a CastInst, return it. More...
 
Valuellvm::getStrideFromPointer (Value *Ptr, ScalarEvolution *SE, Loop *Lp)
 Get the stride of a pointer access in a loop. More...
 
Valuellvm::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 Valuellvm::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...
 
Instructionllvm::propagateMetadata (Instruction *I, ArrayRef< Value *> VL)
 Specifically, let Kinds = [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath, MD_nontemporal]. More...
 
Constantllvm::createInterleaveMask (IRBuilder<> &Builder, unsigned VF, unsigned NumVecs)
 Create an interleave shuffle mask. More...
 
Constantllvm::createStrideMask (IRBuilder<> &Builder, unsigned Start, unsigned Stride, unsigned VF)
 Create a stride shuffle mask. More...
 
Constantllvm::createSequentialMask (IRBuilder<> &Builder, unsigned Start, unsigned NumInts, unsigned NumUndefs)
 Create a sequential shuffle mask. More...
 
Valuellvm::concatenateVectors (IRBuilder<> &Builder, ArrayRef< Value *> Vecs)
 Concatenate a list of vectors. More...