Home | History | Annotate | Download | only in X86

Lines Matching refs:RepeatedMask

8932 /// The specific repeated shuffle mask is populated in \p RepeatedMask, as it is
8938 SmallVectorImpl<int> &RepeatedMask) {
8940 RepeatedMask.assign(LaneSize, -1);
8954 if (RepeatedMask[i % LaneSize] < 0)
8956 RepeatedMask[i % LaneSize] = LocalM;
8957 else if (RepeatedMask[i % LaneSize] != LocalM)
8967 SmallVectorImpl<int> &RepeatedMask) {
8968 return isRepeatedShuffleMask(128, VT, Mask, RepeatedMask);
8973 SmallVector<int, 32> RepeatedMask;
8974 return isRepeatedShuffleMask(128, VT, Mask, RepeatedMask);
8980 SmallVectorImpl<int> &RepeatedMask) {
8981 return isRepeatedShuffleMask(256, VT, Mask, RepeatedMask);
8988 SmallVectorImpl<int> &RepeatedMask) {
8990 RepeatedMask.assign(LaneSize, SM_SentinelUndef);
8997 if (!isUndefOrZero(RepeatedMask[i % LaneSize]))
8999 RepeatedMask[i % LaneSize] = SM_SentinelZero;
9010 if (RepeatedMask[i % LaneSize] == SM_SentinelUndef)
9012 RepeatedMask[i % LaneSize] = LocalM;
9013 else if (RepeatedMask[i % LaneSize] != LocalM)
9800 SmallVector<int, 8> RepeatedMask;
9801 if (is128BitLaneRepeatedShuffleMask(MVT::v16i16, Mask, RepeatedMask)) {
9803 assert(RepeatedMask.size() == 8 && "Repeated mask size doesn't match!");
9806 if (RepeatedMask[i] >= 8)
10047 SmallVector<int, 16> RepeatedMask;
10048 if (!is128BitLaneRepeatedShuffleMask(VT, Mask, RepeatedMask))
10051 int Rotation = matchVectorShuffleAsRotate(V1, V2, RepeatedMask);
10057 int NumElts = RepeatedMask.size();
13608 SmallVector<int, 8> RepeatedMask((unsigned)NumElts, -1);
13617 RepeatedMask[Idx] = M + (Lane * NumLaneElts);
13620 SDValue RepeatedShuffle = DAG.getVectorShuffle(VT, DL, V1, V2, RepeatedMask);
13814 SmallVector<int, 2> RepeatedMask;
13815 if (is128BitLaneRepeatedShuffleMask(MVT::v4i64, Mask, RepeatedMask)) {
13817 scaleShuffleMask<int>(2, RepeatedMask, PSHUFDMask);
13902 SmallVector<int, 4> RepeatedMask;
13903 if (is128BitLaneRepeatedShuffleMask(MVT::v8f32, Mask, RepeatedMask)) {
13904 assert(RepeatedMask.size() == 4 &&
13908 if (isShuffleEquivalent(V1, V2, RepeatedMask, {0, 0, 2, 2}))
13910 if (isShuffleEquivalent(V1, V2, RepeatedMask, {1, 1, 3, 3}))
13915 getV4X86ShuffleImm8ForMask(RepeatedMask, DL, DAG));
13924 return lowerVectorShuffleWithSHUFPS(DL, MVT::v8f32, RepeatedMask, V1, V2, DAG);
14019 SmallVector<int, 4> RepeatedMask;
14021 is128BitLaneRepeatedShuffleMask(MVT::v8i32, Mask, RepeatedMask);
14023 assert(RepeatedMask.size() == 4 && "Unexpected repeated mask size!");
14026 getV4X86ShuffleImm8ForMask(RepeatedMask, DL, DAG));
14071 if (Is128BitLaneRepeatedShuffle && isSingleSHUFPSMask(RepeatedMask)) {
14074 SDValue ShufPS = lowerVectorShuffleWithSHUFPS(DL, MVT::v8f32, RepeatedMask,
14153 SmallVector<int, 8> RepeatedMask;
14154 if (is128BitLaneRepeatedShuffleMask(MVT::v16i16, Mask, RepeatedMask)) {
14159 DL, MVT::v16i16, V1, RepeatedMask, Subtarget, DAG);
14459 SmallVector<int, 4> RepeatedMask;
14460 if (is256BitLaneRepeatedShuffleMask(MVT::v8f64, Mask, RepeatedMask))
14462 getV4X86ShuffleImm8ForMask(RepeatedMask, DL, DAG));
14502 SmallVector<int, 4> RepeatedMask;
14503 if (is128BitLaneRepeatedShuffleMask(MVT::v16f32, Mask, RepeatedMask)) {
14504 assert(RepeatedMask.size() == 4 && "Unexpected repeated mask size!");
14507 if (isShuffleEquivalent(V1, V2, RepeatedMask, {0, 0, 2, 2}))
14509 if (isShuffleEquivalent(V1, V2, RepeatedMask, {1, 1, 3, 3}))
14514 getV4X86ShuffleImm8ForMask(RepeatedMask, DL, DAG));
14526 return lowerVectorShuffleWithSHUFPS(DL, MVT::v16f32, RepeatedMask, V1, V2, DAG);
14631 SmallVector<int, 4> RepeatedMask;
14633 is128BitLaneRepeatedShuffleMask(MVT::v16i32, Mask, RepeatedMask);
14635 assert(RepeatedMask.size() == 4 && "Unexpected repeated mask size!");
14638 getV4X86ShuffleImm8ForMask(RepeatedMask, DL, DAG));
14664 if (Is128BitLaneRepeatedShuffle && isSingleSHUFPSMask(RepeatedMask)) {
14667 SDValue ShufPS = lowerVectorShuffleWithSHUFPS(DL, MVT::v16f32, RepeatedMask,
14716 SmallVector<int, 8> RepeatedMask;
14717 if (is128BitLaneRepeatedShuffleMask(MVT::v32i16, Mask, RepeatedMask)) {
14722 DL, MVT::v32i16, V1, RepeatedMask, Subtarget, DAG);
29300 SmallVector<int, 4> RepeatedMask;
29301 if (is256BitLaneRepeatedShuffleMask(MVT::v8f64, Mask, RepeatedMask)) {
29304 PermuteImm = getV4X86ShuffleImm(RepeatedMask);
29329 SmallVector<int, 4> RepeatedMask;
29330 if (is128BitLaneRepeatedShuffleMask(MaskEltVT, Mask, RepeatedMask)) {
29332 SmallVector<int, 4> WordMask = RepeatedMask;
29334 scaleShuffleMask<int>(2, RepeatedMask, WordMask);
29346 SmallVector<int, 4> RepeatedMask;
29347 if (is128BitLaneRepeatedShuffleMask(MaskEltVT, Mask, RepeatedMask)) {
29492 SmallVector<int, 8> RepeatedMask;
29494 RepeatedMask)) {
29495 assert(RepeatedMask.size() == 8 &&
29499 if (RepeatedMask[i] >= 8)
29569 SmallVector<int, 4> RepeatedMask;
29570 if (isRepeatedTargetShuffleMask(128, MaskVT, Mask, RepeatedMask)) {
29574 int M0 = RepeatedMask[Offset];
29575 int M1 = RepeatedMask[Offset + 1];
29577 if (isUndefInRange(RepeatedMask, Offset, 2)) {
29579 } else if (isUndefOrZeroInRange(RepeatedMask, Offset, 2)) {