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

Declarations

include/llvm/IR/Instruction.def
  215 HANDLE_OTHER_INST(62, InsertElement, InsertElementInst)  // insert into vector
include/llvm/Transforms/Vectorize/SLPVectorizer.h
   37 class InsertElementInst;

References

include/llvm/IR/IRBuilder.h
  845   InstTy *Insert(InstTy *I, const Twine &Name = "") const {
  845   InstTy *Insert(InstTy *I, const Twine &Name = "") const {
 2350     return Insert(InsertElementInst::Create(Vec, NewElt, Idx), Name);
include/llvm/IR/InstVisitor.h
  194   RetTy visitInsertElementInst(InsertElementInst &I) { DELEGATE(Instruction);}
include/llvm/IR/Instructions.h
 1925   InsertElementInst *cloneImpl() const;
 1928   static InsertElementInst *Create(Value *Vec, Value *NewElt, Value *Idx,
 1931     return new(3) InsertElementInst(Vec, NewElt, Idx, NameStr, InsertBefore);
 1934   static InsertElementInst *Create(Value *Vec, Value *NewElt, Value *Idx,
 1937     return new(3) InsertElementInst(Vec, NewElt, Idx, NameStr, InsertAtEnd);
 1965   public FixedNumOperandTraits<InsertElementInst, 3> {
include/llvm/IR/NoFolder.h
  324     return InsertElementInst::Create(Vec, NewElt, 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/Transforms/Vectorize/SLPVectorizer.h
  125   bool vectorizeInsertElementInst(InsertElementInst *IEI, BasicBlock *BB,
lib/Analysis/CFLGraph.h
  475     void visitInsertElementInst(InsertElementInst &Inst) {
lib/Analysis/InstructionSimplify.cpp
 5347     auto *IE = cast<InsertElementInst>(I);
 5347     auto *IE = cast<InsertElementInst>(I);
lib/Analysis/Lint.cpp
  120     void visitInsertElementInst(InsertElementInst &I);
  633 void Lint::visitInsertElementInst(InsertElementInst &I) {
lib/Analysis/TargetTransformInfo.cpp
 1277     const InsertElementInst * IE = cast<InsertElementInst>(I);
 1277     const InsertElementInst * IE = cast<InsertElementInst>(I);
lib/Analysis/VectorUtils.cpp
  271   if (InsertElementInst *III = dyn_cast<InsertElementInst>(V)) {
  271   if (InsertElementInst *III = dyn_cast<InsertElementInst>(V)) {
lib/AsmParser/LLParser.cpp
 3643       if (!InsertElementInst::isValidOperands(Elts[0], Elts[1], Elts[2]))
 6629   if (!InsertElementInst::isValidOperands(Op0, Op1, Op2))
 6632   Inst = InsertElementInst::Create(Op0, Op1, Op2);
lib/Bitcode/Reader/BitcodeReader.cpp
 4151       I = InsertElementInst::Create(Vec, Elt, Idx);
lib/ExecutionEngine/Interpreter/Execution.cpp
 1832 void Interpreter::visitInsertElementInst(InsertElementInst &I) {
lib/ExecutionEngine/Interpreter/Interpreter.h
  164   void visitInsertElementInst(InsertElementInst &I);
lib/FuzzMutate/Operations.cpp
  288     return InsertElementInst::Create(Srcs[0], Srcs[1], Srcs[2], "I", Inst);
lib/IR/Constants.cpp
 3008     return InsertElementInst::Create(Ops[0], Ops[1], Ops[2]);
lib/IR/Instructions.cpp
 1747                 OperandTraits<InsertElementInst>::op_begin(this),
 1761                 OperandTraits<InsertElementInst>::op_begin(this),
 4244 InsertElementInst *InsertElementInst::cloneImpl() const {
 4245   return InsertElementInst::Create(getOperand(0), getOperand(1), getOperand(2));
lib/IR/Verifier.cpp
  457   void visitInsertElementInst(InsertElementInst &EI);
 3259 void Verifier::visitInsertElementInst(InsertElementInst &IE) {
lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
  709   if (const InsertElementInst *IE = dyn_cast<InsertElementInst>(U)) {
  709   if (const InsertElementInst *IE = dyn_cast<InsertElementInst>(U)) {
lib/Target/SystemZ/SystemZISelLowering.cpp
  894       if (isa<InsertElementInst>(LoadUser))
lib/Target/X86/X86FastISel.cpp
 3030     while (auto *IE = dyn_cast<InsertElementInst>(Op)) {
lib/Transforms/InstCombine/InstCombineCasts.cpp
  663   auto *InsElt = dyn_cast<InsertElementInst>(Trunc.getOperand(0));
  663   auto *InsElt = dyn_cast<InsertElementInst>(Trunc.getOperand(0));
  678     return InsertElementInst::Create(NarrowUndef, NarrowOp, Index);
 2364       return InsertElementInst::Create(UndefValue::get(DestTy), Elem,
 2404       if (auto *InsElt = dyn_cast<InsertElementInst>(Src))
 2404       if (auto *InsElt = dyn_cast<InsertElementInst>(Src))
lib/Transforms/InstCombine/InstCombineInternal.h
  442   Instruction *visitInsertElementInst(InsertElementInst &IE);
lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
 1333         Instruction *New = InsertElementInst::Create(
lib/Transforms/InstCombine/InstCombineVectorOps.cpp
  396     if (auto *IE = dyn_cast<InsertElementInst>(I)) {
  396     if (auto *IE = dyn_cast<InsertElementInst>(I)) {
  469   if (InsertElementInst *IEI = dyn_cast<InsertElementInst>(V)) {
  469   if (InsertElementInst *IEI = dyn_cast<InsertElementInst>(V)) {
  522 static void replaceExtractElements(InsertElementInst *InsElt,
  569   if (InsElt->hasOneUse() && isa<InsertElementInst>(InsElt->user_back()))
  624   if (InsertElementInst *IEI = dyn_cast<InsertElementInst>(V)) {
  624   if (InsertElementInst *IEI = dyn_cast<InsertElementInst>(V)) {
  747 static Instruction *foldInsSequenceIntoSplat(InsertElementInst &InsElt) {
  750   if (InsElt.hasOneUse() && isa<InsertElementInst>(InsElt.user_back()))
  762   InsertElementInst *CurrIE = &InsElt;
  764   InsertElementInst *FirstIE = nullptr;
  773     auto *NextIE = dyn_cast<InsertElementInst>(CurrIE->getOperand(0));
  773     auto *NextIE = dyn_cast<InsertElementInst>(CurrIE->getOperand(0));
  803     FirstIE = InsertElementInst::Create(UndefVec, SplatVal, Zero, "", &InsElt);
  816 static Instruction *foldInsEltIntoSplat(InsertElementInst &InsElt) {
  850 static Instruction *foldInsEltIntoIdentityShuffle(InsertElementInst &InsElt) {
  906 static Instruction *hoistInsEltConst(InsertElementInst &InsElt2,
  908   auto *InsElt1 = dyn_cast<InsertElementInst>(InsElt2.getOperand(0));
  908   auto *InsElt1 = dyn_cast<InsertElementInst>(InsElt2.getOperand(0));
  921     return InsertElementInst::Create(NewInsElt1, Y, IdxC1);
  929 static Instruction *foldConstantInsEltIntoShuffle(InsertElementInst &InsElt) {
  982   } else if (auto *IEI = dyn_cast<InsertElementInst>(Inst)) {
  982   } else if (auto *IEI = dyn_cast<InsertElementInst>(Inst)) {
 1026 Instruction *InstCombiner::visitInsertElementInst(InsertElementInst &IE) {
 1074       auto *InsertUser = dyn_cast<InsertElementInst>(Insert.user_back());
 1074       auto *InsertUser = dyn_cast<InsertElementInst>(Insert.user_back());
 1386       return InsertElementInst::Create(V, I->getOperand(1),
 1808     return InsertElementInst::Create(V1, Scalar, IndexC);
 1816     return InsertElementInst::Create(V1, Scalar, IndexC);
lib/Transforms/Instrumentation/ControlHeightReduction.cpp
  498       isa<InsertElementInst>(I) || isa<ExtractElementInst>(I) ||
lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
  451   void visitInsertElementInst(InsertElementInst &I);
 1422 void DFSanVisitor::visitInsertElementInst(InsertElementInst &I) {
lib/Transforms/Instrumentation/MemorySanitizer.cpp
 1866   void visitInsertElementInst(InsertElementInst &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
  451   if (isa<InsertElementInst>(I))
  639       !isa<ExtractElementInst>(V) && !isa<InsertElementInst>(V) &&
  792            isa<ExtractElementInst>(BDV) || isa<InsertElementInst>(BDV) ||
  833       } else if (auto *IE = dyn_cast<InsertElementInst>(Current)) {
  833       } else if (auto *IE = dyn_cast<InsertElementInst>(Current)) {
  897       } else if (auto *IE = dyn_cast<InsertElementInst>(BDV)){
  897       } else if (auto *IE = dyn_cast<InsertElementInst>(BDV)){
  979       } else if (auto *IE = dyn_cast<InsertElementInst>(I)) {
  979       } else if (auto *IE = dyn_cast<InsertElementInst>(I)) {
  983         return InsertElementInst::Create(VecUndef, ScalarUndef,
 1092     } else if (auto *BaseIE = dyn_cast<InsertElementInst>(State.getBaseValue())){
 1092     } else if (auto *BaseIE = dyn_cast<InsertElementInst>(State.getBaseValue())){
 1093       auto *BdvIE = cast<InsertElementInst>(BDV);
 1093       auto *BdvIE = cast<InsertElementInst>(BDV);
lib/Transforms/Scalar/Scalarizer.cpp
  275       InsertElementInst *Insert = dyn_cast<InsertElementInst>(V);
  275       InsertElementInst *Insert = dyn_cast<InsertElementInst>(V);
lib/Transforms/Vectorize/LoopVectorize.cpp
 3170     return isa<InsertElementInst>(I) || isa<ExtractElementInst>(I) ||
 3369       } else if (auto *IE = dyn_cast<InsertElementInst>(I)) {
 3369       } else if (auto *IE = dyn_cast<InsertElementInst>(I)) {
 7415     InsertElementInst *IEI = cast<InsertElementInst>(VectorValue);
 7415     InsertElementInst *IEI = cast<InsertElementInst>(VectorValue);
lib/Transforms/Vectorize/SLPVectorizer.cpp
 3621     if (auto *Insrt = dyn_cast<InsertElementInst>(Vec)) {
 3621     if (auto *Insrt = dyn_cast<InsertElementInst>(Vec)) {
 4452       if (!isa<InsertElementInst>(In) && !isa<ExtractElementInst>(In))
 6625 static bool findBuildVector(InsertElementInst *LastInsertElem,
 6641     LastInsertElem = dyn_cast<InsertElementInst>(V);
 6842 bool SLPVectorizerPass::vectorizeInsertElementInst(InsertElementInst *IEI,
 6878     else if (auto *LastInsertElem = dyn_cast<InsertElementInst>(I))
 6878     else if (auto *LastInsertElem = dyn_cast<InsertElementInst>(I))
 7013     if (isa<InsertElementInst>(it) || isa<CmpInst>(it) ||
tools/llvm-stress/llvm-stress.cpp
  528     Value *V = InsertElementInst::Create(Val0, Val1,