Lines Matching refs:RepeatedMask
11686 SmallVectorImpl<int> &RepeatedMask) { in isRepeatedShuffleMask() argument
11688 RepeatedMask.assign(LaneSize, -1); in isRepeatedShuffleMask()
11702 if (RepeatedMask[i % LaneSize] < 0) in isRepeatedShuffleMask()
11704 RepeatedMask[i % LaneSize] = LocalM; in isRepeatedShuffleMask()
11705 else if (RepeatedMask[i % LaneSize] != LocalM) in isRepeatedShuffleMask()
11715 SmallVectorImpl<int> &RepeatedMask) { in is128BitLaneRepeatedShuffleMask() argument
11716 return isRepeatedShuffleMask(128, VT, Mask, RepeatedMask); in is128BitLaneRepeatedShuffleMask()
11721 SmallVector<int, 32> RepeatedMask; in is128BitLaneRepeatedShuffleMask() local
11722 return isRepeatedShuffleMask(128, VT, Mask, RepeatedMask); in is128BitLaneRepeatedShuffleMask()
11728 SmallVectorImpl<int> &RepeatedMask) { in is256BitLaneRepeatedShuffleMask() argument
11729 return isRepeatedShuffleMask(256, VT, Mask, RepeatedMask); in is256BitLaneRepeatedShuffleMask()
11737 SmallVectorImpl<int> &RepeatedMask) { in isRepeatedTargetShuffleMask() argument
11739 RepeatedMask.assign(LaneSize, SM_SentinelUndef); in isRepeatedTargetShuffleMask()
11746 if (!isUndefOrZero(RepeatedMask[i % LaneSize])) in isRepeatedTargetShuffleMask()
11748 RepeatedMask[i % LaneSize] = SM_SentinelZero; in isRepeatedTargetShuffleMask()
11759 if (RepeatedMask[i % LaneSize] == SM_SentinelUndef) in isRepeatedTargetShuffleMask()
11761 RepeatedMask[i % LaneSize] = LocalM; in isRepeatedTargetShuffleMask()
11762 else if (RepeatedMask[i % LaneSize] != LocalM) in isRepeatedTargetShuffleMask()
11773 SmallVectorImpl<int> &RepeatedMask) { in isRepeatedTargetShuffleMask() argument
11775 Mask, RepeatedMask); in isRepeatedTargetShuffleMask()
12845 SmallVector<int, 8> RepeatedMask; in lowerShuffleAsBlend() local
12846 if (is128BitLaneRepeatedShuffleMask(MVT::v16i16, Mask, RepeatedMask)) { in lowerShuffleAsBlend()
12848 assert(RepeatedMask.size() == 8 && "Repeated mask size doesn't match!"); in lowerShuffleAsBlend()
12851 if (RepeatedMask[i] >= 8) in lowerShuffleAsBlend()
13459 SmallVector<int, 16> RepeatedMask; in matchShuffleAsByteRotate() local
13460 if (!is128BitLaneRepeatedShuffleMask(VT, Mask, RepeatedMask)) in matchShuffleAsByteRotate()
13463 int Rotation = matchShuffleAsElementRotate(V1, V2, RepeatedMask); in matchShuffleAsByteRotate()
13469 int NumElts = RepeatedMask.size(); in matchShuffleAsByteRotate()
17577 SmallVector<int, 8> RepeatedMask((unsigned)NumElts, -1); in lowerShuffleAsRepeatedMaskAndLanePermute() local
17586 RepeatedMask[Idx] = M + (Lane * NumLaneElts); in lowerShuffleAsRepeatedMaskAndLanePermute()
17590 DAG.getVectorShuffle(VT, DL, V1, V2, RepeatedMask); in lowerShuffleAsRepeatedMaskAndLanePermute()
17881 SmallVector<int, 2> RepeatedMask; in lowerV4I64Shuffle() local
17882 if (is128BitLaneRepeatedShuffleMask(MVT::v4i64, Mask, RepeatedMask)) { in lowerV4I64Shuffle()
17884 narrowShuffleMaskElts(2, RepeatedMask, PSHUFDMask); in lowerV4I64Shuffle()
17980 SmallVector<int, 4> RepeatedMask; in lowerV8F32Shuffle() local
17981 if (is128BitLaneRepeatedShuffleMask(MVT::v8f32, Mask, RepeatedMask)) { in lowerV8F32Shuffle()
17982 assert(RepeatedMask.size() == 4 && in lowerV8F32Shuffle()
17986 if (isShuffleEquivalent(RepeatedMask, {0, 0, 2, 2}, V1, V2)) in lowerV8F32Shuffle()
17988 if (isShuffleEquivalent(RepeatedMask, {1, 1, 3, 3}, V1, V2)) in lowerV8F32Shuffle()
17993 getV4X86ShuffleImm8ForMask(RepeatedMask, DL, DAG)); in lowerV8F32Shuffle()
18001 return lowerShuffleWithSHUFPS(DL, MVT::v8f32, RepeatedMask, V1, V2, DAG); in lowerV8F32Shuffle()
18096 SmallVector<int, 4> RepeatedMask; in lowerV8I32Shuffle() local
18098 is128BitLaneRepeatedShuffleMask(MVT::v8i32, Mask, RepeatedMask); in lowerV8I32Shuffle()
18100 assert(RepeatedMask.size() == 4 && "Unexpected repeated mask size!"); in lowerV8I32Shuffle()
18103 getV4X86ShuffleImm8ForMask(RepeatedMask, DL, DAG)); in lowerV8I32Shuffle()
18152 if (Is128BitLaneRepeatedShuffle && isSingleSHUFPSMask(RepeatedMask)) { in lowerV8I32Shuffle()
18155 SDValue ShufPS = lowerShuffleWithSHUFPS(DL, MVT::v8f32, RepeatedMask, in lowerV8I32Shuffle()
18252 SmallVector<int, 8> RepeatedMask; in lowerV16I16Shuffle() local
18253 if (is128BitLaneRepeatedShuffleMask(MVT::v16i16, Mask, RepeatedMask)) { in lowerV16I16Shuffle()
18258 DL, MVT::v16i16, V1, RepeatedMask, Subtarget, DAG); in lowerV16I16Shuffle()
18608 SmallVector<int, 4> RepeatedMask; in lowerV8F64Shuffle() local
18609 if (is256BitLaneRepeatedShuffleMask(MVT::v8f64, Mask, RepeatedMask)) in lowerV8F64Shuffle()
18611 getV4X86ShuffleImm8ForMask(RepeatedMask, DL, DAG)); in lowerV8F64Shuffle()
18648 SmallVector<int, 4> RepeatedMask; in lowerV16F32Shuffle() local
18649 if (is128BitLaneRepeatedShuffleMask(MVT::v16f32, Mask, RepeatedMask)) { in lowerV16F32Shuffle()
18650 assert(RepeatedMask.size() == 4 && "Unexpected repeated mask size!"); in lowerV16F32Shuffle()
18653 if (isShuffleEquivalent(RepeatedMask, {0, 0, 2, 2}, V1, V2)) in lowerV16F32Shuffle()
18655 if (isShuffleEquivalent(RepeatedMask, {1, 1, 3, 3}, V1, V2)) in lowerV16F32Shuffle()
18660 getV4X86ShuffleImm8ForMask(RepeatedMask, DL, DAG)); in lowerV16F32Shuffle()
18671 return lowerShuffleWithSHUFPS(DL, MVT::v16f32, RepeatedMask, V1, V2, DAG); in lowerV16F32Shuffle()
18780 SmallVector<int, 4> RepeatedMask; in lowerV16I32Shuffle() local
18782 is128BitLaneRepeatedShuffleMask(MVT::v16i32, Mask, RepeatedMask); in lowerV16I32Shuffle()
18784 assert(RepeatedMask.size() == 4 && "Unexpected repeated mask size!"); in lowerV16I32Shuffle()
18787 getV4X86ShuffleImm8ForMask(RepeatedMask, DL, DAG)); in lowerV16I32Shuffle()
18812 if (Is128BitLaneRepeatedShuffle && isSingleSHUFPSMask(RepeatedMask)) { in lowerV16I32Shuffle()
18815 SDValue ShufPS = lowerShuffleWithSHUFPS(DL, MVT::v16f32, RepeatedMask, in lowerV16I32Shuffle()
18880 SmallVector<int, 8> RepeatedMask; in lowerV32I16Shuffle() local
18881 if (is128BitLaneRepeatedShuffleMask(MVT::v32i16, Mask, RepeatedMask)) { in lowerV32I16Shuffle()
18886 RepeatedMask, Subtarget, DAG); in lowerV32I16Shuffle()
37421 SmallVector<int, 4> RepeatedMask; in matchUnaryPermuteShuffle() local
37422 if (is256BitLaneRepeatedShuffleMask(MVT::v8f64, Mask, RepeatedMask)) { in matchUnaryPermuteShuffle()
37425 PermuteImm = getV4X86ShuffleImm(RepeatedMask); in matchUnaryPermuteShuffle()
37450 SmallVector<int, 4> RepeatedMask; in matchUnaryPermuteShuffle() local
37451 if (is128BitLaneRepeatedShuffleMask(MaskEltVT, Mask, RepeatedMask)) { in matchUnaryPermuteShuffle()
37453 SmallVector<int, 4> WordMask = RepeatedMask; in matchUnaryPermuteShuffle()
37455 narrowShuffleMaskElts(2, RepeatedMask, WordMask); in matchUnaryPermuteShuffle()
37470 SmallVector<int, 4> RepeatedMask; in matchUnaryPermuteShuffle() local
37471 if (is128BitLaneRepeatedShuffleMask(MaskEltVT, Mask, RepeatedMask)) { in matchUnaryPermuteShuffle()
37472 ArrayRef<int> LoMask(RepeatedMask.data() + 0, 4); in matchUnaryPermuteShuffle()
37473 ArrayRef<int> HiMask(RepeatedMask.data() + 4, 4); in matchUnaryPermuteShuffle()
37750 SmallVector<int, 8> RepeatedMask; in matchBinaryPermuteShuffle() local
37752 RepeatedMask)) { in matchBinaryPermuteShuffle()
37753 assert(RepeatedMask.size() == 8 && in matchBinaryPermuteShuffle()
37757 if (RepeatedMask[i] >= 8) in matchBinaryPermuteShuffle()
37807 SmallVector<int, 4> RepeatedMask; in matchBinaryPermuteShuffle() local
37808 if (isRepeatedTargetShuffleMask(128, MaskVT, Mask, RepeatedMask)) { in matchBinaryPermuteShuffle()
37812 int M0 = RepeatedMask[Offset]; in matchBinaryPermuteShuffle()
37813 int M1 = RepeatedMask[Offset + 1]; in matchBinaryPermuteShuffle()
37815 if (isUndefInRange(RepeatedMask, Offset, 2)) { in matchBinaryPermuteShuffle()
37817 } else if (isUndefOrZeroInRange(RepeatedMask, Offset, 2)) { in matchBinaryPermuteShuffle()