Lines Matching defs:SplatMask
25984 SmallVector<int, 8> SplatMask(Shuf->getMask());
25985 for (int &Idx : SplatMask) {
25992 assert(SplatMask != Shuf->getMask() && "Expected mask to change!");
25994 Shuf->getOperand(1), SplatMask);
26009 ArrayRef<int> SplatMask = Splat->getMask();
26010 assert(ShufMask.size() == SplatMask.size() && "Mask length mismatch");
26016 // Examples for (shuffle (shuffle v, undef, SplatMask), undef, UserMask):
26017 // * UserMask=[0,2,u,u], SplatMask=[2,u,2,u] -> [2,2,u,u]
26021 // * UserMask=[0,u,2,u], SplatMask=[2,u,2,u] -> [2,u,2,u]
26022 // In this case the composition of masks yields SplatMask, so it's ok to
26024 // * UserMask=[3,u,2,u], SplatMask=[2,u,2,u] -> [u,u,2,u]
26025 // In this case the composed mask includes all undef elements of SplatMask
26029 ArrayRef<int> SplatMask) {
26031 if (UserMask[i] != -1 && SplatMask[i] == -1 &&
26032 SplatMask[UserMask[i]] != -1)
26036 if (CanSimplifyToExistingSplat(ShufMask, SplatMask))
26043 NewMask.push_back(Idx == -1 ? -1 : SplatMask[Idx]);