reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1664 IRBuilder<>::InsertPointGuard Guard(Builder); 1666 Builder.SetInsertPoint(LoopVectorPreHeader->getTerminator()); 1669 Value *Shuf = Builder.CreateVectorSplat(VF, V, "broadcast"); 1681 auto CurrIP = Builder.saveIP(); 1682 Builder.SetInsertPoint(LoopVectorPreHeader->getTerminator()); 1687 Step = Builder.CreateTrunc(Step, TruncType); 1688 Start = Builder.CreateCast(Instruction::Trunc, Start, TruncType); 1690 Value *SplatStart = Builder.CreateVectorSplat(VF, Start); 1709 Value *Mul = addFastMathFlag(Builder.CreateBinOp(MulOp, Step, ConstVF)); 1718 : Builder.CreateVectorSplat(VF, Mul); 1719 Builder.restoreIP(CurrIP); 1735 Builder.CreateBinOp(AddOp, LastInduction, SplatVF, "step.add"))); 1851 ? Builder.CreateSExtOrTrunc(Induction, IV->getType()) 1852 : Builder.CreateCast(Instruction::SIToFP, Induction, 1854 ScalarIV = emitTransformedIndex(Builder, ScalarIV, PSE.getSE(), DL, ID); 1861 ScalarIV = Builder.CreateTrunc(ScalarIV, TruncType); 1862 Step = Builder.CreateTrunc(Step, TruncType); 1912 Step = Builder.CreateVectorSplat(VLen, Step); 1916 Step = Builder.CreateMul(Cv, Step); 1917 return Builder.CreateAdd(Val, Step, "induction"); 1930 Step = Builder.CreateVectorSplat(VLen, Step); 1936 Value *MulOp = Builder.CreateFMul(Cv, Step); 1941 Value *BOp = Builder.CreateBinOp(BinOp, Val, MulOp, "induction"); 1980 auto *Mul = addFastMathFlag(Builder.CreateBinOp(MulOp, StartIdx, Step)); 1981 auto *Add = addFastMathFlag(Builder.CreateBinOp(AddOp, ScalarIV, Mul)); 2028 auto OldIP = Builder.saveIP(); 2030 Builder.SetInsertPoint(&*NewIP); 2050 Builder.restoreIP(OldIP); 2092 return Builder.CreateExtractElement(U, Builder.getInt32(Instance.Lane)); 2092 return Builder.CreateExtractElement(U, Builder.getInt32(Instance.Lane)); 2103 VectorValue = Builder.CreateInsertElement(VectorValue, ScalarInst, 2104 Builder.getInt32(Instance.Lane)); 2112 ShuffleMask.push_back(Builder.getInt32(VF - i - 1)); 2114 return Builder.CreateShuffleVector(Vec, UndefValue::get(Vec->getType()), 2178 setDebugLocFromInst(Builder, Ptr); 2218 NewPtr = Builder.CreateGEP(ScalarTy, NewPtr, Builder.getInt32(-Index)); 2218 NewPtr = Builder.CreateGEP(ScalarTy, NewPtr, Builder.getInt32(-Index)); 2223 NewPtrs.push_back(Builder.CreateBitCast(NewPtr, PtrTy)); 2226 setDebugLocFromInst(Builder, Instr); 2231 MaskForGaps = createBitMaskForGaps(Builder, VF, *Group); 2247 auto *RepMask = createReplicatedMask(Builder, InterleaveFactor, VF); 2248 Value *ShuffledMask = Builder.CreateShuffleVector( 2251 ? Builder.CreateBinOp(Instruction::And, ShuffledMask, 2256 Builder.CreateMaskedLoad(NewPtrs[Part], Group->getAlignment(), 2260 NewLoad = Builder.CreateAlignedLoad(VecTy, NewPtrs[Part], 2275 Constant *StrideMask = createStrideMask(Builder, I, InterleaveFactor, VF); 2277 Value *StridedVec = Builder.CreateShuffleVector( 2321 Value *WideVec = concatenateVectors(Builder, StoredVecs); 2324 Constant *IMask = createInterleaveMask(Builder, VF, InterleaveFactor); 2325 Value *IVec = Builder.CreateShuffleVector(WideVec, UndefVec, IMask, 2331 auto *RepMask = createReplicatedMask(Builder, InterleaveFactor, VF); 2332 Value *ShuffledMask = Builder.CreateShuffleVector( 2334 NewStoreInstr = Builder.CreateMaskedStore( 2338 NewStoreInstr = Builder.CreateAlignedStore(IVec, NewPtrs[Part], 2405 Builder.CreateGEP(ScalarDataTy, Ptr, Builder.getInt32(-Part * VF))); 2405 Builder.CreateGEP(ScalarDataTy, Ptr, Builder.getInt32(-Part * VF))); 2408 Builder.CreateGEP(ScalarDataTy, PartPtr, Builder.getInt32(1 - VF))); 2408 Builder.CreateGEP(ScalarDataTy, PartPtr, Builder.getInt32(1 - VF))); 2414 Builder.CreateGEP(ScalarDataTy, Ptr, Builder.getInt32(Part * VF))); 2414 Builder.CreateGEP(ScalarDataTy, Ptr, Builder.getInt32(Part * VF))); 2418 return Builder.CreateBitCast(PartPtr, DataTy->getPointerTo(AddressSpace)); 2423 setDebugLocFromInst(Builder, SI); 2431 NewSI = Builder.CreateMaskedScatter(StoredVal, VectorGep, 2443 NewSI = Builder.CreateMaskedStore(StoredVal, VecPtr, 2447 Builder.CreateAlignedStore(StoredVal, VecPtr, Alignment.value()); 2456 setDebugLocFromInst(Builder, LI); 2462 NewLI = Builder.CreateMaskedGather(VectorGep, Alignment.value(), MaskPart, 2468 NewLI = Builder.CreateMaskedLoad(VecPtr, Alignment.value(), Mask[Part], 2472 NewLI = Builder.CreateAlignedLoad(DataTy, VecPtr, Alignment.value(), 2489 setDebugLocFromInst(Builder, Instr); 2507 Builder.Insert(Cloned); 2660 return Builder.CreateBitOrPointerCast(V, DstVTy); 2673 Value *CastVal = Builder.CreateBitOrPointerCast(V, VecIntTy); 2674 return Builder.CreateBitOrPointerCast(CastVal, DstVTy); 3051 Value *CmpN = Builder.getTrue(); 3069 Builder.SetInsertPoint(&*VecBody->getFirstInsertionPt()); 3534 Builder.SetInsertPoint(LoopVectorPreHeader->getTerminator()); 3535 VectorInit = Builder.CreateInsertElement( 3537 Builder.getInt32(VF - 1), "vector.recur.init"); 3542 Builder.SetInsertPoint( 3547 auto *VecPhi = Builder.CreatePHI(VectorInit->getType(), 2, "vector.recur"); 3561 Builder.SetInsertPoint(&*LoopVectorBody->getFirstInsertionPt()); 3563 Builder.SetInsertPoint( 3569 ShuffleMask[0] = Builder.getInt32(VF - 1); 3571 ShuffleMask[I] = Builder.getInt32(I + VF - 1); 3582 VF > 1 ? Builder.CreateShuffleVector(Incoming, PreviousPart, 3598 Builder.SetInsertPoint(LoopMiddleBlock->getTerminator()); 3599 ExtractForScalar = Builder.CreateExtractElement( 3600 ExtractForScalar, Builder.getInt32(VF - 1), "vector.recur.extract"); 3609 ExtractForPhiUsedOutsideLoop = Builder.CreateExtractElement( 3610 Incoming, Builder.getInt32(VF - 2), "vector.recur.extract.for.phi"); 3619 Builder.SetInsertPoint(&*LoopScalarPreHeader->begin()); 3620 auto *Start = Builder.CreatePHI(Phi->getType(), 2, "scalar.recur.init"); 3642 Constant *Zero = Builder.getInt32(0); 3654 setDebugLocFromInst(Builder, ReductionStartValue); 3660 Builder.SetInsertPoint(LoopVectorPreHeader->getTerminator()); 3676 Builder.CreateVectorSplat(VF, ReductionStartValue, "minmax.ident"); 3693 Builder.CreateInsertElement(Identity, ReductionStartValue, Zero); 3718 Builder.SetInsertPoint(&*LoopMiddleBlock->getFirstInsertionPt()); 3720 setDebugLocFromInst(Builder, LoopExitInst); 3747 Builder.SetInsertPoint( 3752 Value *Trunc = Builder.CreateTrunc(RdxParts[Part], RdxVecTy); 3753 Value *Extnd = RdxDesc.isSigned() ? Builder.CreateSExt(Trunc, VecTy) 3754 : Builder.CreateZExt(Trunc, VecTy); 3764 Builder.SetInsertPoint(&*LoopMiddleBlock->getFirstInsertionPt()); 3766 RdxParts[Part] = Builder.CreateTrunc(RdxParts[Part], RdxVecTy); 3782 setDebugLocFromInst(Builder, LoopMiddleBlock->getTerminator()); 3788 Builder.CreateBinOp((Instruction::BinaryOps)Op, RdxPart, 3792 ReducedPartRdx = createMinMaxOp(Builder, MinMaxKind, ReducedPartRdx, 3799 createTargetReduction(Builder, TTI, RdxDesc, ReducedPartRdx, NoNaN); 3805 ? Builder.CreateSExt(ReducedPartRdx, Phi->getType()) 3806 : Builder.CreateZExt(ReducedPartRdx, Phi->getType()); 3856 Builder.SetInsertPoint(LoopMiddleBlock->getTerminator()); 3945 Builder.SetInsertPoint(NewPhi); 3974 Value *VecPhi = Builder.CreatePHI(VecTy, PN->getNumOperands(), "vec.phi"); 4000 setDebugLocFromInst(Builder, P); 4022 PtrInd = Builder.CreateSExtOrTrunc(PtrInd, II.getStep()->getType()); 4032 Value *GlobalIdx = Builder.CreateAdd(PtrInd, Idx); 4034 emitTransformedIndex(Builder, GlobalIdx, PSE.getSE(), DL, II); 4088 auto *Clone = Builder.Insert(GEP->clone()); 4090 Value *EntryPart = Builder.CreateVectorSplat(VF, Clone); 4124 ? Builder.CreateInBoundsGEP(GEP->getSourceElementType(), Ptr, 4126 : Builder.CreateGEP(GEP->getSourceElementType(), Ptr, Indices); 4156 setDebugLocFromInst(Builder, &I); 4163 Value *V = Builder.CreateNAryOp(I.getOpcode(), Ops); 4182 setDebugLocFromInst(Builder, &I); 4196 Builder.CreateSelect(InvariantCond ? ScalarCond : Cond, Op0, Op1); 4209 setDebugLocFromInst(Builder, Cmp); 4216 IRBuilder<>::FastMathFlagGuard FMFG(Builder); 4217 Builder.setFastMathFlags(Cmp->getFastMathFlags()); 4218 C = Builder.CreateFCmp(Cmp->getPredicate(), A, B); 4220 C = Builder.CreateICmp(Cmp->getPredicate(), A, B); 4242 setDebugLocFromInst(Builder, CI); 4250 Value *Cast = Builder.CreateCast(CI->getOpcode(), A, DestTy); 4261 setDebugLocFromInst(Builder, &I); 4320 CallInst *V = Builder.CreateCall(VectorF, Args, OpBundles); 6500 DT, ILV.Builder, ILV.VectorLoopValueMap, 6573 Value *MulOp = addFastMathFlag(Builder.CreateFMul(C, Step)); 6574 return addFastMathFlag(Builder.CreateBinOp(BinOp, Val, MulOp)); 6577 return Builder.CreateAdd(Val, Builder.CreateMul(C, Step), "induction"); 6577 return Builder.CreateAdd(Val, Builder.CreateMul(C, Step), "induction");