Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:N2

1288 // commuteShuffle - swaps the values of N1 and N2, and swaps all indices in
1289 // the shuffle mask M that point at N1 to point at N2, and indices that point
1290 // N2 to point at N1.
1291 static void commuteShuffle(SDValue &N1, SDValue &N2, SmallVectorImpl<int> &M) {
1292 std::swap(N1, N2);
1303 SDValue N2, const int *Mask) {
1304 assert(N1.getValueType() == N2.getValueType() && "Invalid VECTOR_SHUFFLE");
1311 if (N1.getOpcode() == ISD::UNDEF && N2.getOpcode() == ISD::UNDEF)
1324 if (N1 == N2) {
1325 N2 = getUNDEF(VT);
1332 commuteShuffle(N1, N2, MaskVec);
1337 bool N2Undef = N2.getOpcode() == ISD::UNDEF;
1351 N2 = getUNDEF(VT);
1354 commuteShuffle(N1, N2, MaskVec);
1370 SDValue Ops[2] = { N1, N2 };
1386 new (NodeAllocator) ShuffleVectorSDNode(VT, dl, N1, N2, MaskAlloc);
1558 SDValue N2, ISD::CondCode Cond, DebugLoc dl) {
1581 if (ConstantSDNode *N2C = dyn_cast<ConstantSDNode>(N2.getNode())) {
1602 if (ConstantFPSDNode *N2C = dyn_cast<ConstantFPSDNode>(N2.getNode())) {
1647 return getSetCC(dl, VT, N2, N1, ISD::getSetCCSwappedOperands(Cond));
2793 SDValue N2) {
2795 ConstantSDNode *N2C = dyn_cast<ConstantSDNode>(N2.getNode());
2800 N2.getValueType() == MVT::Other && "Invalid token factor!");
2802 if (N1.getOpcode() == ISD::EntryToken) return N2;
2803 if (N2.getOpcode() == ISD::EntryToken) return N1;
2804 if (N1 == N2) return N1;
2809 N2.getOpcode() == ISD::UNDEF)
2815 N2.getOpcode() == ISD::BUILD_VECTOR) {
2818 Elts.append(N2.getNode()->op_begin(), N2.getNode()->op_end());
2824 assert(N1.getValueType() == N2.getValueType() &&
2829 return N2;
2838 assert(N1.getValueType() == N2.getValueType() &&
2853 assert(N1.getValueType() == N2.getValueType() &&
2866 return N2;
2868 if (ConstantFPSDNode *CFP = dyn_cast<ConstantFPSDNode>(N2))
2873 if (ConstantFPSDNode *CFP = dyn_cast<ConstantFPSDNode>(N2))
2878 SDValue V = N2;
2882 CFP = dyn_cast<ConstantFPSDNode>(N2);
2897 assert(N1.getValueType() == N2.getValueType() &&
2900 case ISD::FCOPYSIGN: // N1 and result must match. N1/N2 need not match.
2903 N2.getValueType().isFloatingPoint() &&
2913 assert(VT.isInteger() && N2.getValueType().isInteger() &&
2915 assert((!VT.isVector() || VT == N2.getValueType()) &&
2921 assert(N2.getValueType().getSizeInBits() >=
2934 EVT EVT = cast<VTSDNode>(N2)->getVT();
2946 if (cast<VTSDNode>(N2)->getVT() == VT) return N1; // Not actually rounding.
2953 isa<ConstantSDNode>(N2) && "Invalid FP_ROUND!");
2958 EVT EVT = cast<VTSDNode>(N2)->getVT();
2970 EVT EVT = cast<VTSDNode>(N2)->getVT();
3007 N2.getValueType()));
3041 return getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, N1.getOperand(0), N2);
3067 SDValue Index = N2;
3092 SDValue SV = FoldConstantArithmetic(Opcode, VT, N1.getNode(), N2.getNode());
3098 std::swap(N1, N2);
3103 ConstantFPSDNode *N2CFP = dyn_cast<ConstantFPSDNode>(N2.getNode());
3108 std::swap(N1, N2);
3159 std::swap(N1, N2);
3180 return N2;
3186 if (N2.getOpcode() == ISD::UNDEF) {
3202 return N2; // fold op(arg1, undef) -> undef
3209 return N2;
3235 SDValue Ops[] = { N1, N2 };
3242 N = new (NodeAllocator) BinarySDNode(Opcode, DL, VTs, N1, N2);
3245 N = new (NodeAllocator) BinarySDNode(Opcode, DL, VTs, N1, N2);
3256 SDValue N1, SDValue N2, SDValue N3) {
3264 N2.getOpcode() == ISD::BUILD_VECTOR &&
3268 Elts.append(N2.getNode()->op_begin(), N2.getNode()->op_end());
3275 SDValue Simp = FoldSetCC(VT, N1, N2, cast<CondCodeSDNode>(N3)->get(), DL);
3282 return N2; // select true, X, Y -> X
3286 if (N2 == N3) return N2; // select C, X, X -> X
3293 && N2.getValueType().isSimple()) {
3295 N2.getValueType().isVector() &&
3299 assert(N2.getValueType().getSimpleVT() <= N1.getValueType().getSimpleVT() &&
3302 assert((N2.getValueType().getVectorNumElements() +
3309 if (VT.getSimpleVT() == N2.getValueType().getSimpleVT())
3310 return N2;
3325 SDValue Ops[] = { N1, N2, N3 };
3332 N = new (NodeAllocator) TernarySDNode(Opcode, DL, VTs, N1, N2, N3);
3335 N = new (NodeAllocator) TernarySDNode(Opcode, DL, VTs, N1, N2, N3);
3346 SDValue N1, SDValue N2, SDValue N3,
3348 SDValue Ops[] = { N1, N2, N3, N4 };
3353 SDValue N1, SDValue N2, SDValue N3,
3355 SDValue Ops[] = { N1, N2, N3, N4, N5 };
4736 return getNode(Opcode, DL, VT, N1, N2, N3.getOperand(0));
4743 return getNode(Opcode, DL, VT, N1, N2, N3.getOperand(0));
4799 SDValue N1, SDValue N2) {
4800 SDValue Ops[] = { N1, N2 };
4805 SDValue N1, SDValue N2, SDValue N3) {
4806 SDValue Ops[] = { N1, N2, N3 };
4811 SDValue N1, SDValue N2, SDValue N3,
4813 SDValue Ops[] = { N1, N2, N3, N4 };
4818 SDValue N1, SDValue N2, SDValue N3,
4820 SDValue Ops[] = { N1, N2, N3, N4, N5 };