Lines Matching defs:ShAmt

802       unsigned ShAmt = *MaxSA;
806 if (NumSignBits > ShAmt && (NumSignBits - ShAmt) >= (UpperDemandedBits))
1739 unsigned ShAmt = *KnownSA;
1740 if (ShAmt == 0)
1743 // If this is ((X >>u C1) << ShAmt), see if we can simplify this into a
1748 if (!DemandedBits.intersects(APInt::getLowBitsSet(BitWidth, ShAmt))) {
1753 int Diff = ShAmt - C1;
1772 if (ShAmt < InnerBits && DemandedBits.getActiveBits() <= InnerBits &&
1776 TLO.DAG.getShiftAmountConstant(ShAmt, InnerVT, dl));
1792 if (InnerShAmt < ShAmt && InnerShAmt < InnerBits &&
1794 (InnerBits - InnerShAmt + ShAmt) &&
1795 DemandedBits.countr_zero() >= ShAmt) {
1797 TLO.DAG.getConstant(ShAmt - InnerShAmt, dl, ShiftVT);
1807 APInt InDemandedMask = DemandedBits.lshr(ShAmt);
1820 Known.Zero <<= ShAmt;
1821 Known.One <<= ShAmt;
1823 Known.Zero.setLowBits(ShAmt);
1838 if (ShAmt < DemandedBits.getActiveBits() && !VT.isVector() &&
1856 TLO.DAG.getShiftAmountConstant(ShAmt, SmallVT, dl));
1867 if ((BitWidth % 2) == 0 && !VT.isVector() && ShAmt < HalfWidth &&
1884 TLO.DAG.getShiftAmountConstant(ShAmt, HalfVT, dl);
1919 unsigned ShAmt = *MaxSA;
1923 if (NumSignBits > ShAmt && (NumSignBits - ShAmt) >= (UpperDemandedBits))
1935 unsigned ShAmt = *KnownSA;
1936 if (ShAmt == 0)
1939 // If this is ((X << C1) >>u ShAmt), see if we can simplify this into a
1944 if (!DemandedBits.intersects(APInt::getHighBitsSet(BitWidth, ShAmt))) {
1949 int Diff = ShAmt - C1;
1961 APInt InDemandedMask = (DemandedBits << ShAmt);
1966 InDemandedMask.setLowBits(ShAmt);
1981 TLO.DAG.getShiftAmountConstant(ShAmt, HalfVT, dl);
1993 Known.Zero.lshrInPlace(ShAmt);
1994 Known.One.lshrInPlace(ShAmt);
1996 Known.Zero.setHighBits(ShAmt);
2041 unsigned ShAmt = *KnownSA;
2042 if (ShAmt == 0)
2050 unsigned LowBits = BitWidth - ShAmt;
2056 if (*InnerSA == ShAmt) {
2068 if (NumSignBits > ShAmt)
2074 APInt InDemandedMask = (DemandedBits << ShAmt);
2079 InDemandedMask.setLowBits(ShAmt);
2083 if (DemandedBits.countl_zero() < ShAmt)
2089 Known.Zero.lshrInPlace(ShAmt);
2090 Known.One.lshrInPlace(ShAmt);
2094 if (Known.Zero[BitWidth - ShAmt - 1] ||
2095 DemandedBits.countl_zero() >= ShAmt) {
2109 if (Known.One[BitWidth - ShAmt - 1])
2111 Known.One.setHighBits(ShAmt);
2323 SDValue ShAmt = TLO.DAG.getShiftAmountConstant(ShiftAmount, VT, dl);
2324 SDValue NewOp = TLO.DAG.getNode(ShiftOpcode, dl, VT, Src, ShAmt);
2704 SDValue ShAmt = TLO.DAG.getConstant(ShVal, dl, VT);
2706 TLO.DAG.getNode(ISD::SHL, dl, VT, Sign, ShAmt));
2904 if (unsigned ShAmt = getShiftLeftAmt(Op0))
2905 return foldMul(ISD::SUB, Op0.getOperand(0), Op1, ShAmt);
2907 if (unsigned ShAmt = getShiftLeftAmt(Op1))
2908 return foldMul(ISD::SUB, Op1.getOperand(0), Op0, ShAmt);
2912 if (unsigned ShAmt = getShiftLeftAmt(Op1))
2913 return foldMul(ISD::ADD, Op1.getOperand(0), Op0, ShAmt);
4412 unsigned ShAmt = ShAmtC->getZExtValue();
4414 ShAmt = BitWidth - ShAmt;
4440 SDValue NewShAmt = DAG.getConstant(ShAmt, dl, ShAmtVT);
4447 SDValue NewShAmt = DAG.getConstant(BitWidth - ShAmt, dl, ShAmtVT);
4533 if (ConstantSDNode *ShAmt = isConstOrConstSplat(N0.getOperand(1))) {
4535 ShAmt->getAPIntValue() == Log2_32(N0.getScalarValueSizeInBits())) {
7919 SDValue ShAmt, InvShAmt;
7936 ShAmt = DAG.getNode(ISD::VP_UREM, DL, ShVT, Z, BitWidthC, Mask, VL);
7937 InvShAmt = DAG.getNode(ISD::VP_SUB, DL, ShVT, BitWidthC, ShAmt, Mask, VL);
7938 ShX = DAG.getNode(ISD::VP_SHL, DL, VT, X, IsFSHL ? ShAmt : InvShAmt, Mask,
7940 ShY = DAG.getNode(ISD::VP_SRL, DL, VT, Y, IsFSHL ? InvShAmt : ShAmt, Mask,
7948 ShAmt = DAG.getNode(ISD::VP_AND, DL, ShVT, Z, BitMask, Mask, VL);
7955 ShAmt = DAG.getNode(ISD::VP_UREM, DL, ShVT, Z, BitWidthC, Mask, VL);
7956 InvShAmt = DAG.getNode(ISD::VP_SUB, DL, ShVT, BitMask, ShAmt, Mask, VL);
7961 ShX = DAG.getNode(ISD::VP_SHL, DL, VT, X, ShAmt, Mask, VL);
7967 ShY = DAG.getNode(ISD::VP_SRL, DL, VT, Y, ShAmt, Mask, VL);
8022 SDValue ShAmt, InvShAmt;
8028 ShAmt = DAG.getNode(ISD::UREM, DL, ShVT, Z, BitWidthC);
8029 InvShAmt = DAG.getNode(ISD::SUB, DL, ShVT, BitWidthC, ShAmt);
8030 ShX = DAG.getNode(ISD::SHL, DL, VT, X, IsFSHL ? ShAmt : InvShAmt);
8031 ShY = DAG.getNode(ISD::SRL, DL, VT, Y, IsFSHL ? InvShAmt : ShAmt);
8038 ShAmt = DAG.getNode(ISD::AND, DL, ShVT, Z, Mask);
8043 ShAmt = DAG.getNode(ISD::UREM, DL, ShVT, Z, BitWidthC);
8044 InvShAmt = DAG.getNode(ISD::SUB, DL, ShVT, Mask, ShAmt);
8049 ShX = DAG.getNode(ISD::SHL, DL, VT, X, ShAmt);
8055 ShY = DAG.getNode(ISD::SRL, DL, VT, Y, ShAmt);
8099 SDValue ShAmt = DAG.getNode(ISD::AND, DL, ShVT, Op1, BitWidthMinusOneC);
8100 ShVal = DAG.getNode(ShOpc, DL, VT, Op0, ShAmt);
8107 SDValue ShAmt = DAG.getNode(ISD::UREM, DL, ShVT, Op1, BitWidthC);
8108 ShVal = DAG.getNode(ShOpc, DL, VT, Op0, ShAmt);
8109 SDValue HsAmt = DAG.getNode(ISD::SUB, DL, ShVT, BitWidthMinusOneC, ShAmt);
8128 SDValue ShAmt = Node->getOperand(2);
8129 EVT ShAmtVT = ShAmt.getValueType();
8137 SDValue SafeShAmt = DAG.getNode(ISD::AND, dl, ShAmtVT, ShAmt,
8145 Tmp2 = DAG.getNode(ISD::FSHL, dl, VT, ShOpHi, ShOpLo, ShAmt);
8148 Tmp2 = DAG.getNode(ISD::FSHR, dl, VT, ShOpHi, ShOpLo, ShAmt);
8155 SDValue AndNode = DAG.getNode(ISD::AND, dl, ShAmtVT, ShAmt,