Lines Matching refs:Mask

229 int llvm::getSplatIndex(ArrayRef<int> Mask) {  in getSplatIndex()  argument
231 for (int M : Mask) { in getSplatIndex()
312 bool llvm::getShuffleDemandedElts(int SrcWidth, ArrayRef<int> Mask, in getShuffleDemandedElts() argument
322 if (all_of(Mask, [](int Elt) { return Elt == 0; })) { in getShuffleDemandedElts()
327 for (unsigned I = 0, E = Mask.size(); I != E; ++I) { in getShuffleDemandedElts()
328 int M = Mask[I]; in getShuffleDemandedElts()
349 void llvm::narrowShuffleMaskElts(int Scale, ArrayRef<int> Mask, in narrowShuffleMaskElts() argument
355 ScaledMask.assign(Mask.begin(), Mask.end()); in narrowShuffleMaskElts()
360 for (int MaskElt : Mask) { in narrowShuffleMaskElts()
370 bool llvm::widenShuffleMaskElts(int Scale, ArrayRef<int> Mask, in widenShuffleMaskElts() argument
376 ScaledMask.assign(Mask.begin(), Mask.end()); in widenShuffleMaskElts()
381 int NumElts = Mask.size(); in widenShuffleMaskElts()
390 ArrayRef<int> MaskSlice = Mask.take_front(Scale); in widenShuffleMaskElts()
411 Mask = Mask.drop_front(Scale); in widenShuffleMaskElts()
412 } while (!Mask.empty()); in widenShuffleMaskElts()
421 bool llvm::scaleShuffleMaskElts(unsigned NumDstElts, ArrayRef<int> Mask, in scaleShuffleMaskElts() argument
423 unsigned NumSrcElts = Mask.size(); in scaleShuffleMaskElts()
428 ScaledMask.assign(Mask.begin(), Mask.end()); in scaleShuffleMaskElts()
438 return widenShuffleMaskElts(Scale, Mask, ScaledMask); in scaleShuffleMaskElts()
442 narrowShuffleMaskElts(Scale, Mask, ScaledMask); in scaleShuffleMaskElts()
446 void llvm::getShuffleMaskWithWidestElts(ArrayRef<int> Mask, in getShuffleMaskWithWidestElts() argument
450 ArrayRef<int> InputMask = Mask; in getShuffleMaskWithWidestElts()
461 ArrayRef<int> Mask, unsigned NumOfSrcRegs, unsigned NumOfDestRegs, in processShuffleMasks() argument
470 int Sz = Mask.size(); in processShuffleMasks()
482 if (Mask[Idx] >= Sz || Mask[Idx] == PoisonMaskElem) in processShuffleMasks()
484 int SrcRegIdx = Mask[Idx] / SzSrc; in processShuffleMasks()
489 RegMasks[SrcRegIdx][K] = Mask[Idx] % SzSrc; in processShuffleMasks()
496 count_if(Dest, [](ArrayRef<int> Mask) { return !Mask.empty(); }); in processShuffleMasks() argument
505 find_if(Dest, [](ArrayRef<int> Mask) { return !Mask.empty(); }); in processShuffleMasks() argument
527 auto &&NormalizeMask = [](MutableArrayRef<int> Mask) { in processShuffleMasks() argument
528 for (int Idx = 0, VF = Mask.size(); Idx < VF; ++Idx) { in processShuffleMasks()
529 if (Mask[Idx] != PoisonMaskElem) in processShuffleMasks()
530 Mask[Idx] = Idx; in processShuffleMasks()
900 SmallVector<Constant *, 16> Mask; in createBitMaskForGaps() local
904 Mask.push_back(Builder.getInt1(HasMember)); in createBitMaskForGaps()
907 return ConstantVector::get(Mask); in createBitMaskForGaps()
922 SmallVector<int, 16> Mask; in createInterleaveMask() local
925 Mask.push_back(j * VF + i); in createInterleaveMask()
927 return Mask; in createInterleaveMask()
932 SmallVector<int, 16> Mask; in createStrideMask() local
934 Mask.push_back(Start + i * Stride); in createStrideMask()
936 return Mask; in createStrideMask()
942 SmallVector<int, 16> Mask; in createSequentialMask() local
944 Mask.push_back(Start + i); in createSequentialMask()
947 Mask.push_back(-1); in createSequentialMask()
949 return Mask; in createSequentialMask()
952 llvm::SmallVector<int, 16> llvm::createUnaryMask(ArrayRef<int> Mask, in createUnaryMask() argument
961 for (int MaskElt : Mask) { in createUnaryMask()
1022 bool llvm::maskIsAllZeroOrUndef(Value *Mask) { in maskIsAllZeroOrUndef() argument
1023 assert(isa<VectorType>(Mask->getType()) && in maskIsAllZeroOrUndef()
1024 isa<IntegerType>(Mask->getType()->getScalarType()) && in maskIsAllZeroOrUndef()
1025 cast<IntegerType>(Mask->getType()->getScalarType())->getBitWidth() == in maskIsAllZeroOrUndef()
1029 auto *ConstMask = dyn_cast<Constant>(Mask); in maskIsAllZeroOrUndef()
1048 bool llvm::maskIsAllOneOrUndef(Value *Mask) { in maskIsAllOneOrUndef() argument
1049 assert(isa<VectorType>(Mask->getType()) && in maskIsAllOneOrUndef()
1050 isa<IntegerType>(Mask->getType()->getScalarType()) && in maskIsAllOneOrUndef()
1051 cast<IntegerType>(Mask->getType()->getScalarType())->getBitWidth() == in maskIsAllOneOrUndef()
1055 auto *ConstMask = dyn_cast<Constant>(Mask); in maskIsAllOneOrUndef()
1074 bool llvm::maskContainsAllOneOrUndef(Value *Mask) { in maskContainsAllOneOrUndef() argument
1075 assert(isa<VectorType>(Mask->getType()) && in maskContainsAllOneOrUndef()
1076 isa<IntegerType>(Mask->getType()->getScalarType()) && in maskContainsAllOneOrUndef()
1077 cast<IntegerType>(Mask->getType()->getScalarType())->getBitWidth() == in maskContainsAllOneOrUndef()
1081 auto *ConstMask = dyn_cast<Constant>(Mask); in maskContainsAllOneOrUndef()
1101 APInt llvm::possiblyDemandedEltsInMask(Value *Mask) { in possiblyDemandedEltsInMask() argument
1102 assert(isa<FixedVectorType>(Mask->getType()) && in possiblyDemandedEltsInMask()
1103 isa<IntegerType>(Mask->getType()->getScalarType()) && in possiblyDemandedEltsInMask()
1104 cast<IntegerType>(Mask->getType()->getScalarType())->getBitWidth() == in possiblyDemandedEltsInMask()
1109 cast<FixedVectorType>(Mask->getType())->getNumElements(); in possiblyDemandedEltsInMask()
1111 if (auto *CV = dyn_cast<ConstantVector>(Mask)) in possiblyDemandedEltsInMask()