Home
last modified time | relevance | path

Searched refs:GEP (Results 1 – 25 of 218) sorted by relevance

123456789

/external/llvm/lib/Transforms/Scalar/
DNaryReassociate.cpp132 Instruction *tryReassociateGEP(GetElementPtrInst *GEP);
140 GetElementPtrInst *tryReassociateGEPAtIndex(GetElementPtrInst *GEP,
144 GetElementPtrInst *tryReassociateGEPAtIndex(GetElementPtrInst *GEP,
174 bool requiresSignExtension(Value *Index, GetElementPtrInst *GEP);
302 static bool isGEPFoldable(GetElementPtrInst *GEP, in isGEPFoldable() argument
305 for (auto I = GEP->idx_begin(); I != GEP->idx_end(); ++I) in isGEPFoldable()
307 return TTI->getGEPCost(GEP->getSourceElementType(), GEP->getPointerOperand(), in isGEPFoldable()
311 Instruction *NaryReassociate::tryReassociateGEP(GetElementPtrInst *GEP) { in tryReassociateGEP() argument
313 if (isGEPFoldable(GEP, TTI)) in tryReassociateGEP()
316 gep_type_iterator GTI = gep_type_begin(*GEP); in tryReassociateGEP()
[all …]
DSeparateConstOffsetFromGEP.cpp220 static Value *Extract(Value *Idx, GetElementPtrInst *GEP,
225 static int64_t Find(Value *Idx, GetElementPtrInst *GEP,
344 bool splitGEP(GetElementPtrInst *GEP);
368 int64_t accumulateByteOffset(GetElementPtrInst *GEP, bool &NeedsExtraction);
384 bool canonicalizeArrayIndicesToPointerSize(GetElementPtrInst *GEP);
690 Value *ConstantOffsetExtractor::Extract(Value *Idx, GetElementPtrInst *GEP, in Extract() argument
693 ConstantOffsetExtractor Extractor(GEP, DT); in Extract()
697 GEP->isInBounds()); in Extract()
708 int64_t ConstantOffsetExtractor::Find(Value *Idx, GetElementPtrInst *GEP, in Find() argument
711 return ConstantOffsetExtractor(GEP, DT) in Find()
[all …]
DStraightLineStrengthReduce.cpp88 GEP, // &B[..][i * S][..] enumerator
173 void allocateCandidatesAndFindBasisForGEP(GetElementPtrInst *GEP);
190 GetElementPtrInst *GEP);
237 static bool isGEPFoldable(GetElementPtrInst *GEP, in isGEPFoldable() argument
240 for (auto I = GEP->idx_begin(); I != GEP->idx_end(); ++I) in isGEPFoldable()
242 return TTI->getGEPCost(GEP->getSourceElementType(), GEP->getPointerOperand(), in isGEPFoldable()
260 if (C.CandidateKind == Candidate::GEP) in isFoldable()
266 static bool hasOnlyOneNonZeroIndex(GetElementPtrInst *GEP) { in hasOnlyOneNonZeroIndex() argument
268 for (auto I = GEP->idx_begin(); I != GEP->idx_end(); ++I) { in hasOnlyOneNonZeroIndex()
285 if (C.CandidateKind == Candidate::GEP) { in isSimplestForm()
[all …]
/external/llvm/lib/Target/NVPTX/
DNVPTXFavorNonGenericAddrSpaces.cpp109 Value *hoistAddrSpaceCastFromGEP(GEPOperator *GEP, int Depth);
149 GEPOperator *GEP, int Depth) { in hoistAddrSpaceCastFromGEP() argument
151 hoistAddrSpaceCastFrom(GEP->getPointerOperand(), Depth + 1); in hoistAddrSpaceCastFromGEP()
159 SmallVector<Value *, 8> Indices(GEP->idx_begin(), GEP->idx_end()); in hoistAddrSpaceCastFromGEP()
161 if (Instruction *GEPI = dyn_cast<Instruction>(GEP)) { in hoistAddrSpaceCastFromGEP()
167 GEP->getSourceElementType(), Cast->getOperand(0), Indices, in hoistAddrSpaceCastFromGEP()
169 NewGEP->setIsInBounds(GEP->isInBounds()); in hoistAddrSpaceCastFromGEP()
170 NewGEP->takeName(GEP); in hoistAddrSpaceCastFromGEP()
171 NewASC = new AddrSpaceCastInst(NewGEP, GEP->getType(), "", GEPI); in hoistAddrSpaceCastFromGEP()
175 GEP->replaceAllUsesWith(NewASC); in hoistAddrSpaceCastFromGEP()
[all …]
/external/swiftshader/third_party/LLVM/include/llvm/Support/
DGetElementPtrTypeIterator.h85 inline gep_type_iterator gep_type_begin(const User *GEP) { in gep_type_begin() argument
86 return gep_type_iterator::begin(GEP->getOperand(0)->getType(), in gep_type_begin()
87 GEP->op_begin()+1); in gep_type_begin()
89 inline gep_type_iterator gep_type_end(const User *GEP) { in gep_type_end() argument
90 return gep_type_iterator::end(GEP->op_end()); in gep_type_end()
92 inline gep_type_iterator gep_type_begin(const User &GEP) { in gep_type_begin() argument
93 return gep_type_iterator::begin(GEP.getOperand(0)->getType(), in gep_type_begin()
94 GEP.op_begin()+1); in gep_type_begin()
96 inline gep_type_iterator gep_type_end(const User &GEP) { in gep_type_end() argument
97 return gep_type_iterator::end(GEP.op_end()); in gep_type_end()
/external/llvm/lib/Transforms/InstCombine/
DInstructionCombining.cpp85 Value *InstCombiner::EmitGEPOffset(User *GEP) { in EmitGEPOffset() argument
86 return llvm::EmitGEPOffset(Builder, DL, GEP); in EmitGEPOffset()
986 static bool shouldMergeGEPs(GEPOperator &GEP, GEPOperator &Src) { in shouldMergeGEPs() argument
990 if (GEP.hasAllZeroIndices() && !Src.hasAllZeroIndices() && in shouldMergeGEPs()
1330 Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) { in visitGetElementPtrInst() argument
1331 SmallVector<Value*, 8> Ops(GEP.op_begin(), GEP.op_end()); in visitGetElementPtrInst()
1333 if (Value *V = SimplifyGEPInst(GEP.getSourceElementType(), Ops, DL, TLI, DT, AC)) in visitGetElementPtrInst()
1334 return replaceInstUsesWith(GEP, V); in visitGetElementPtrInst()
1336 Value *PtrOp = GEP.getOperand(0); in visitGetElementPtrInst()
1342 DL.getIntPtrType(GEP.getPointerOperandType()->getScalarType()); in visitGetElementPtrInst()
[all …]
DInstCombinePHI.cpp139 GetElementPtrInst *GEP= dyn_cast<GetElementPtrInst>(PN.getIncomingValue(i)); in FoldPHIArgGEPIntoPHI() local
140 if (!GEP || !GEP->hasOneUse() || GEP->getType() != FirstInst->getType() || in FoldPHIArgGEPIntoPHI()
141 GEP->getNumOperands() != FirstInst->getNumOperands()) in FoldPHIArgGEPIntoPHI()
144 AllInBounds &= GEP->isInBounds(); in FoldPHIArgGEPIntoPHI()
148 (!isa<AllocaInst>(GEP->getOperand(0)) || in FoldPHIArgGEPIntoPHI()
149 !GEP->hasAllConstantIndices())) in FoldPHIArgGEPIntoPHI()
154 if (FirstInst->getOperand(op) == GEP->getOperand(op)) in FoldPHIArgGEPIntoPHI()
163 isa<ConstantInt>(GEP->getOperand(op))) in FoldPHIArgGEPIntoPHI()
166 if (FirstInst->getOperand(op)->getType() !=GEP->getOperand(op)->getType()) in FoldPHIArgGEPIntoPHI()
268 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(L->getOperand(0))) in isSafeAndProfitableToSinkLoad() local
[all …]
/external/llvm/docs/
DGetElementPtr.rst2 The Often Misunderstood GEP Instruction
12 `GetElementPtr <LangRef.html#i_getelementptr>`_ (GEP) instruction. Questions
13 about the wily GEP instruction are probably the most frequently occurring
15 sources of confusion and show that the GEP instruction is really quite simple.
20 When people are first confronted with the GEP instruction, they tend to relate
22 indexing and field selection. GEP closely resembles C array indexing and field
26 What is the first index of the GEP instruction?
45 provide the GEP instruction with two index operands. The first operand indexes
61 computation. The first operand to the GEP instruction must be a value of a
62 pointer type. The value of the pointer is provided directly to the GEP
[all …]
/external/llvm/include/llvm/IR/
DGetElementPtrTypeIterator.h97 inline gep_type_iterator gep_type_begin(const User *GEP) { in gep_type_begin() argument
98 auto *GEPOp = cast<GEPOperator>(GEP); in gep_type_begin()
103 GEP->op_begin() + 1); in gep_type_begin()
105 inline gep_type_iterator gep_type_end(const User *GEP) { in gep_type_end() argument
106 return gep_type_iterator::end(GEP->op_end()); in gep_type_end()
108 inline gep_type_iterator gep_type_begin(const User &GEP) { in gep_type_begin() argument
109 auto &GEPOp = cast<GEPOperator>(GEP); in gep_type_begin()
114 GEP.op_begin() + 1); in gep_type_begin()
116 inline gep_type_iterator gep_type_end(const User &GEP) { in gep_type_end() argument
117 return gep_type_iterator::end(GEP.op_end()); in gep_type_end()
/external/swiftshader/third_party/LLVM/lib/Transforms/InstCombine/
DInstructionCombining.cpp789 static bool shouldMergeGEPs(GEPOperator &GEP, GEPOperator &Src) { in shouldMergeGEPs() argument
793 if (GEP.hasAllZeroIndices() && !Src.hasAllZeroIndices() && in shouldMergeGEPs()
799 Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) { in visitGetElementPtrInst() argument
800 SmallVector<Value*, 8> Ops(GEP.op_begin(), GEP.op_end()); in visitGetElementPtrInst()
803 return ReplaceInstUsesWith(GEP, V); in visitGetElementPtrInst()
805 Value *PtrOp = GEP.getOperand(0); in visitGetElementPtrInst()
811 Type *IntPtrTy = TD->getIntPtrType(GEP.getContext()); in visitGetElementPtrInst()
813 gep_type_iterator GTI = gep_type_begin(GEP); in visitGetElementPtrInst()
814 for (User::op_iterator I = GEP.op_begin() + 1, E = GEP.op_end(); in visitGetElementPtrInst()
837 if (MadeChange) return &GEP; in visitGetElementPtrInst()
[all …]
DInstCombineAddSub.cpp401 Value *InstCombiner::EmitGEPOffset(User *GEP) { in EmitGEPOffset() argument
403 gep_type_iterator GTI = gep_type_begin(GEP); in EmitGEPOffset()
404 Type *IntPtrTy = TD.getIntPtrType(GEP->getContext()); in EmitGEPOffset()
409 bool isInBounds = cast<GEPOperator>(GEP)->isInBounds(); in EmitGEPOffset()
415 for (User::op_iterator i = GEP->op_begin() + 1, e = GEP->op_end(); i != e; in EmitGEPOffset()
428 GEP->getName()+".offs"); in EmitGEPOffset()
437 Result = Builder->CreateAdd(Result, Scale, GEP->getName()+".offs"); in EmitGEPOffset()
446 GEP->getName()+".idx", isInBounds /*NUW*/); in EmitGEPOffset()
450 Result = Builder->CreateAdd(Op, Result, GEP->getName()+".offs"); in EmitGEPOffset()
469 GetElementPtrInst *GEP = 0; in OptimizePointerDifference() local
[all …]
DInstCombinePHI.cpp148 GetElementPtrInst *GEP= dyn_cast<GetElementPtrInst>(PN.getIncomingValue(i)); in FoldPHIArgGEPIntoPHI() local
149 if (!GEP || !GEP->hasOneUse() || GEP->getType() != FirstInst->getType() || in FoldPHIArgGEPIntoPHI()
150 GEP->getNumOperands() != FirstInst->getNumOperands()) in FoldPHIArgGEPIntoPHI()
153 AllInBounds &= GEP->isInBounds(); in FoldPHIArgGEPIntoPHI()
157 (!isa<AllocaInst>(GEP->getOperand(0)) || in FoldPHIArgGEPIntoPHI()
158 !GEP->hasAllConstantIndices())) in FoldPHIArgGEPIntoPHI()
163 if (FirstInst->getOperand(op) == GEP->getOperand(op)) in FoldPHIArgGEPIntoPHI()
172 isa<ConstantInt>(GEP->getOperand(op))) in FoldPHIArgGEPIntoPHI()
175 if (FirstInst->getOperand(op)->getType() !=GEP->getOperand(op)->getType()) in FoldPHIArgGEPIntoPHI()
279 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(L->getOperand(0))) in isSafeAndProfitableToSinkLoad() local
[all …]
/external/llvm/include/llvm/Transforms/Utils/
DLocal.h188 Value *EmitGEPOffset(IRBuilderTy *Builder, const DataLayout &DL, User *GEP,
190 GEPOperator *GEPOp = cast<GEPOperator>(GEP);
191 Type *IntPtrTy = DL.getIntPtrType(GEP->getType());
202 gep_type_iterator GTI = gep_type_begin(GEP);
203 for (User::op_iterator i = GEP->op_begin() + 1, e = GEP->op_end(); i != e;
221 GEP->getName()+".offs");
229 Result = Builder->CreateAdd(Result, Scale, GEP->getName()+".offs");
238 GEP->getName()+".idx", isInBounds /*NUW*/);
242 Result = Builder->CreateAdd(Op, Result, GEP->getName()+".offs");
/external/llvm/lib/Analysis/
DPHITransAddr.cpp217 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Inst)) { in PHITranslateSubExpr() local
220 for (unsigned i = 0, e = GEP->getNumOperands(); i != e; ++i) { in PHITranslateSubExpr()
221 Value *GEPOp = PHITranslateSubExpr(GEP->getOperand(i), CurBB, PredBB, DT); in PHITranslateSubExpr()
224 AnyChanged |= GEPOp != GEP->getOperand(i); in PHITranslateSubExpr()
229 return GEP; in PHITranslateSubExpr()
232 if (Value *V = SimplifyGEPInst(GEP->getSourceElementType(), in PHITranslateSubExpr()
244 if (GEPI->getType() == GEP->getType() && in PHITranslateSubExpr()
400 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Inst)) { in InsertPHITranslatedSubExpr() local
402 BasicBlock *CurBB = GEP->getParent(); in InsertPHITranslatedSubExpr()
403 for (unsigned i = 0, e = GEP->getNumOperands(); i != e; ++i) { in InsertPHITranslatedSubExpr()
[all …]
DTypeMetadataUtils.cpp51 } else if (auto GEP = dyn_cast<GetElementPtrInst>(User)) { in findLoadCallsAtConstantOffset() local
53 if (VPtr == GEP->getPointerOperand() && GEP->hasAllConstantIndices()) { in findLoadCallsAtConstantOffset()
54 SmallVector<Value *, 8> Indices(GEP->op_begin() + 1, GEP->op_end()); in findLoadCallsAtConstantOffset()
56 GEP->getSourceElementType(), Indices); in findLoadCallsAtConstantOffset()
/external/swiftshader/third_party/LLVM/lib/Transforms/IPO/
DArgumentPromotion.cpp352 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(V)) { in isSafeToPromoteArgument() local
353 V = GEP->getPointerOperand(); in isSafeToPromoteArgument()
356 Indices.reserve(GEP->getNumIndices()); in isSafeToPromoteArgument()
357 for (User::op_iterator II = GEP->idx_begin(), IE = GEP->idx_end(); in isSafeToPromoteArgument()
390 } else if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(U)) { in isSafeToPromoteArgument() local
391 if (GEP->use_empty()) { in isSafeToPromoteArgument()
394 getAnalysis<AliasAnalysis>().deleteValue(GEP); in isSafeToPromoteArgument()
395 GEP->eraseFromParent(); in isSafeToPromoteArgument()
403 for (User::op_iterator i = GEP->idx_begin(), e = GEP->idx_end(); in isSafeToPromoteArgument()
411 for (Value::use_iterator UI = GEP->use_begin(), E = GEP->use_end(); in isSafeToPromoteArgument()
[all …]
/external/llvm/test/Transforms/InstCombine/
Dunpack-fca.ll16 ; CHECK-NEXT: [[GEP:%[a-z0-9\.]+]] = getelementptr inbounds %A, %A* %a.ptr, i64 0, i32 0
17 ; CHECK-NEXT: store %A__vtbl* @A__vtblZ, %A__vtbl** [[GEP]], align 8
36 ; CHECK-NEXT: [[GEP:%[a-z0-9\.]+]] = getelementptr inbounds { %A }, { %A }* %sa.ptr, i64 0, i32 0, …
37 ; CHECK-NEXT: store %A__vtbl* @A__vtblZ, %A__vtbl** [[GEP]], align 8
45 ; CHECK-NEXT: [[GEP:%[a-z0-9\.]+]] = getelementptr inbounds [1 x %A], [1 x %A]* %aa.ptr, i64 0, i64…
46 ; CHECK-NEXT: store %A__vtbl* @A__vtblZ, %A__vtbl** [[GEP]], align 8
54 ; CHECK-NEXT: [[GEP:%[a-z0-9\.]+]] = getelementptr inbounds { [1 x %A] }, { [1 x %A] }* %saa.ptr, i…
55 ; CHECK-NEXT: store %A__vtbl* @A__vtblZ, %A__vtbl** [[GEP]], align 8
84 ; CHECK-NEXT: [[GEP:%[a-z0-9\.]+]] = getelementptr inbounds %A, %A* %a.ptr, i64 0, i32 0
85 ; CHECK-NEXT: [[LOAD:%[a-z0-9\.]+]] = load %A__vtbl*, %A__vtbl** [[GEP]], align 8
[all …]
/external/swiftshader/third_party/LLVM/lib/Analysis/
DPHITransAddr.cpp216 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Inst)) { in PHITranslateSubExpr() local
219 for (unsigned i = 0, e = GEP->getNumOperands(); i != e; ++i) { in PHITranslateSubExpr()
220 Value *GEPOp = PHITranslateSubExpr(GEP->getOperand(i), CurBB, PredBB, DT); in PHITranslateSubExpr()
223 AnyChanged |= GEPOp != GEP->getOperand(i); in PHITranslateSubExpr()
228 return GEP; in PHITranslateSubExpr()
243 if (GEPI->getType() == GEP->getType() && in PHITranslateSubExpr()
399 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Inst)) { in InsertPHITranslatedSubExpr() local
401 BasicBlock *CurBB = GEP->getParent(); in InsertPHITranslatedSubExpr()
402 for (unsigned i = 0, e = GEP->getNumOperands(); i != e; ++i) { in InsertPHITranslatedSubExpr()
403 Value *OpVal = InsertPHITranslatedSubExpr(GEP->getOperand(i), in InsertPHITranslatedSubExpr()
[all …]
DLoads.cpp61 if (GEPOperator *GEP = dyn_cast<GEPOperator>(V)) { in getUnderlyingObjectWithOffset() local
62 if (!GEP->hasAllConstantIndices()) in getUnderlyingObjectWithOffset()
64 SmallVector<Value*, 8> Indices(GEP->op_begin() + 1, GEP->op_end()); in getUnderlyingObjectWithOffset()
65 ByteOffset += TD->getIndexedOffset(GEP->getPointerOperandType(), in getUnderlyingObjectWithOffset()
67 V = GEP->getPointerOperand(); in getUnderlyingObjectWithOffset()
DValueTracking.cpp1496 GEPOperator *GEP = dyn_cast<GEPOperator>(PtrOp); in GetPointerBaseWithConstantOffset() local
1497 if (GEP == 0 || !GEP->hasAllConstantIndices()) return Ptr; in GetPointerBaseWithConstantOffset()
1499 gep_type_iterator GTI = gep_type_begin(GEP); in GetPointerBaseWithConstantOffset()
1500 for (User::op_iterator I = GEP->idx_begin(), E = GEP->idx_end(); I != E; in GetPointerBaseWithConstantOffset()
1520 return GetPointerBaseWithConstantOffset(GEP->getPointerOperand(), Offset, TD); in GetPointerBaseWithConstantOffset()
1540 const User *GEP = 0; in GetConstantStringInfo() local
1542 GEP = GEPI; in GetConstantStringInfo()
1548 GEP = CE; in GetConstantStringInfo()
1551 if (GEP) { in GetConstantStringInfo()
1553 if (GEP->getNumOperands() != 3) in GetConstantStringInfo()
[all …]
/external/llvm/test/Transforms/DeadStoreElimination/
DOverwriteStoreBegin.ll8 ; CHECK: [[GEP:%[0-9]+]] = getelementptr inbounds i8, i8* %p3, i64 4
9 ; CHECK: call void @llvm.memset.p0i8.i64(i8* [[GEP]], i8 0, i64 24, i32 4, i1 false)
20 ; CHECK: [[GEP:%[0-9]+]] = getelementptr inbounds i8, i8* %p3, i64 4
21 ; CHECK: call void @llvm.memset.p0i8.i64(i8* [[GEP]], i8 0, i64 24, i32 4, i1 false)
31 ; CHECK: [[GEP:%[0-9]+]] = getelementptr inbounds i8, i8* %p3, i64 8
32 ; CHECK: call void @llvm.memset.p0i8.i64(i8* [[GEP]], i8 0, i64 24, i32 4, i1 false)
44 ; CHECK: [[GEP:%[0-9]+]] = getelementptr inbounds i8, i8* %p3, i64 4
45 ; CHECK: call void @llvm.memset.p0i8.i64(i8* [[GEP]], i8 0, i64 24, i32 4, i1 false)
/external/llvm/lib/Transforms/IPO/
DArgumentPromotion.cpp502 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(V)) { in isSafeToPromoteArgument() local
503 V = GEP->getPointerOperand(); in isSafeToPromoteArgument()
506 Indices.reserve(GEP->getNumIndices()); in isSafeToPromoteArgument()
507 for (User::op_iterator II = GEP->idx_begin(), IE = GEP->idx_end(); in isSafeToPromoteArgument()
539 } else if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(UR)) { in isSafeToPromoteArgument() local
540 if (GEP->use_empty()) { in isSafeToPromoteArgument()
543 GEP->eraseFromParent(); in isSafeToPromoteArgument()
552 for (User::op_iterator i = GEP->idx_begin(), e = GEP->idx_end(); in isSafeToPromoteArgument()
560 for (User *GEPU : GEP->users()) in isSafeToPromoteArgument()
983 GetElementPtrInst *GEP = cast<GetElementPtrInst>(I->user_back()); in DoPromotion() local
[all …]
/external/llvm/lib/Target/AMDGPU/
DAMDGPUPromoteAlloca.cpp354 GetElementPtrInst *GEP = cast<GetElementPtrInst>(Ptr); in calculateVectorIndex() local
356 auto I = GEPIdx.find(GEP); in calculateVectorIndex()
360 static Value* GEPToVectorIndex(GetElementPtrInst *GEP) { in GEPToVectorIndex() argument
362 if (GEP->getNumOperands() != 3) in GEPToVectorIndex()
365 ConstantInt *I0 = dyn_cast<ConstantInt>(GEP->getOperand(1)); in GEPToVectorIndex()
369 return GEP->getOperand(2); in GEPToVectorIndex()
409 GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(AllocaUser); in tryPromoteAllocaToVector() local
410 if (!GEP) { in tryPromoteAllocaToVector()
418 Value *Index = GEPToVectorIndex(GEP); in tryPromoteAllocaToVector()
423 DEBUG(dbgs() << " Cannot compute vector index for GEP " << *GEP << '\n'); in tryPromoteAllocaToVector()
[all …]
/external/llvm/test/CodeGen/X86/
Dcodegen-prepare-addrmode-sext.ll2 ; RUN: opt -S -codegenprepare -addr-sink-using-gep=1 %s -o - | FileCheck -check-prefix=CHECK-GEP %s
165 ; CHECK: [[GEP:%[a-zA-Z_0-9-]+]] = getelementptr inbounds i8, i8* %base, i64 [[PROMOTED]]
166 ; CHECK: [[LOAD:%[a-zA-Z_0-9-]+]] = load i8, i8* [[GEP]]
203 ; CHECK: [[GEP:%[a-zA-Z_0-9-]+]] = getelementptr inbounds i8, i8* %base, i64 [[PROMOTED]]
204 ; CHECK: [[LOAD:%[a-zA-Z_0-9-]+]] = load i8, i8* [[GEP]]
223 ; CHECK: [[GEP:%[a-zA-Z_0-9-]+]] = getelementptr inbounds i8, i8* %base, i64 [[PROMOTED]]
224 ; CHECK: [[LOAD:%[a-zA-Z_0-9-]+]] = load i8, i8* [[GEP]]
320 ; CHECK-GEP-LABEL: @checkProfitability
321 ; CHECK-GEP-NOT: {{%[a-zA-Z_0-9-]+}} = sext i32 %arg1 to i64
322 ; CHECK-GEP-NOT: {{%[a-zA-Z_0-9-]+}} = sext i32 %arg2 to i64
[all …]
/external/swiftshader/third_party/LLVM/lib/VMCore/
DValue.cpp322 if (GEPOperator *GEP = dyn_cast<GEPOperator>(V)) { in stripPointerCasts() local
323 if (!GEP->hasAllZeroIndices()) in stripPointerCasts()
325 V = GEP->getPointerOperand(); in stripPointerCasts()
363 if (const GEPOperator *GEP = dyn_cast<GEPOperator>(this)) { in isDereferenceablePointer() local
365 if (!GEP->getOperand(0)->isDereferenceablePointer()) in isDereferenceablePointer()
368 gep_type_iterator GTI = gep_type_begin(GEP); in isDereferenceablePointer()
369 for (User::const_op_iterator I = GEP->op_begin()+1, in isDereferenceablePointer()
370 E = GEP->op_end(); I != E; ++I) { in isDereferenceablePointer()

123456789