Lines Matching refs:Mask
349 int llvm::getSplatIndex(ArrayRef<int> Mask) { in getSplatIndex() argument
351 for (int M : Mask) { in getSplatIndex()
432 void llvm::narrowShuffleMaskElts(int Scale, ArrayRef<int> Mask, in narrowShuffleMaskElts() argument
438 ScaledMask.assign(Mask.begin(), Mask.end()); in narrowShuffleMaskElts()
443 for (int MaskElt : Mask) { in narrowShuffleMaskElts()
453 bool llvm::widenShuffleMaskElts(int Scale, ArrayRef<int> Mask, in widenShuffleMaskElts() argument
459 ScaledMask.assign(Mask.begin(), Mask.end()); in widenShuffleMaskElts()
464 int NumElts = Mask.size(); in widenShuffleMaskElts()
473 ArrayRef<int> MaskSlice = Mask.take_front(Scale); in widenShuffleMaskElts()
494 Mask = Mask.drop_front(Scale); in widenShuffleMaskElts()
495 } while (!Mask.empty()); in widenShuffleMaskElts()
505 ArrayRef<int> Mask, unsigned NumOfSrcRegs, unsigned NumOfDestRegs, in processShuffleMasks() argument
514 int Sz = Mask.size(); in processShuffleMasks()
526 if (Mask[Idx] >= Sz || Mask[Idx] == UndefMaskElem) in processShuffleMasks()
528 int SrcRegIdx = Mask[Idx] / SzSrc; in processShuffleMasks()
533 RegMasks[SrcRegIdx][K] = Mask[Idx] % SzSrc; in processShuffleMasks()
540 count_if(Dest, [](ArrayRef<int> Mask) { return !Mask.empty(); }); in processShuffleMasks() argument
549 find_if(Dest, [](ArrayRef<int> Mask) { return !Mask.empty(); }); in processShuffleMasks() argument
571 auto &&NormalizeMask = [](MutableArrayRef<int> Mask) { in processShuffleMasks() argument
572 for (int Idx = 0, VF = Mask.size(); Idx < VF; ++Idx) { in processShuffleMasks()
573 if (Mask[Idx] != UndefMaskElem) in processShuffleMasks()
574 Mask[Idx] = Idx; in processShuffleMasks()
895 SmallVector<Constant *, 16> Mask; in createBitMaskForGaps() local
899 Mask.push_back(Builder.getInt1(HasMember)); in createBitMaskForGaps()
902 return ConstantVector::get(Mask); in createBitMaskForGaps()
917 SmallVector<int, 16> Mask; in createInterleaveMask() local
920 Mask.push_back(j * VF + i); in createInterleaveMask()
922 return Mask; in createInterleaveMask()
927 SmallVector<int, 16> Mask; in createStrideMask() local
929 Mask.push_back(Start + i * Stride); in createStrideMask()
931 return Mask; in createStrideMask()
937 SmallVector<int, 16> Mask; in createSequentialMask() local
939 Mask.push_back(Start + i); in createSequentialMask()
942 Mask.push_back(-1); in createSequentialMask()
944 return Mask; in createSequentialMask()
947 llvm::SmallVector<int, 16> llvm::createUnaryMask(ArrayRef<int> Mask, in createUnaryMask() argument
956 for (int MaskElt : Mask) { in createUnaryMask()
1017 bool llvm::maskIsAllZeroOrUndef(Value *Mask) { in maskIsAllZeroOrUndef() argument
1018 assert(isa<VectorType>(Mask->getType()) && in maskIsAllZeroOrUndef()
1019 isa<IntegerType>(Mask->getType()->getScalarType()) && in maskIsAllZeroOrUndef()
1020 cast<IntegerType>(Mask->getType()->getScalarType())->getBitWidth() == in maskIsAllZeroOrUndef()
1024 auto *ConstMask = dyn_cast<Constant>(Mask); in maskIsAllZeroOrUndef()
1043 bool llvm::maskIsAllOneOrUndef(Value *Mask) { in maskIsAllOneOrUndef() argument
1044 assert(isa<VectorType>(Mask->getType()) && in maskIsAllOneOrUndef()
1045 isa<IntegerType>(Mask->getType()->getScalarType()) && in maskIsAllOneOrUndef()
1046 cast<IntegerType>(Mask->getType()->getScalarType())->getBitWidth() == in maskIsAllOneOrUndef()
1050 auto *ConstMask = dyn_cast<Constant>(Mask); in maskIsAllOneOrUndef()
1071 APInt llvm::possiblyDemandedEltsInMask(Value *Mask) { in possiblyDemandedEltsInMask() argument
1072 assert(isa<FixedVectorType>(Mask->getType()) && in possiblyDemandedEltsInMask()
1073 isa<IntegerType>(Mask->getType()->getScalarType()) && in possiblyDemandedEltsInMask()
1074 cast<IntegerType>(Mask->getType()->getScalarType())->getBitWidth() == in possiblyDemandedEltsInMask()
1079 cast<FixedVectorType>(Mask->getType())->getNumElements(); in possiblyDemandedEltsInMask()
1081 if (auto *CV = dyn_cast<ConstantVector>(Mask)) in possiblyDemandedEltsInMask()