reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

include/llvm/Analysis/MemoryBuiltins.h
   37 class ExtractElementInst;
include/llvm/IR/Instruction.def
  214 HANDLE_OTHER_INST(61, ExtractElement, ExtractElementInst)// extract from vector

References

include/llvm/ADT/ArrayRef.h
  108         const ArrayRef<U *> &A,
  110            std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  118       const SmallVectorTemplateCommon<U *, DummyT> &Vec,
  120           std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
include/llvm/ADT/DenseMapInfo.h
   39   static inline T* getEmptyKey() {
   41     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   45   static inline T* getTombstoneKey() {
   47     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   51   static unsigned getHashValue(const T *PtrVal) {
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/Analysis/MemoryBuiltins.h
  264   SizeOffsetType visitExtractElementInst(ExtractElementInst &I);
  333   SizeOffsetEvalType visitExtractElementInst(ExtractElementInst &I);
include/llvm/IR/IRBuilder.h
  845   InstTy *Insert(InstTy *I, const Twine &Name = "") const {
  845   InstTy *Insert(InstTy *I, const Twine &Name = "") const {
 2336     return Insert(ExtractElementInst::Create(Vec, Idx), Name);
include/llvm/IR/InstVisitor.h
  193   RetTy visitExtractElementInst(ExtractElementInst &I) { DELEGATE(Instruction);}
include/llvm/IR/Instructions.h
 1860   ExtractElementInst *cloneImpl() const;
 1863   static ExtractElementInst *Create(Value *Vec, Value *Idx,
 1866     return new(2) ExtractElementInst(Vec, Idx, NameStr, InsertBefore);
 1869   static ExtractElementInst *Create(Value *Vec, Value *Idx,
 1872     return new(2) ExtractElementInst(Vec, Idx, NameStr, InsertAtEnd);
 1902   public FixedNumOperandTraits<ExtractElementInst, 2> {
include/llvm/IR/NoFolder.h
  319     return ExtractElementInst::Create(Vec, Idx);
include/llvm/IR/OperandTraits.h
   31   static Use *op_begin(SubClass* U) {
   33         !std::is_polymorphic<SubClass>::value,
   37   static Use *op_end(SubClass* U) {
include/llvm/IR/User.h
  127   template <int Idx, typename U> static Use &OpFrom(const U *that) {
  129       ? OperandTraits<U>::op_end(const_cast<U*>(that))[Idx]
  130       : OperandTraits<U>::op_begin(const_cast<U*>(that))[Idx];
include/llvm/Support/Casting.h
   58     return To::classof(&Val);
   77     return isa_impl<To, From>::doit(Val);
   92     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
lib/Analysis/CFLGraph.h
  469     void visitExtractElementInst(ExtractElementInst &Inst) {
  471       auto *Val = &Inst;
lib/Analysis/CodeMetrics.cpp
  157     if (isa<ExtractElementInst>(I) || I.getType()->isVectorTy())
lib/Analysis/InlineCost.cpp
 1579     if (isa<ExtractElementInst>(I) || I->getType()->isVectorTy())
lib/Analysis/InstructionSimplify.cpp
 5359     auto *EEI = cast<ExtractElementInst>(I);
 5359     auto *EEI = cast<ExtractElementInst>(I);
lib/Analysis/Lint.cpp
  119     void visitExtractElementInst(ExtractElementInst &I);
  626 void Lint::visitExtractElementInst(ExtractElementInst &I) {
lib/Analysis/MemoryBuiltins.cpp
  737 ObjectSizeOffsetVisitor::visitExtractElementInst(ExtractElementInst&) {
  960 ObjectSizeOffsetEvaluator::visitExtractElementInst(ExtractElementInst&) {
lib/Analysis/TargetTransformInfo.cpp
 1000 static ReductionKind matchPairwiseReduction(const ExtractElementInst *ReduxRoot,
 1065 matchVectorSplittingReduction(const ExtractElementInst *ReduxRoot,
 1230     const ExtractElementInst * EEI = cast<ExtractElementInst>(I);
 1230     const ExtractElementInst * EEI = cast<ExtractElementInst>(I);
lib/AsmParser/LLParser.cpp
 3636       if (!ExtractElementInst::isValidOperands(Elts[0], Elts[1]))
 6610   if (!ExtractElementInst::isValidOperands(Op0, Op1))
 6613   Inst = ExtractElementInst::Create(Op0, Op1);
lib/Bitcode/Reader/BitcodeReader.cpp
 4134       I = ExtractElementInst::Create(Vec, Idx);
lib/CodeGen/CodeGenPrepare.cpp
 7060     return optimizeExtractElementInst(cast<ExtractElementInst>(I));
lib/CodeGen/InterleavedAccessPass.cpp
  118   bool tryReplaceExtracts(ArrayRef<ExtractElementInst *> Extracts,
  286   SmallVector<ExtractElementInst *, 4> Extracts;
  293     auto *Extract = dyn_cast<ExtractElementInst>(*UI);
  293     auto *Extract = dyn_cast<ExtractElementInst>(*UI);
  354     ArrayRef<ExtractElementInst *> Extracts,
  363   DenseMap<ExtractElementInst *, std::pair<Value *, int>> ReplacementMap;
  365   for (auto *Extract : Extracts) {
  406     auto *Extract = Replacement.first;
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
 3085       } else if (isa<ExtractElementInst>(U)) {
lib/ExecutionEngine/Interpreter/Execution.cpp
 1799 void Interpreter::visitExtractElementInst(ExtractElementInst &I) {
lib/ExecutionEngine/Interpreter/Interpreter.h
  163   void visitExtractElementInst(ExtractElementInst &I);
lib/FuzzMutate/Operations.cpp
  280     return ExtractElementInst::Create(Srcs[0], Srcs[1], "E", Inst);
lib/IR/Constants.cpp
 3010     return ExtractElementInst::Create(Ops[0], Ops[1]);
lib/IR/Instructions.cpp
 1709                 OperandTraits<ExtractElementInst>::op_begin(this),
 1723                 OperandTraits<ExtractElementInst>::op_begin(this),
 4240 ExtractElementInst *ExtractElementInst::cloneImpl() const {
 4241   return ExtractElementInst::Create(getOperand(0), getOperand(1));
lib/IR/Verifier.cpp
  456   void visitExtractElementInst(ExtractElementInst &EI);
 3252 void Verifier::visitExtractElementInst(ExtractElementInst &EI) {
lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp
  194     if (auto E = dyn_cast<ExtractElementInst>(V)) {
lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
  699   if (const ExtractElementInst *EE = dyn_cast<ExtractElementInst>(U)) {
  699   if (const ExtractElementInst *EE = dyn_cast<ExtractElementInst>(U)) {
lib/Target/SystemZ/SystemZISelLowering.cpp
  886       if (isa<ExtractElementInst>(DataOp))
lib/Transforms/InstCombine/InstCombineCasts.cpp
  490   return ExtractElementInst::Create(VecInput, IC.Builder.getInt32(Elt));
 2038   auto *ExtElt = dyn_cast<ExtractElementInst>(BitCast.getOperand(0));
 2038   auto *ExtElt = dyn_cast<ExtractElementInst>(BitCast.getOperand(0));
 2052   return ExtractElementInst::Create(NewBC, ExtElt->getIndexOperand());
lib/Transforms/InstCombine/InstCombineInternal.h
  443   Instruction *visitExtractElementInst(ExtractElementInst &EI);
  597   Instruction *scalarizePHI(ExtractElementInst &EI, PHINode *PN);
lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
 1079     auto *E = dyn_cast<ExtractElementInst>(IV->getInsertedValueOperand());
 1079     auto *E = dyn_cast<ExtractElementInst>(IV->getInsertedValueOperand());
lib/Transforms/InstCombine/InstCombineVectorOps.cpp
   84 Instruction *InstCombiner::scalarizePHI(ExtractElementInst &EI, PHINode *PN) {
   92     if (ExtractElementInst *EU = dyn_cast<ExtractElementInst>(U)) {
   92     if (ExtractElementInst *EU = dyn_cast<ExtractElementInst>(U)) {
  131           ExtractElementInst::Create(B0->getOperand(opId), Elt,
  140       Instruction *newEI = ExtractElementInst::Create(PHIInVal, Elt, "");
  162 static Instruction *foldBitcastExtElt(ExtractElementInst &Ext,
  265     ExtractElementInst *EEI = cast<ExtractElementInst>(UserInstr);
  265     ExtractElementInst *EEI = cast<ExtractElementInst>(UserInstr);
  319 Instruction *InstCombiner::visitExtractElementInst(ExtractElementInst &EI) {
  425         return ExtractElementInst::Create(Src,
  487     } else if (ExtractElementInst *EI = dyn_cast<ExtractElementInst>(ScalarOp)){
  487     } else if (ExtractElementInst *EI = dyn_cast<ExtractElementInst>(ScalarOp)){
  523                                    ExtractElementInst *ExtElt,
  587     ExtractElementInst *OldExt = dyn_cast<ExtractElementInst>(U);
  587     ExtractElementInst *OldExt = dyn_cast<ExtractElementInst>(U);
  590     auto *NewExt = ExtractElementInst::Create(WideVec, OldExt->getOperand(1));
  590     auto *NewExt = ExtractElementInst::Create(WideVec, OldExt->getOperand(1));
  630     if (ExtractElementInst *EI = dyn_cast<ExtractElementInst>(ScalarOp)) {
  630     if (ExtractElementInst *EI = dyn_cast<ExtractElementInst>(ScalarOp)) {
lib/Transforms/Instrumentation/ControlHeightReduction.cpp
  498       isa<InsertElementInst>(I) || isa<ExtractElementInst>(I) ||
lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
  450   void visitExtractElementInst(ExtractElementInst &I);
 1418 void DFSanVisitor::visitExtractElementInst(ExtractElementInst &I) {
lib/Transforms/Instrumentation/MemorySanitizer.cpp
 1858   void visitExtractElementInst(ExtractElementInst &I) {
lib/Transforms/Scalar/EarlyCSE.cpp
  114            isa<ExtractElementInst>(Inst) || isa<InsertElementInst>(Inst) ||
lib/Transforms/Scalar/LICM.cpp
 1039           isa<InsertElementInst>(I) || isa<ExtractElementInst>(I) ||
lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  595   if (isa<ExtractElementInst>(I))
  639       !isa<ExtractElementInst>(V) && !isa<InsertElementInst>(V) &&
  792            isa<ExtractElementInst>(BDV) || isa<InsertElementInst>(BDV) ||
  831       } else if (auto *EE = dyn_cast<ExtractElementInst>(Current)) {
  831       } else if (auto *EE = dyn_cast<ExtractElementInst>(Current)) {
  892       } else if (auto *EE = dyn_cast<ExtractElementInst>(BDV)) {
  892       } else if (auto *EE = dyn_cast<ExtractElementInst>(BDV)) {
  940     if (State.isBase() && isa<ExtractElementInst>(I) &&
  942       auto *EE = cast<ExtractElementInst>(I);
  942       auto *EE = cast<ExtractElementInst>(I);
  946       auto *BaseInst = ExtractElementInst::Create(
  946       auto *BaseInst = ExtractElementInst::Create(
  974       } else if (auto *EE = dyn_cast<ExtractElementInst>(I)) {
  974       } else if (auto *EE = dyn_cast<ExtractElementInst>(I)) {
  977         return ExtractElementInst::Create(Undef, EE->getIndexOperand(), Name,
 1086     } else if (auto *BaseEE =
 1087                    dyn_cast<ExtractElementInst>(State.getBaseValue())) {
 1088       Value *InVal = cast<ExtractElementInst>(BDV)->getVectorOperand();
lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
  788             const ExtractElementInst *EEI = dyn_cast<ExtractElementInst>(U);
  788             const ExtractElementInst *EEI = dyn_cast<ExtractElementInst>(U);
  834             const ExtractElementInst *EEI = dyn_cast<ExtractElementInst>(U);
  834             const ExtractElementInst *EEI = dyn_cast<ExtractElementInst>(U);
lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
  721           isa<ExtractElementInst>(I)) {
lib/Transforms/Vectorize/LoopVectorize.cpp
 3170     return isa<InsertElementInst>(I) || isa<ExtractElementInst>(I) ||
 3375       } else if (auto *EE = dyn_cast<ExtractElementInst>(I)) {
 3375       } else if (auto *EE = dyn_cast<ExtractElementInst>(I)) {
lib/Transforms/Vectorize/SLPVectorizer.cpp
  266   auto *EI0 = cast<ExtractElementInst>(VL[0]);
  266   auto *EI0 = cast<ExtractElementInst>(VL[0]);
  273     auto *EI = cast<ExtractElementInst>(VL[I]);
  273     auto *EI = cast<ExtractElementInst>(VL[I]);
 2950                 cast<ExtractElementInst>(V)->getIndexOperand());
 2975                 cast<ExtractElementInst>(VL[I])->getIndexOperand());
 2989                 cast<ExtractElementInst>(V)->getIndexOperand());
 4452       if (!isa<InsertElementInst>(In) && !isa<ExtractElementInst>(In))
 6186           if (!isa<ExtractElementInst>(RHS) ||
 6190           if (!isa<ExtractElementInst>(LHS) ||
 6194           if (!isa<ExtractElementInst>(LHS) || !isa<ExtractElementInst>(RHS))
 6194           if (!isa<ExtractElementInst>(LHS) || !isa<ExtractElementInst>(RHS))
 6848                     [](Value *V) { return isa<ExtractElementInst>(V); }) &&
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGExprScalar.cpp
 1818         llvm::ExtractElementInst *EI = cast<llvm::ExtractElementInst>(Init);
 1818         llvm::ExtractElementInst *EI = cast<llvm::ExtractElementInst>(Init);
tools/llvm-stress/llvm-stress.cpp
  484     Value *V = ExtractElementInst::Create(Val0,
usr/include/c++/7.4.0/type_traits
 1983     { typedef _Up     type; };