Lines Matching refs:N2
918 SDVTList VTs, SDValue N1, SDValue N2,
920 SDValue Ops[] = {N1, N2};
1468 /// Swaps the values of N1 and N2. Swaps all indices in the shuffle mask M that
1469 /// point at N1 to point at N2 and indices that point at N2 to point at N1.
1470 static void commuteShuffle(SDValue &N1, SDValue &N2, MutableArrayRef<int> M) {
1471 std::swap(N1, N2);
1476 SDValue N2, ArrayRef<int> Mask) {
1479 assert(VT == N1.getValueType() && VT == N2.getValueType() &&
1483 if (N1.isUndef() && N2.isUndef())
1496 if (N1 == N2) {
1497 N2 = getUNDEF(VT);
1504 commuteShuffle(N1, N2, MaskVec);
1531 if (auto *N2BV = dyn_cast<BuildVectorSDNode>(N2))
1537 bool N2Undef = N2.isUndef();
1551 N2 = getUNDEF(VT);
1554 commuteShuffle(N1, N2, MaskVec);
1557 N2Undef = N2.isUndef();
1619 SDValue Ops[2] = { N1, N2 };
1891 SDValue SelectionDAG::FoldSetCC(EVT VT, SDValue N1, SDValue N2,
1921 if (ConstantSDNode *N2C = dyn_cast<ConstantSDNode>(N2)) {
1942 if (ConstantFPSDNode *N2C = dyn_cast<ConstantFPSDNode>(N2)) {
1992 return getSetCC(dl, VT, N2, N1, SwappedCond);
3282 const SDNode *N2) {
3287 const ConstantSDNode *Cst2 = dyn_cast<ConstantSDNode>(N2);
3461 SDValue N1, SDValue N2,
3464 ConstantSDNode *N2C = dyn_cast<ConstantSDNode>(N2);
3466 ConstantFPSDNode *N2CFP = dyn_cast<ConstantFPSDNode>(N2);
3472 std::swap(N1, N2);
3475 std::swap(N1, N2);
3483 N2.getValueType() == MVT::Other && "Invalid token factor!");
3485 if (N1.getOpcode() == ISD::EntryToken) return N2;
3486 if (N2.getOpcode() == ISD::EntryToken) return N1;
3487 if (N1 == N2) return N1;
3491 SDValue Ops[] = {N1, N2};
3498 assert(N1.getValueType() == N2.getValueType() &&
3503 return N2;
3512 assert(N1.getValueType() == N2.getValueType() &&
3531 assert(N1.getValueType() == N2.getValueType() &&
3551 return N2;
3558 N2.getValueType() &&
3561 case ISD::FCOPYSIGN: // N1 and result must match. N1/N2 need not match.
3564 N2.getValueType().isFloatingPoint() &&
3574 assert(VT.isInteger() && N2.getValueType().isInteger() &&
3576 assert((!VT.isVector() || VT == N2.getValueType()) &&
3582 assert(N2.getValueType().getSizeInBits() >=
3595 EVT EVT = cast<VTSDNode>(N2)->getVT();
3607 if (cast<VTSDNode>(N2)->getVT() == VT) return N1; // Not actually rounding.
3619 EVT EVT = cast<VTSDNode>(N2)->getVT();
3631 EVT EVT = cast<VTSDNode>(N2)->getVT();
3695 N2.getValueType()));
3729 return getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, N1.getOperand(0), N2);
3779 FoldConstantArithmetic(Opcode, DL, VT, N1.getNode(), N2.getNode()))
3839 std::swap(N1, N2);
3860 return N2;
3866 if (N2.isUndef()) {
3882 return N2; // fold op(arg1, undef) -> undef
3889 return N2;
3915 SDValue Ops[] = {N1, N2};
3925 N = GetBinarySDNode(Opcode, DL, VTs, N1, N2, Flags);
3928 N = GetBinarySDNode(Opcode, DL, VTs, N1, N2, Flags);
3936 SDValue N1, SDValue N2, SDValue N3) {
3941 ConstantFPSDNode *N2CFP = dyn_cast<ConstantFPSDNode>(N2);
3956 SDValue Ops[] = {N1, N2, N3};
3963 if (SDValue V = FoldSetCC(VT, N1, N2, cast<CondCodeSDNode>(N3)->get(), DL))
3966 SDValue Ops[] = {N1, N2, N3};
3974 return N2; // select true, X, Y -> X
3978 if (N2 == N3) return N2; // select C, X, X -> X
3985 && N2.getValueType().isSimple()) {
3987 N2.getValueType().isVector() &&
3991 assert(N2.getSimpleValueType() <= N1.getSimpleValueType() &&
3994 assert((N2.getValueType().getVectorNumElements() +
4001 if (VT.getSimpleVT() == N2.getSimpleValueType())
4002 return N2;
4016 SDValue Ops[] = {N1, N2, N3};
4037 SDValue N1, SDValue N2, SDValue N3, SDValue N4) {
4038 SDValue Ops[] = { N1, N2, N3, N4 };
4043 SDValue N1, SDValue N2, SDValue N3, SDValue N4,
4045 SDValue Ops[] = { N1, N2, N3, N4, N5 };
5563 return getNode(Opcode, DL, VT, N1, N2, N3.getOperand(0));
5570 return getNode(Opcode, DL, VT, N1, N2, N3.getOperand(0));
5608 SDValue N1, SDValue N2) {
5609 SDValue Ops[] = { N1, N2 };
5614 SDValue N1, SDValue N2, SDValue N3) {
5615 SDValue Ops[] = { N1, N2, N3 };
5620 SDValue N1, SDValue N2, SDValue N3, SDValue N4) {
5621 SDValue Ops[] = { N1, N2, N3, N4 };
5626 SDValue N1, SDValue N2, SDValue N3, SDValue N4,
5628 SDValue Ops[] = { N1, N2, N3, N4, N5 };