|
reference, declaration → definition
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,