Lines Matching defs:N0

535   SDValue N0 = Node->getOperand(0);
548 SDValue Shift = N0;
554 if (isInt<32>(Val) && N0.getOpcode() == ISD::SIGN_EXTEND_INREG &&
555 N0.hasOneUse() && cast<VTSDNode>(N0.getOperand(1))->getVT() == MVT::i32) {
557 Shift = N0.getOperand(0);
613 SDValue N0 = Node->getOperand(0);
614 if (!N0.hasOneUse())
617 auto BitfieldExtract = [&](SDValue N0, unsigned Msb, unsigned Lsb, SDLoc DL,
619 return CurDAG->getMachineNode(RISCV::TH_EXT, DL, VT, N0.getOperand(0),
630 if (N0.getOpcode() == ISD::SHL) {
631 auto *N01C = dyn_cast<ConstantSDNode>(N0->getOperand(1));
645 SDNode *TH_EXT = BitfieldExtract(N0, Msb, Lsb, DL, VT);
652 if (N0.getOpcode() == ISD::SIGN_EXTEND_INREG) {
654 cast<VTSDNode>(N0.getOperand(1))->getVT().getSizeInBits();
663 SDNode *TH_EXT = BitfieldExtract(N0, Msb, Lsb, DL, VT);
1022 SDValue N0 = Node->getOperand(0);
1023 if (N0.getOpcode() != ISD::AND || !N0.hasOneUse() ||
1024 !isa<ConstantSDNode>(N0.getOperand(1)))
1027 uint64_t Mask = N0.getConstantOperandVal(1);
1037 RISCV::SRLIW, DL, VT, N0->getOperand(0),
1056 RISCV::SLLI, DL, VT, N0->getOperand(0),
1071 SDValue N0 = Node->getOperand(0);
1072 if (N0.getOpcode() != ISD::AND || !isa<ConstantSDNode>(N0.getOperand(1)))
1075 uint64_t Mask = N0.getConstantOperandVal(1);
1079 if (isShiftedMask_64(Mask) && N0.hasOneUse()) {
1085 RISCV::SRLIW, DL, VT, N0->getOperand(0),
1112 N0->getOperand(0), CurDAG->getTargetConstant(ShAmt, DL, VT));
1118 if (!N0.hasOneUse())
1125 N0->getOperand(0), CurDAG->getTargetConstant(ShAmt, DL, VT));
1133 RISCV::TH_EXTU, DL, VT, N0->getOperand(0),
1141 CurDAG->getMachineNode(RISCV::SLLI, DL, VT, N0->getOperand(0),
1164 SDValue N0 = Node->getOperand(0);
1165 if (N0.getOpcode() != ISD::SIGN_EXTEND_INREG || !N0.hasOneUse())
1169 cast<VTSDNode>(N0.getOperand(1))->getVT().getSizeInBits();
1175 CurDAG->getMachineNode(RISCV::SLLI, DL, VT, N0->getOperand(0),
1194 SDValue N0 = Node->getOperand(0);
1209 bool LeftShift = N0.getOpcode() == ISD::SHL;
1210 if (LeftShift || N0.getOpcode() == ISD::SRL) {
1211 auto *C = dyn_cast<ConstantSDNode>(N0.getOperand(1));
1236 bool OneUseOrZExtW = N0.hasOneUse() || C1 == UINT64_C(0xFFFFFFFF);
1238 SDValue X = N0.getOperand(0);
1258 if (C2 >= 32 && (Leading - C2) == 1 && N0.hasOneUse() &&
1427 if (N0.getOpcode() == ISD::SRA && isa<ConstantSDNode>(N0.getOperand(1)) &&
1428 N0.hasOneUse()) {
1429 unsigned C2 = N0.getConstantOperandVal(1);
1433 SDValue X = N0.getOperand(0);
1464 RISCV::SRAI, DL, VT, N0.getOperand(0),
1485 if (tryUnsignedBitfieldExtract(Node, DL, VT, N0, Msb, 0))
1507 SDValue N0 = Node->getOperand(0);
1508 if (N0.getOpcode() != ISD::AND || !isa<ConstantSDNode>(N0.getOperand(1)))
1511 uint64_t C2 = N0.getConstantOperandVal(1);
1527 if (IsANDIOrZExt && (isInt<12>(N1C->getSExtValue()) || !N0.hasOneUse()))
1534 if (IsZExtW && (isInt<32>(N1C->getSExtValue()) || !N0.hasOneUse()))
1558 CurDAG->getMachineNode(RISCV::SLLI, DL, VT, N0.getOperand(0),
3023 SDValue N0 = N.getOperand(0);
3024 if (N0.getOpcode() == ISD::SHL && isa<ConstantSDNode>(N0.getOperand(1)) &&
3026 N0.getConstantOperandVal(1) == ShiftAmt)
3027 return N0.getOperand(0);
3065 SDValue N0 = N.getOperand(0);
3067 if (bool LeftShift = N0.getOpcode() == ISD::SHL;
3068 (LeftShift || N0.getOpcode() == ISD::SRL) &&
3069 isa<ConstantSDNode>(N0.getOperand(1))) {
3071 unsigned C2 = N0.getConstantOperandVal(1);
3089 RISCV::SRLI, DL, VT, N0.getOperand(0),
3102 RISCV::SRLI, DL, VT, N0.getOperand(0),
3108 } else if (N0.getOpcode() == ISD::SRA && N0.hasOneUse() &&
3109 isa<ConstantSDNode>(N0.getOperand(1))) {
3111 unsigned C2 = N0.getConstantOperandVal(1);
3125 RISCV::SRAI, DL, VT, N0.getOperand(0),
3139 SDValue N0 = N.getOperand(0);
3140 if (N0.getOpcode() == ISD::AND && N0.hasOneUse() &&
3141 isa<ConstantSDNode>(N0.getOperand(1))) {
3142 uint64_t Mask = N0.getConstantOperandVal(1);
3155 RISCV::SRLIW, DL, VT, N0.getOperand(0),
3167 RISCV::SRLIW, DL, VT, N0.getOperand(0),
3186 SDValue N0 = N.getOperand(0);
3187 if (N0.getOpcode() == ISD::SHL && isa<ConstantSDNode>(N0.getOperand(1)) &&
3188 N0.hasOneUse()) {
3190 unsigned C2 = N0.getConstantOperandVal(1);
3204 RISCV::SLLI, DL, VT, N0.getOperand(0),
3681 SDValue N0 = N->getOperand(0);
3682 if (!N0.isMachineOpcode())
3685 switch (N0.getMachineOpcode()) {
3696 switch (N0.getMachineOpcode()) {
3706 SDValue N00 = N0.getOperand(0);
3707 SDValue N01 = N0.getOperand(1);
3710 if (N0.getMachineOpcode() == RISCV::SLLI &&
3730 if (N0.getValueType() == MVT::i32)
3735 ReplaceUses(N, N0.getNode());