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

References

lib/Transforms/Vectorize/LoopVectorize.cpp
  816       auto NewDIL = DIL->cloneByMultiplyingDuplicationFactor(UF * VF);
 1669   Value *Shuf = Builder.CreateVectorSplat(VF, V, "broadcast");
 1690   Value *SplatStart = Builder.CreateVectorSplat(VF, Start);
 1708   Value *ConstVF = getSignedIntOrFpConstant(Step->getType(), VF);
 1717                        ? ConstantVector::getSplat(VF, cast<Constant>(Mul))
 1718                        : Builder.CreateVectorSplat(VF, Mul);
 1752   return Cost->isScalarAfterVectorization(I, VF) ||
 1753          Cost->isProfitableToScalarize(I, VF);
 1818   auto NeedsScalarIV = VF > 1 && needsScalarInduction(EntryVal);
 1837   if (VF > 1 && !shouldScalarizeInstruction(EntryVal)) {
 1873           getStepVector(Broadcasted, VF * Part, Step, ID.getInductionOpcode());
 1951   assert(VF > 1 && "VF should be greater than one");
 1974       Cost->isUniformAfterVectorization(cast<Instruction>(EntryVal), VF) ? 1
 1975                                                                          : VF;
 1979       auto *StartIdx = getSignedIntOrFpConstant(ScalarIVTy, VF * Part + Lane);
 2013     if (VF == 1) {
 2022     unsigned LastLane = Cost->isUniformAfterVectorization(I, VF) ? 0 : VF - 1;
 2022     unsigned LastLane = Cost->isUniformAfterVectorization(I, VF) ? 0 : VF - 1;
 2039     if (Cost->isUniformAfterVectorization(I, VF)) {
 2044       Value *Undef = UndefValue::get(VectorType::get(V->getType(), VF));
 2046       for (unsigned Lane = 0; Lane < VF; ++Lane)
 2070              ? !Cost->isUniformAfterVectorization(cast<Instruction>(V), VF)
 2085     assert(VF == 1 && "Value not scalarized has non-vector type");
 2111   for (unsigned i = 0; i < VF; ++i)
 2112     ShuffleMask.push_back(Builder.getInt32(VF - i - 1));
 2174   Type *VecTy = VectorType::get(ScalarTy, InterleaveFactor * VF);
 2198     Index += (VF - 1) * Group->getFactor();
 2231     MaskForGaps = createBitMaskForGaps(Builder, VF, *Group);
 2247           auto *RepMask = createReplicatedMask(Builder, InterleaveFactor, VF);
 2275       Constant *StrideMask = createStrideMask(Builder, I, InterleaveFactor, VF);
 2282           VectorType *OtherVTy = VectorType::get(Member->getType(), VF);
 2296   VectorType *SubVT = VectorType::get(ScalarTy, VF);
 2324     Constant *IMask = createInterleaveMask(Builder, VF, InterleaveFactor);
 2331       auto *RepMask = createReplicatedMask(Builder, InterleaveFactor, VF);
 2354       Cost->getWideningDecision(Instr, VF);
 2361   Type *DataTy = VectorType::get(ScalarDataTy, VF);
 2405           Builder.CreateGEP(ScalarDataTy, Ptr, Builder.getInt32(-Part * VF)));
 2408           Builder.CreateGEP(ScalarDataTy, PartPtr, Builder.getInt32(1 - VF)));
 2414           Builder.CreateGEP(ScalarDataTy, Ptr, Builder.getInt32(Part * VF)));
 2609   Constant *Step = ConstantInt::get(Ty, VF * UF);
 2618     assert(isPowerOf2_32(VF * UF) &&
 2620     TC = Builder.CreateAdd(TC, ConstantInt::get(Ty, VF * UF - 1), "n.rnd.up");
 2637   if (VF > 1 && Cost->requiresScalarEpilogue()) {
 2695         P, Count, ConstantInt::get(Count->getType(), VF * UF),
 2985   Constant *Step = ConstantInt::get(IdxTy, VF * UF);
 3417   if (VF > 1)
 3533   if (VF > 1) {
 3536         UndefValue::get(VectorType::get(VectorInit->getType(), VF)), VectorInit,
 3537         Builder.getInt32(VF - 1), "vector.recur.init");
 3568   SmallVector<Constant *, 8> ShuffleMask(VF);
 3569   ShuffleMask[0] = Builder.getInt32(VF - 1);
 3570   for (unsigned I = 1; I < VF; ++I)
 3571     ShuffleMask[I] = Builder.getInt32(I + VF - 1);
 3582         VF > 1 ? Builder.CreateShuffleVector(Incoming, PreviousPart,
 3597   if (VF > 1) {
 3600         ExtractForScalar, Builder.getInt32(VF - 1), "vector.recur.extract");
 3608   if (VF > 1)
 3610         Incoming, Builder.getInt32(VF - 2), "vector.recur.extract.for.phi");
 3672     if (VF == 1) {
 3676         Builder.CreateVectorSplat(VF, ReductionStartValue, "minmax.ident");
 3682     if (VF == 1) {
 3688       Identity = ConstantVector::getSplat(VF, Iden);
 3745   if (VF > 1 && Phi->getType() != RdxDesc.getRecurrenceType()) {
 3746     Type *RdxVecTy = VectorType::get(RdxDesc.getRecurrenceType(), VF);
 3796   if (VF > 1) {
 3851                          cast<Instruction>(IncomingValue), VF)
 3853                          : VF - 1;
 4075     if (VF > 1 && OrigLoop->hasLoopInvariantOperands(GEP)) {
 4090         Value *EntryPart = Builder.CreateVectorSplat(VF, Clone);
 4127         assert((VF == 1 || NewGEP->getType()->isVectorTy()) &&
 4246         (VF == 1) ? CI->getType() : VectorType::get(CI->getType(), VF);
 4246         (VF == 1) ? CI->getType() : VectorType::get(CI->getType(), VF);
 4268     Type *RetTy = ToVectorTy(CI->getType(), VF);
 4271       Tys.push_back(ToVectorTy(ArgOperand->getType(), VF));
 4279     unsigned CallCost = Cost->getVectorCallCost(CI, VF, NeedToScalarize);
 4281         ID && Cost->getVectorIntrinsicCost(CI, VF) <= CallCost;
 4300         if (VF > 1)
 4301           TysForDecl[0] = VectorType::get(CI->getType()->getScalarType(), VF);
 4305         StringRef VFnName = TLI->getVectorizedFunction(FnName, VF);