LLVM API Documentation
#include <Instructions.h>


Public Member Functions | |
| void * | operator new (size_t s) |
| ShuffleVectorInst (Value *V1, Value *V2, Value *Mask, const Twine &NameStr="", Instruction *InsertBefor=0) | |
| ShuffleVectorInst (Value *V1, Value *V2, Value *Mask, const Twine &NameStr, BasicBlock *InsertAtEnd) | |
| VectorType * | getType () const |
| DECLARE_TRANSPARENT_OPERAND_ACCESSORS (Value) | |
| Transparently provide more efficient getOperand methods. More... | |
| Constant * | getMask () const |
| int | getMaskValue (unsigned i) const |
| void | getShuffleMask (SmallVectorImpl< int > &Result) const |
| SmallVector< int, 16 > | getShuffleMask () const |
Public Member Functions inherited from llvm::Instruction | |
| ~Instruction () | |
| Instruction * | use_back () |
| const Instruction * | use_back () const |
| const BasicBlock * | getParent () const |
| BasicBlock * | getParent () |
| void | removeFromParent () |
| void | eraseFromParent () |
| void | insertBefore (Instruction *InsertPos) |
| void | insertAfter (Instruction *InsertPos) |
| void | moveBefore (Instruction *MovePos) |
| unsigned | getOpcode () const |
| getOpcode() returns a member of one of the enums like Instruction::Add. More... | |
| const char * | getOpcodeName () const |
| bool | isTerminator () const |
| bool | isBinaryOp () const |
| bool | isShift () |
| bool | isCast () const |
| bool | isLogicalShift () const |
| bool | isArithmeticShift () const |
| isArithmeticShift - Return true if this is an arithmetic shift right. More... | |
| bool | hasMetadata () const |
| bool | hasMetadataOtherThanDebugLoc () const |
| MDNode * | getMetadata (unsigned KindID) const |
| MDNode * | getMetadata (StringRef Kind) const |
| void | getAllMetadata (SmallVectorImpl< std::pair< unsigned, MDNode * > > &MDs) const |
| void | getAllMetadataOtherThanDebugLoc (SmallVectorImpl< std::pair< unsigned, MDNode * > > &MDs) const |
| void | setMetadata (unsigned KindID, MDNode *Node) |
| void | setMetadata (StringRef Kind, MDNode *Node) |
| void | setDebugLoc (const DebugLoc &Loc) |
| setDebugLoc - Set the debug location information for this instruction. More... | |
| const DebugLoc & | getDebugLoc () const |
| getDebugLoc - Return the debug location for this node as a DebugLoc. More... | |
| void | setHasUnsafeAlgebra (bool B) |
| void | setHasNoNaNs (bool B) |
| void | setHasNoInfs (bool B) |
| void | setHasNoSignedZeros (bool B) |
| void | setHasAllowReciprocal (bool B) |
| void | setFastMathFlags (FastMathFlags FMF) |
| bool | hasUnsafeAlgebra () const |
| Determine whether the unsafe-algebra flag is set. More... | |
| bool | hasNoNaNs () const |
| Determine whether the no-NaNs flag is set. More... | |
| bool | hasNoInfs () const |
| Determine whether the no-infs flag is set. More... | |
| bool | hasNoSignedZeros () const |
| Determine whether the no-signed-zeros flag is set. More... | |
| bool | hasAllowReciprocal () const |
| Determine whether the allow-reciprocal flag is set. More... | |
| FastMathFlags | getFastMathFlags () const |
| void | copyFastMathFlags (const Instruction *I) |
| Copy I's fast-math flags. More... | |
| bool | isAssociative () const |
| bool | isCommutative () const |
| bool | isIdempotent () const |
| bool | isNilpotent () const |
| bool | mayWriteToMemory () const |
| bool | mayReadFromMemory () const |
| bool | mayReadOrWriteMemory () const |
| bool | mayThrow () const |
| bool | mayReturn () const |
| bool | mayHaveSideEffects () const |
| Instruction * | clone () const |
| bool | isIdenticalTo (const Instruction *I) const |
| bool | isIdenticalToWhenDefined (const Instruction *I) const |
| bool | isSameOperationAs (const Instruction *I, unsigned flags=0) const |
| Determine if one instruction is the same operation as another. More... | |
| bool | isUsedOutsideOfBlock (const BasicBlock *BB) const |
Public Member Functions inherited from llvm::User | |
| ~User () | |
| void | operator delete (void *Usr) |
| operator delete - free memory allocated for User and Use objects More... | |
| void | operator delete (void *, unsigned) |
| placement delete - required by std, but never called. More... | |
| void | operator delete (void *, unsigned, bool) |
| placement delete - required by std, but never called. More... | |
| Value * | getOperand (unsigned i) const |
| void | setOperand (unsigned i, Value *Val) |
| const Use & | getOperandUse (unsigned i) const |
| Use & | getOperandUse (unsigned i) |
| unsigned | getNumOperands () const |
| op_iterator | op_begin () |
| const_op_iterator | op_begin () const |
| op_iterator | op_end () |
| const_op_iterator | op_end () const |
| value_op_iterator | value_op_begin () |
| value_op_iterator | value_op_end () |
| void | dropAllReferences () |
| void | replaceUsesOfWith (Value *From, Value *To) |
Public Member Functions inherited from llvm::Value | |
| virtual | ~Value () |
| void | dump () const |
| dump - Support for debugging, callable in GDB: V->dump() More... | |
| void | print (raw_ostream &O, AssemblyAnnotationWriter *AAW=0) const |
| Type * | getType () const |
| LLVMContext & | getContext () const |
| All values hold a context through their type. More... | |
| bool | hasName () const |
| ValueName * | getValueName () const |
| void | setValueName (ValueName *VN) |
| StringRef | getName () const |
| void | setName (const Twine &Name) |
| void | takeName (Value *V) |
| void | replaceAllUsesWith (Value *V) |
| bool | use_empty () const |
| use_iterator | use_begin () |
| const_use_iterator | use_begin () const |
| use_iterator | use_end () |
| const_use_iterator | use_end () const |
| User * | use_back () |
| const User * | use_back () const |
| bool | hasOneUse () const |
| bool | hasNUses (unsigned N) const |
| bool | hasNUsesOrMore (unsigned N) const |
| bool | isUsedInBasicBlock (const BasicBlock *BB) const |
| unsigned | getNumUses () const |
| void | addUse (Use &U) |
| unsigned | getValueID () const |
| unsigned | getRawSubclassOptionalData () const |
| void | clearSubclassOptionalData () |
| bool | hasSameSubclassOptionalData (const Value *V) const |
| void | intersectOptionalDataWith (const Value *V) |
| bool | hasValueHandle () const |
| Value * | stripPointerCasts () |
| Strips off any unneeded pointer casts, all-zero GEPs and aliases from the specified value, returning the original uncasted value. More... | |
| const Value * | stripPointerCasts () const |
| Value * | stripPointerCastsNoFollowAliases () |
| Strips off any unneeded pointer casts and all-zero GEPs from the specified value, returning the original uncasted value. More... | |
| const Value * | stripPointerCastsNoFollowAliases () const |
| Value * | stripInBoundsConstantOffsets () |
| Strips off unneeded pointer casts and all-constant GEPs from the specified value, returning the original pointer value. More... | |
| const Value * | stripInBoundsConstantOffsets () const |
| Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) |
Strips like stripInBoundsConstantOffsets but also accumulates the constant offset stripped. More... | |
| const Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) const |
| Value * | stripInBoundsOffsets () |
| Strips off unneeded pointer casts and any in-bounds offsets from the specified value, returning the original pointer value. More... | |
| const Value * | stripInBoundsOffsets () const |
| bool | isDereferenceablePointer () const |
| Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) |
| const Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) const |
| void | mutateType (Type *Ty) |
Public Member Functions inherited from llvm::ilist_node< Instruction > | |
| Instruction * | getPrevNode () |
| Get the previous node, or 0 for the list head. More... | |
| const Instruction * | getPrevNode () const |
| Get the previous node, or 0 for the list head. More... | |
| Instruction * | getNextNode () |
| Get the next node, or 0 for the list tail. More... | |
| const Instruction * | getNextNode () const |
| Get the next node, or 0 for the list tail. More... | |
Static Public Member Functions | |
| static bool | isValidOperands (const Value *V1, const Value *V2, const Value *Mask) |
| static int | getMaskValue (Constant *Mask, unsigned i) |
| static void | getShuffleMask (Constant *Mask, SmallVectorImpl< int > &Result) |
| static bool | classof (const Instruction *I) |
| static bool | classof (const Value *V) |
Static Public Member Functions inherited from llvm::Instruction | |
| static const char * | getOpcodeName (unsigned OpCode) |
| static bool | isTerminator (unsigned OpCode) |
| static bool | isBinaryOp (unsigned Opcode) |
| static bool | isShift (unsigned Opcode) |
| Determine if the Opcode is one of the shift instructions. More... | |
| static bool | isCast (unsigned OpCode) |
| Determine if the OpCode is one of the CastInst instructions. More... | |
| static bool | isAssociative (unsigned op) |
| static bool | isCommutative (unsigned op) |
| static bool | isIdempotent (unsigned op) |
| static bool | isNilpotent (unsigned op) |
| static bool | classof (const Value *V) |
| Methods for support type inquiry through isa, cast, and dyn_cast: More... | |
Static Public Member Functions inherited from llvm::User | |
| static bool | classof (const Value *V) |
Protected Member Functions | |
| virtual ShuffleVectorInst * | clone_impl () const |
Protected Member Functions inherited from llvm::Instruction | |
| void | setInstructionSubclassData (unsigned short D) |
| unsigned | getSubclassDataFromInstruction () const |
| Instruction (Type *Ty, unsigned iType, Use *Ops, unsigned NumOps, Instruction *InsertBefore=0) | |
| Instruction (Type *Ty, unsigned iType, Use *Ops, unsigned NumOps, BasicBlock *InsertAtEnd) | |
Protected Member Functions inherited from llvm::User | |
| void * | operator new (size_t s, unsigned Us) |
| User (Type *ty, unsigned vty, Use *OpList, unsigned NumOps) | |
| Use * | allocHungoffUses (unsigned) const |
| void | dropHungoffUses () |
| template<int Idx> | |
| Use & | Op () |
| template<int Idx> | |
| const Use & | Op () const |
Protected Member Functions inherited from llvm::Value | |
| virtual void | printCustom (raw_ostream &O) const |
| Value (Type *Ty, unsigned scid) | |
| unsigned short | getSubclassDataFromValue () const |
| void | setValueSubclassData (unsigned short D) |
Protected Member Functions inherited from llvm::ilist_node< Instruction > | |
| ilist_node () | |
ShuffleVectorInst - This instruction constructs a fixed permutation of two input vectors.
Definition at line 1660 of file Instructions.h.
| ShuffleVectorInst::ShuffleVectorInst | ( | Value * | V1, |
| Value * | V2, | ||
| Value * | Mask, | ||
| const Twine & | NameStr = "", |
||
| Instruction * | InsertBefor = 0 |
||
| ) |
Definition at line 1528 of file Instructions.cpp.
References isValidOperands(), and llvm::Value::setName().
Referenced by clone_impl().
| ShuffleVectorInst::ShuffleVectorInst | ( | Value * | V1, |
| Value * | V2, | ||
| Value * | Mask, | ||
| const Twine & | NameStr, | ||
| BasicBlock * | InsertAtEnd | ||
| ) |
Definition at line 1545 of file Instructions.cpp.
References isValidOperands(), and llvm::Value::setName().
|
inlinestatic |
Definition at line 1718 of file Instructions.h.
References llvm::Instruction::getOpcode().
Definition at line 1721 of file Instructions.h.
|
protectedvirtual |
Implements llvm::Instruction.
Definition at line 3644 of file Instructions.cpp.
References llvm::User::getOperand(), and ShuffleVectorInst().
| llvm::ShuffleVectorInst::DECLARE_TRANSPARENT_OPERAND_ACCESSORS | ( | Value | ) |
Transparently provide more efficient getOperand methods.
|
inline |
Definition at line 1689 of file Instructions.h.
getMaskValue - Return the index from the shuffle mask for the specified output result. This is either -1 if the element is undef or a number less than 2*numelements.
Definition at line 1614 of file Instructions.cpp.
References llvm::CallingConv::C, llvm::Constant::getAggregateElement(), and getType().
Referenced by llvm::ConstantFoldShuffleVectorInstruction().
|
inline |
Definition at line 1698 of file Instructions.h.
|
static |
getShuffleMask - Return the full mask for this instruction, where each element is the element number and undef's are returned as -1.
Definition at line 1626 of file Instructions.cpp.
References llvm::Constant::getAggregateElement(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
Referenced by matchPairwiseShuffleMask(), matchVectorSplittingReduction(), and llvm::InstCombiner::visitShuffleVectorInst().
|
inline |
Definition at line 1706 of file Instructions.h.
|
inline |
Definition at line 1710 of file Instructions.h.
|
inline |
getType - Overload to return most specific vector type.
Definition at line 1682 of file Instructions.h.
References llvm::Value::getType().
Referenced by getMaskValue(), matchPairwiseShuffleMask(), llvm::Interpreter::visitShuffleVectorInst(), and llvm::InstCombiner::visitShuffleVectorInst().
|
static |
isValidOperands - Return true if a shufflevector instruction can be formed with the specified operands.
Definition at line 1563 of file Instructions.cpp.
References llvm::dyn_cast(), llvm::SequentialType::getElementType(), llvm::VectorType::getNumElements(), llvm::Value::getType(), llvm::Type::isIntegerTy(), and llvm::Type::isVectorTy().
Referenced by llvm::ConstantExpr::getShuffleVector(), and ShuffleVectorInst().
|
inline |
Definition at line 1666 of file Instructions.h.