Lines Matching refs:Mask
227 int llvm::getSplatIndex(ArrayRef<int> Mask) { in getSplatIndex() argument
229 for (int M : Mask) { in getSplatIndex()
310 bool llvm::getShuffleDemandedElts(int SrcWidth, ArrayRef<int> Mask, in getShuffleDemandedElts() argument
320 if (all_of(Mask, [](int Elt) { return Elt == 0; })) { in getShuffleDemandedElts()
325 for (unsigned I = 0, E = Mask.size(); I != E; ++I) { in getShuffleDemandedElts()
326 int M = Mask[I]; in getShuffleDemandedElts()
347 void llvm::narrowShuffleMaskElts(int Scale, ArrayRef<int> Mask, in narrowShuffleMaskElts() argument
353 ScaledMask.assign(Mask.begin(), Mask.end()); in narrowShuffleMaskElts()
358 for (int MaskElt : Mask) { in narrowShuffleMaskElts()
368 bool llvm::widenShuffleMaskElts(int Scale, ArrayRef<int> Mask, in widenShuffleMaskElts() argument
374 ScaledMask.assign(Mask.begin(), Mask.end()); in widenShuffleMaskElts()
379 int NumElts = Mask.size(); in widenShuffleMaskElts()
388 ArrayRef<int> MaskSlice = Mask.take_front(Scale); in widenShuffleMaskElts()
409 Mask = Mask.drop_front(Scale); in widenShuffleMaskElts()
410 } while (!Mask.empty()); in widenShuffleMaskElts()
419 void llvm::getShuffleMaskWithWidestElts(ArrayRef<int> Mask, in getShuffleMaskWithWidestElts() argument
423 ArrayRef<int> InputMask = Mask; in getShuffleMaskWithWidestElts()
434 ArrayRef<int> Mask, unsigned NumOfSrcRegs, unsigned NumOfDestRegs, in processShuffleMasks() argument
443 int Sz = Mask.size(); in processShuffleMasks()
455 if (Mask[Idx] >= Sz || Mask[Idx] == PoisonMaskElem) in processShuffleMasks()
457 int SrcRegIdx = Mask[Idx] / SzSrc; in processShuffleMasks()
462 RegMasks[SrcRegIdx][K] = Mask[Idx] % SzSrc; in processShuffleMasks()
469 count_if(Dest, [](ArrayRef<int> Mask) { return !Mask.empty(); }); in processShuffleMasks() argument
478 find_if(Dest, [](ArrayRef<int> Mask) { return !Mask.empty(); }); in processShuffleMasks() argument
500 auto &&NormalizeMask = [](MutableArrayRef<int> Mask) { in processShuffleMasks() argument
501 for (int Idx = 0, VF = Mask.size(); Idx < VF; ++Idx) { in processShuffleMasks()
502 if (Mask[Idx] != PoisonMaskElem) in processShuffleMasks()
503 Mask[Idx] = Idx; in processShuffleMasks()
841 SmallVector<Constant *, 16> Mask; in createBitMaskForGaps() local
845 Mask.push_back(Builder.getInt1(HasMember)); in createBitMaskForGaps()
848 return ConstantVector::get(Mask); in createBitMaskForGaps()
863 SmallVector<int, 16> Mask; in createInterleaveMask() local
866 Mask.push_back(j * VF + i); in createInterleaveMask()
868 return Mask; in createInterleaveMask()
873 SmallVector<int, 16> Mask; in createStrideMask() local
875 Mask.push_back(Start + i * Stride); in createStrideMask()
877 return Mask; in createStrideMask()
883 SmallVector<int, 16> Mask; in createSequentialMask() local
885 Mask.push_back(Start + i); in createSequentialMask()
888 Mask.push_back(-1); in createSequentialMask()
890 return Mask; in createSequentialMask()
893 llvm::SmallVector<int, 16> llvm::createUnaryMask(ArrayRef<int> Mask, in createUnaryMask() argument
902 for (int MaskElt : Mask) { in createUnaryMask()
963 bool llvm::maskIsAllZeroOrUndef(Value *Mask) { in maskIsAllZeroOrUndef() argument
964 assert(isa<VectorType>(Mask->getType()) && in maskIsAllZeroOrUndef()
965 isa<IntegerType>(Mask->getType()->getScalarType()) && in maskIsAllZeroOrUndef()
966 cast<IntegerType>(Mask->getType()->getScalarType())->getBitWidth() == in maskIsAllZeroOrUndef()
970 auto *ConstMask = dyn_cast<Constant>(Mask); in maskIsAllZeroOrUndef()
989 bool llvm::maskIsAllOneOrUndef(Value *Mask) { in maskIsAllOneOrUndef() argument
990 assert(isa<VectorType>(Mask->getType()) && in maskIsAllOneOrUndef()
991 isa<IntegerType>(Mask->getType()->getScalarType()) && in maskIsAllOneOrUndef()
992 cast<IntegerType>(Mask->getType()->getScalarType())->getBitWidth() == in maskIsAllOneOrUndef()
996 auto *ConstMask = dyn_cast<Constant>(Mask); in maskIsAllOneOrUndef()
1015 bool llvm::maskContainsAllOneOrUndef(Value *Mask) { in maskContainsAllOneOrUndef() argument
1016 assert(isa<VectorType>(Mask->getType()) && in maskContainsAllOneOrUndef()
1017 isa<IntegerType>(Mask->getType()->getScalarType()) && in maskContainsAllOneOrUndef()
1018 cast<IntegerType>(Mask->getType()->getScalarType())->getBitWidth() == in maskContainsAllOneOrUndef()
1022 auto *ConstMask = dyn_cast<Constant>(Mask); in maskContainsAllOneOrUndef()
1042 APInt llvm::possiblyDemandedEltsInMask(Value *Mask) { in possiblyDemandedEltsInMask() argument
1043 assert(isa<FixedVectorType>(Mask->getType()) && in possiblyDemandedEltsInMask()
1044 isa<IntegerType>(Mask->getType()->getScalarType()) && in possiblyDemandedEltsInMask()
1045 cast<IntegerType>(Mask->getType()->getScalarType())->getBitWidth() == in possiblyDemandedEltsInMask()
1050 cast<FixedVectorType>(Mask->getType())->getNumElements(); in possiblyDemandedEltsInMask()
1052 if (auto *CV = dyn_cast<ConstantVector>(Mask)) in possiblyDemandedEltsInMask()