Lines Matching defs:ShlImm
2674 uint64_t ShlImm = 0;
2676 if (isOpcWithIntImmediate(N->getOperand(0).getNode(), ISD::SHL, ShlImm)) {
2698 if (ShlImm >= VT.getSizeInBits()) {
2711 int immr = SrlImm - ShlImm;
2713 Imms = VT.getSizeInBits() - ShlImm - TruncBits - 1;
3156 uint64_t ShlImm;
3158 if (isOpcWithIntImmediate(AndOp0.getNode(), ISD::SHL, ShlImm)) {
3163 ShlImm)) {
3210 if (ShlImm != uint64_t(DstLSB) && !BiggerPattern)
3213 Src = getLeftShift(CurDAG, ShlOp0, ShlImm - DstLSB);
3219 static bool isSeveralBitsPositioningOpFromShl(const uint64_t ShlImm, SDValue Op,
3226 assert(isIntImmediateEq(Op.getOperand(1), ShlImm) &&
3227 "Op.getNode() should shift ShlImm to call this function");
3234 const uint64_t ShiftedAndImm = ((AndImm << ShlImm) >> ShlImm);
3236 // AndImm is a superset of (AllOnes >> ShlImm); in other words, AndImm
3240 // For example, xyz11111 (with {x,y,z} being 0 or 1) is fine if ShlImm >= 3;
3244 DstLSB = ShlImm;
3263 uint64_t ShlImm;
3264 if (!isOpcWithIntImmediate(Op.getNode(), ISD::SHL, ShlImm))
3270 if (isSeveralBitsPositioningOpFromShl(ShlImm, Op, Src, DstLSB, Width))
3276 if (ShlImm != uint64_t(DstLSB) && !BiggerPattern)
3279 Src = getLeftShift(CurDAG, Op.getOperand(0), ShlImm - DstLSB);
3393 uint64_t AndImm, ShlImm;
3437 if (isOpcWithIntImmediate(Dst.getNode(), ISD::SHL, ShlImm)) {
3439 EncodedShiftImm = AArch64_AM::getShifterImm(AArch64_AM::LSL, ShlImm);
3499 uint64_t ShlImm;
3500 if (isOpcWithIntImmediate(OrOpd0.getNode(), ISD::SHL, ShlImm)) {
3505 AArch64_AM::getShifterImm(AArch64_AM::LSL, ShlImm), DL, VT)};
3524 AArch64_AM::getShifterImm(AArch64_AM::LSL, ShlImm), DL, VT)};