• Home
  • Raw
  • Download

Lines Matching refs:SVOp

3828 SDValue Compact8x32ShuffleNode(ShuffleVectorSDNode *SVOp,  in Compact8x32ShuffleNode()  argument
3830 MVT VT = SVOp->getValueType(0).getSimpleVT(); in Compact8x32ShuffleNode()
3831 SDLoc dl(SVOp); in Compact8x32ShuffleNode()
3836 ArrayRef<int> Mask = SVOp->getMask(); in Compact8x32ShuffleNode()
3855 SDValue Op0 = SVOp->getOperand(0); in Compact8x32ShuffleNode()
3856 SDValue Op1 = SVOp->getOperand(1); in Compact8x32ShuffleNode()
4074 static unsigned getShuffleVPERM2X128Immediate(ShuffleVectorSDNode *SVOp) { in getShuffleVPERM2X128Immediate() argument
4075 MVT VT = SVOp->getValueType(0).getSimpleVT(); in getShuffleVPERM2X128Immediate()
4081 if (SVOp->getMaskElt(i) > 0) { in getShuffleVPERM2X128Immediate()
4082 FstHalf = SVOp->getMaskElt(i)/HalfSize; in getShuffleVPERM2X128Immediate()
4087 if (SVOp->getMaskElt(i) > 0) { in getShuffleVPERM2X128Immediate()
4088 SndHalf = SVOp->getMaskElt(i)/HalfSize; in getShuffleVPERM2X128Immediate()
4372 static unsigned getShufflePALIGNRImmediate(ShuffleVectorSDNode *SVOp) { in getShufflePALIGNRImmediate() argument
4373 MVT VT = SVOp->getValueType(0).getSimpleVT(); in getShufflePALIGNRImmediate()
4383 Val = SVOp->getMaskElt(i); in getShufflePALIGNRImmediate()
4485 static SDValue CommuteVectorShuffle(ShuffleVectorSDNode *SVOp, in CommuteVectorShuffle() argument
4487 MVT VT = SVOp->getValueType(0).getSimpleVT(); in CommuteVectorShuffle()
4492 int Idx = SVOp->getMaskElt(i); in CommuteVectorShuffle()
4501 return DAG.getVectorShuffle(VT, SDLoc(SVOp), SVOp->getOperand(1), in CommuteVectorShuffle()
4502 SVOp->getOperand(0), &MaskVec[0]); in CommuteVectorShuffle()
4995 static unsigned getNumOfConsecutiveZeros(ShuffleVectorSDNode *SVOp, in getNumOfConsecutiveZeros() argument
5002 SDValue Elt = getShuffleScalarElt(SVOp, Index, DAG, 0); in getNumOfConsecutiveZeros()
5021 bool isShuffleMaskConsecutive(ShuffleVectorSDNode *SVOp, in isShuffleMaskConsecutive() argument
5028 int Idx = SVOp->getMaskElt(i); in isShuffleMaskConsecutive()
5049 static bool isVectorShiftRight(ShuffleVectorSDNode *SVOp, SelectionDAG &DAG, in isVectorShiftRight() argument
5051 unsigned NumElems = SVOp->getValueType(0).getVectorNumElements(); in isVectorShiftRight()
5053 SVOp, NumElems, false /* check zeros from right */, DAG, in isVectorShiftRight()
5054 SVOp->getMaskElt(0)); in isVectorShiftRight()
5067 if (!isShuffleMaskConsecutive(SVOp, in isVectorShiftRight()
5077 ShVal = SVOp->getOperand(OpSrc); in isVectorShiftRight()
5083 static bool isVectorShiftLeft(ShuffleVectorSDNode *SVOp, SelectionDAG &DAG, in isVectorShiftLeft() argument
5085 unsigned NumElems = SVOp->getValueType(0).getVectorNumElements(); in isVectorShiftLeft()
5087 SVOp, NumElems, true /* check zeros from left */, DAG, in isVectorShiftLeft()
5088 NumElems - SVOp->getMaskElt(NumElems - 1) - 1); in isVectorShiftLeft()
5101 if (!isShuffleMaskConsecutive(SVOp, in isVectorShiftLeft()
5111 ShVal = SVOp->getOperand(OpSrc); in isVectorShiftLeft()
5117 static bool isVectorShift(ShuffleVectorSDNode *SVOp, SelectionDAG &DAG, in isVectorShift() argument
5121 if (!SVOp->getValueType(0).is128BitVector()) in isVectorShift()
5124 if (isVectorShiftLeft(SVOp, DAG, isLeft, ShVal, ShAmt) || in isVectorShift()
5125 isVectorShiftRight(SVOp, DAG, isLeft, ShVal, ShAmt)) in isVectorShift()
5438 ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(Op); in LowerVectorBroadcast() local
5442 if ((!SVOp->isSplat()) || SVOp->getMaskElt(0) != 0) in LowerVectorBroadcast()
6071 LowerVECTOR_SHUFFLEtoBlend(ShuffleVectorSDNode *SVOp, in LowerVECTOR_SHUFFLEtoBlend() argument
6073 SDValue V1 = SVOp->getOperand(0); in LowerVECTOR_SHUFFLEtoBlend()
6074 SDValue V2 = SVOp->getOperand(1); in LowerVECTOR_SHUFFLEtoBlend()
6075 SDLoc dl(SVOp); in LowerVECTOR_SHUFFLEtoBlend()
6076 MVT VT = SVOp->getValueType(0).getSimpleVT(); in LowerVECTOR_SHUFFLEtoBlend()
6095 SVOp->getMaskElt(i + NumElemsInLane) : -1; in LowerVECTOR_SHUFFLEtoBlend()
6096 int EltIdx = SVOp->getMaskElt(i); in LowerVECTOR_SHUFFLEtoBlend()
6133 ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(Op); in LowerVECTOR_SHUFFLEv8i16() local
6134 SDValue V1 = SVOp->getOperand(0); in LowerVECTOR_SHUFFLEv8i16()
6135 SDValue V2 = SVOp->getOperand(1); in LowerVECTOR_SHUFFLEv8i16()
6136 SDLoc dl(SVOp); in LowerVECTOR_SHUFFLEv8i16()
6147 int EltIdx = SVOp->getMaskElt(i); in LowerVECTOR_SHUFFLEv8i16()
6248 ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(NewV.getNode()); in LowerVECTOR_SHUFFLEv8i16() local
6249 TargetMask = pshufhw ? getShufflePSHUFHWImmediate(SVOp): in LowerVECTOR_SHUFFLEv8i16()
6250 getShufflePSHUFLWImmediate(SVOp); in LowerVECTOR_SHUFFLEv8i16()
6258 if (SVOp->isSplat()) in LowerVECTOR_SHUFFLEv8i16()
6259 return PromoteSplat(SVOp, DAG); in LowerVECTOR_SHUFFLEv8i16()
6322 ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(NewV.getNode()); in LowerVECTOR_SHUFFLEv8i16() local
6325 getShufflePSHUFLWImmediate(SVOp), DAG); in LowerVECTOR_SHUFFLEv8i16()
6346 ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(NewV.getNode()); in LowerVECTOR_SHUFFLEv8i16() local
6349 getShufflePSHUFHWImmediate(SVOp), DAG); in LowerVECTOR_SHUFFLEv8i16()
6386 SDValue LowerVECTOR_SHUFFLEv16i8(ShuffleVectorSDNode *SVOp, in LowerVECTOR_SHUFFLEv16i8() argument
6389 SDValue V1 = SVOp->getOperand(0); in LowerVECTOR_SHUFFLEv16i8()
6390 SDValue V2 = SVOp->getOperand(1); in LowerVECTOR_SHUFFLEv16i8()
6391 SDLoc dl(SVOp); in LowerVECTOR_SHUFFLEv16i8()
6392 ArrayRef<int> MaskVals = SVOp->getMask(); in LowerVECTOR_SHUFFLEv16i8()
6396 if (SVOp->isSplat()) in LowerVECTOR_SHUFFLEv16i8()
6397 return PromoteSplat(SVOp, DAG); in LowerVECTOR_SHUFFLEv16i8()
6514 SDValue LowerVECTOR_SHUFFLEv32i8(ShuffleVectorSDNode *SVOp, in LowerVECTOR_SHUFFLEv32i8() argument
6517 MVT VT = SVOp->getValueType(0).getSimpleVT(); in LowerVECTOR_SHUFFLEv32i8()
6518 SDValue V1 = SVOp->getOperand(0); in LowerVECTOR_SHUFFLEv32i8()
6519 SDValue V2 = SVOp->getOperand(1); in LowerVECTOR_SHUFFLEv32i8()
6520 SDLoc dl(SVOp); in LowerVECTOR_SHUFFLEv32i8()
6521 SmallVector<int, 32> MaskVals(SVOp->getMask().begin(), SVOp->getMask().end()); in LowerVECTOR_SHUFFLEv32i8()
6563 SDValue RewriteAsNarrowerShuffle(ShuffleVectorSDNode *SVOp, in RewriteAsNarrowerShuffle() argument
6565 MVT VT = SVOp->getValueType(0).getSimpleVT(); in RewriteAsNarrowerShuffle()
6566 SDLoc dl(SVOp); in RewriteAsNarrowerShuffle()
6584 int EltIdx = SVOp->getMaskElt(i+j); in RewriteAsNarrowerShuffle()
6595 SDValue V1 = DAG.getNode(ISD::BITCAST, dl, NewVT, SVOp->getOperand(0)); in RewriteAsNarrowerShuffle()
6596 SDValue V2 = DAG.getNode(ISD::BITCAST, dl, NewVT, SVOp->getOperand(1)); in RewriteAsNarrowerShuffle()
6638 LowerVECTOR_SHUFFLE_256(ShuffleVectorSDNode *SVOp, SelectionDAG &DAG) { in LowerVECTOR_SHUFFLE_256() argument
6640 SDValue NewOp = Compact8x32ShuffleNode(SVOp, DAG); in LowerVECTOR_SHUFFLE_256()
6644 MVT VT = SVOp->getValueType(0).getSimpleVT(); in LowerVECTOR_SHUFFLE_256()
6649 SDLoc dl(SVOp); in LowerVECTOR_SHUFFLE_256()
6665 int Idx = SVOp->getMaskElt(i+LaneStart); in LowerVECTOR_SHUFFLE_256()
6706 int Idx = SVOp->getMaskElt(i+LaneStart); in LowerVECTOR_SHUFFLE_256()
6720 SVOp->getOperand(Input), in LowerVECTOR_SHUFFLE_256()
6731 SDValue Op0 = Extract128BitVector(SVOp->getOperand(InputUsed[0] / 2), in LowerVECTOR_SHUFFLE_256()
6736 Extract128BitVector(SVOp->getOperand(InputUsed[1] / 2), in LowerVECTOR_SHUFFLE_256()
6752 LowerVECTOR_SHUFFLE_128v4(ShuffleVectorSDNode *SVOp, SelectionDAG &DAG) { in LowerVECTOR_SHUFFLE_128v4() argument
6753 SDValue V1 = SVOp->getOperand(0); in LowerVECTOR_SHUFFLE_128v4()
6754 SDValue V2 = SVOp->getOperand(1); in LowerVECTOR_SHUFFLE_128v4()
6755 SDLoc dl(SVOp); in LowerVECTOR_SHUFFLE_128v4()
6756 MVT VT = SVOp->getValueType(0).getSimpleVT(); in LowerVECTOR_SHUFFLE_128v4()
6762 SmallVector<int, 8> PermMask(SVOp->getMask().begin(), SVOp->getMask().end()); in LowerVECTOR_SHUFFLE_128v4()
6976 ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(Op); in getMOVLP() local
6983 if (SVOp->getMaskElt(1) != -1) in getMOVLP()
6996 if (NumElems == 2 || !isMOVLMask(SVOp->getMask(), VT)) in getMOVLP()
7005 getShuffleSHUFImmediate(SVOp), DAG); in getMOVLP()
7021 ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(Op); in LowerVectorIntExtend() local
7036 if (SVOp->getMaskElt(1U << Shift) == 1) in LowerVectorIntExtend()
7047 int EltIdx = SVOp->getMaskElt(i); in LowerVectorIntExtend()
7099 ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(Op); in NormalizeVectorShuffle() local
7105 if (isZeroShuffle(SVOp)) in NormalizeVectorShuffle()
7109 if (SVOp->isSplat()) { in NormalizeVectorShuffle()
7125 SDValue NewOp = RewriteAsNarrowerShuffle(SVOp, DAG); in NormalizeVectorShuffle()
7133 SDValue NewOp = RewriteAsNarrowerShuffle(SVOp, DAG); in NormalizeVectorShuffle()
7142 SDValue NewOp = RewriteAsNarrowerShuffle(SVOp, DAG); in NormalizeVectorShuffle()
7156 ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(Op); in LowerVECTOR_SHUFFLE() local
7201 SmallVector<int, 8> M(SVOp->getMask().begin(), SVOp->getMask().end()); in LowerVECTOR_SHUFFLE()
7229 unsigned TargetMask = getShuffleSHUFImmediate(SVOp); in LowerVECTOR_SHUFFLE()
7244 getShufflePALIGNRImmediate(SVOp), in LowerVECTOR_SHUFFLE()
7251 bool isShift = HasSSE2 && isVectorShift(SVOp, DAG, isLeft, ShVal, ShAmt); in LowerVECTOR_SHUFFLE()
7290 return CommuteVectorShuffle(SVOp, DAG); in LowerVECTOR_SHUFFLE()
7358 return CommuteVectorShuffle(SVOp, DAG); in LowerVECTOR_SHUFFLE()
7365 SVOp->getSplatIndex() == 0 && V2IsUndef) { in LowerVECTOR_SHUFFLE()
7372 getShufflePSHUFHWImmediate(SVOp), in LowerVECTOR_SHUFFLE()
7377 getShufflePSHUFLWImmediate(SVOp), in LowerVECTOR_SHUFFLE()
7382 getShuffleSHUFImmediate(SVOp), DAG); in LowerVECTOR_SHUFFLE()
7402 getShuffleSHUFImmediate(SVOp), DAG); in LowerVECTOR_SHUFFLE()
7404 getShuffleSHUFImmediate(SVOp), DAG); in LowerVECTOR_SHUFFLE()
7410 V2, getShuffleVPERM2X128Immediate(SVOp), DAG); in LowerVECTOR_SHUFFLE()
7412 SDValue BlendOp = LowerVECTOR_SHUFFLEtoBlend(SVOp, Subtarget, DAG); in LowerVECTOR_SHUFFLE()
7430 getShuffleCLImmediate(SVOp), DAG); in LowerVECTOR_SHUFFLE()
7446 SDValue NewOp = LowerVECTOR_SHUFFLEv16i8(SVOp, DAG, *this); in LowerVECTOR_SHUFFLE()
7452 SDValue NewOp = LowerVECTOR_SHUFFLEv32i8(SVOp, Subtarget, DAG); in LowerVECTOR_SHUFFLE()
7460 return LowerVECTOR_SHUFFLE_128v4(SVOp, DAG); in LowerVECTOR_SHUFFLE()
7464 return LowerVECTOR_SHUFFLE_256(SVOp, DAG); in LowerVECTOR_SHUFFLE()
15492 static bool isShuffleHigh128VectorInsertLow(ShuffleVectorSDNode *SVOp) { in isShuffleHigh128VectorInsertLow() argument
15493 EVT VT = SVOp->getValueType(0); in isShuffleHigh128VectorInsertLow()
15498 if (!isUndefOrEqual(SVOp->getMaskElt(i), j) || in isShuffleHigh128VectorInsertLow()
15499 SVOp->getMaskElt(j) >= 0) in isShuffleHigh128VectorInsertLow()
15508 static bool isShuffleLow128VectorInsertHigh(ShuffleVectorSDNode *SVOp) { in isShuffleLow128VectorInsertHigh() argument
15509 EVT VT = SVOp->getValueType(0); in isShuffleLow128VectorInsertHigh()
15514 if (!isUndefOrEqual(SVOp->getMaskElt(i), j) || in isShuffleLow128VectorInsertHigh()
15515 SVOp->getMaskElt(j) >= 0) in isShuffleLow128VectorInsertHigh()
15526 ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(N); in PerformShuffleCombine256() local
15527 SDValue V1 = SVOp->getOperand(0); in PerformShuffleCombine256()
15528 SDValue V2 = SVOp->getOperand(1); in PerformShuffleCombine256()
15529 EVT VT = SVOp->getValueType(0); in PerformShuffleCombine256()
15556 if (!isUndefOrEqual(SVOp->getMaskElt(i), i) || in PerformShuffleCombine256()
15557 !isUndefOrEqual(SVOp->getMaskElt(i+NumElems/2), NumElems)) in PerformShuffleCombine256()
15601 if (isShuffleHigh128VectorInsertLow(SVOp)) { in PerformShuffleCombine256()
15608 if (isShuffleLow128VectorInsertHigh(SVOp)) { in PerformShuffleCombine256()