Home | History | Annotate | Download | only in AArch64

Lines Matching full:getnode

982     return DAG.getNode(AArch64ISD::FCMP, dl, VT, LHS, RHS);
1016 return DAG.getNode(Opcode, dl, DAG.getVTList(VT, MVT::i32), LHS, RHS)
1022 if (ConstantSDNode *RHSC = dyn_cast<ConstantSDNode>(RHS.getNode())) {
1122 LHS = DAG.getNode(ExtendOpc, DL, MVT::i64, LHS);
1123 RHS = DAG.getNode(ExtendOpc, DL, MVT::i64, RHS);
1124 SDValue Mul = DAG.getNode(ISD::MUL, DL, MVT::i64, LHS, RHS);
1125 SDValue Add = DAG.getNode(ISD::ADD, DL, MVT::i64, Mul,
1131 Value = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Add);
1138 SDValue UpperBits = DAG.getNode(ISD::SRL, DL, MVT::i64, Add,
1140 UpperBits = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, UpperBits);
1141 SDValue LowerBits = DAG.getNode(ISD::SRA, DL, MVT::i32, Value,
1146 Overflow = DAG.getNode(AArch64ISD::SUBS, DL, VTs, UpperBits, LowerBits)
1154 SDValue UpperBits = DAG.getNode(ISD::SRL, DL, MVT::i64, Mul,
1158 DAG.getNode(AArch64ISD::SUBS, DL, VTs, DAG.getConstant(0, MVT::i64),
1165 Value = DAG.getNode(ISD::MUL, DL, MVT::i64, LHS, RHS);
1167 getNode(ISD::MULHS, DL, MVT::i64, LHS, RHS);
1168 SDValue LowerBits = DAG.getNode(ISD::SRA, DL, MVT::i64, Value,
1173 Overflow = DAG.getNode(AArch64ISD::SUBS, DL, VTs, UpperBits, LowerBits)
1176 SDValue UpperBits = DAG.getNode(ISD::MULHU, DL, MVT::i64, LHS, RHS);
1179 DAG.getNode(AArch64ISD::SUBS, DL, VTs, DAG.getConstant(0, MVT::i64),
1190 Value = DAG.getNode(Opc, DL, VTs, LHS, RHS);
1255 TVal = DAG.getNode(ISD::XOR, dl, Other.getValueType(), Other,
1258 return DAG.getNode(AArch64ISD::CSEL, dl, Sel.getValueType(), FVal, TVal,
1296 return DAG.getNode(Opc, SDLoc(Op), VTs, Op.getOperand(0), Op.getOperand(1));
1297 return DAG.getNode(Opc, SDLoc(Op), VTs, Op.getOperand(0), Op.getOperand(1),
1319 Overflow = DAG.getNode(AArch64ISD::CSEL, SDLoc(Op), MVT::i32, FVal, TVal,
1323 return DAG.getNode(ISD::MERGE_VALUES, SDLoc(Op), VTs, Value, Overflow);
1353 return DAG.getNode(AArch64ISD::PREFETCH, DL, MVT::Other, Op.getOperand(0),
1395 DAG.getNode(Op.getOpcode(), dl, InVT.changeVectorElementTypeToInteger(),
1397 return DAG.getNode(ISD::TRUNCATE, dl, VT, Cv);
1402 SDValue Ext = DAG.getNode(ISD::FP_EXTEND, dl, MVT::v2f64, Op.getOperand(0));
1403 return DAG.getNode(Op.getOpcode(), dl, VT, Ext);
1447 In = DAG.getNode(Op.getOpcode(), dl, CastVT, In);
1448 return DAG.getNode(ISD::FP_ROUND, dl, VT, In, DAG.getIntPtrConstant(0));
1455 In = DAG.getNode(CastOpc, dl, CastVT, In);
1456 return DAG.getNode(Op.getOpcode(), dl, VT, In);
1740 ArgValue = DAG.getNode(ISD::BITCAST, DL, VA.getValVT(), ArgValue);
1868 FIN = DAG.getNode(ISD::ADD, DL, getPointerTy(), FIN,
1898 FIN = DAG.getNode(ISD::ADD, DL, getPointerTy(), FIN,
1907 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, MemOps);
1951 Val = DAG.getNode(ISD::BITCAST, DL, VA.getValVT(), Val);
2080 for (SDNode::use_iterator U = DAG.getEntryNode().getNode()->use_begin(),
2081 UE = DAG.getEntryNode().getNode()->use_end();
2096 return DAG.getNode(ISD::TokenFactor, SDLoc(Chain), MVT::Other, ArgChains);
2258 Arg = DAG.getNode(ISD::SIGN_EXTEND, DL, VA.getLocVT(), Arg);
2261 Arg = DAG.getNode(ISD::ZERO_EXTEND, DL, VA.getLocVT(), Arg);
2266 Arg = DAG.getNode(ISD::TRUNCATE, DL, MVT::i1, Arg);
2267 Arg = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i8, Arg);
2269 Arg = DAG.getNode(ISD::ANY_EXTEND, DL, VA.getLocVT(), Arg);
2272 Arg = DAG.getNode(ISD::BITCAST, DL, VA.getLocVT(), Arg);
2275 Arg = DAG.getNode(ISD::FP_EXTEND, DL, VA.getLocVT(), Arg);
2307 PtrOff = DAG.getNode(ISD::ADD, DL, getPointerTy(), StackPtr, PtrOff);
2323 DstAddr = DAG.getNode(ISD::ADD, DL, getPointerTy(), StackPtr, PtrOff);
2342 Arg = DAG.getNode(ISD::TRUNCATE, DL, VA.getValVT(), Arg);
2352 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, MemOpChains);
2376 Callee = DAG.getNode(AArch64ISD::LOADgot, DL, getPointerTy(), Callee);
2383 Callee = DAG.getNode(AArch64ISD::LOADgot, DL, getPointerTy(), Callee);
2438 if (InFlag.getNode())
2446 return DAG.getNode(AArch64ISD::TC_RETURN, DL, NodeTys, Ops);
2449 Chain = DAG.getNode(AArch64ISD::CALL, DL, NodeTys, Ops);
2511 Arg = DAG.getNode(ISD::TRUNCATE, DL, MVT::i1, Arg);
2512 Arg = DAG.getNode(ISD::ZERO_EXTEND, DL, VA.getLocVT(), Arg);
2516 Arg = DAG.getNode(ISD::BITCAST, DL, VA.getLocVT(), Arg);
2528 if (Flag.getNode())
2531 return DAG.getNode(AArch64ISD::RET_FLAG, DL, MVT::Other, RetOps);
2554 return DAG.getNode(AArch64ISD::LOADgot, DL, PtrVT, GotAddr);
2559 return DAG.getNode(
2573 SDValue ADRP = DAG.getNode(AArch64ISD::ADRP, DL, PtrVT, Hi);
2574 return DAG.getNode(AArch64ISD::ADDlow, DL, PtrVT, ADRP, Lo);
2617 SDValue DescAddr = DAG.getNode(AArch64ISD::LOADgot, DL, PtrVT, TLVPAddr);
2643 DAG.getNode(AArch64ISD::CALL, DL, DAG.getVTList(MVT::Other, MVT::Glue),
2678 SDValue Func = DAG.getNode(AArch64ISD::LOADgot, DL, PtrVT, SymAddr);
2704 Chain = DAG.getNode(AArch64ISD::TLSDESC_CALL, DL, NodeTys, Ops);
2725 SDValue ThreadBase = DAG.getNode(AArch64ISD::THREAD_POINTER, DL, PtrVT);
2742 TPOff = DAG.getNode(AArch64ISD::LOADgot, DL, PtrVT, TPOff);
2764 SDValue DescAddr = DAG.getNode(AArch64ISD::ADRP, DL, PtrVT, HiDesc);
2765 DescAddr = DAG.getNode(AArch64ISD::ADDlow, DL, PtrVT, DescAddr, LoDesc);
2794 TPOff = DAG.getNode(ISD::ADD, DL, PtrVT, TPOff, DTPOff);
2806 SDValue DescAddr = DAG.getNode(AArch64ISD::ADRP, DL, PtrVT, HiDesc);
2807 DescAddr = DAG.getNode(AArch64ISD::ADDlow, DL, PtrVT, DescAddr, LoDesc);
2820 return DAG.getNode(ISD::ADD, DL, PtrVT, ThreadBase, TPOff);
2848 if (!RHS.getNode()) {
2876 return DAG.getNode(AArch64ISD::BRCOND, SDLoc(LHS), MVT::Other, Chain, Dest,
2903 return DAG.getNode(AArch64ISD::TBZ, dl, MVT::Other, Chain, Test,
2907 return DAG.getNode(AArch64ISD::CBZ, dl, MVT::Other, Chain, LHS, Dest);
2923 return DAG.getNode(AArch64ISD::TBNZ, dl, MVT::Other, Chain, Test,
2927 return DAG.getNode(AArch64ISD::CBNZ, dl, MVT::Other, Chain, LHS, Dest);
2933 return DAG.getNode(AArch64ISD::BRCOND, dl, MVT::Other, Chain, Dest, CCVal,
2946 DAG.getNode(AArch64ISD::BRCOND, dl, MVT::Other, Chain, Dest, CC1Val, Cmp);
2949 return DAG.getNode(AArch64ISD::BRCOND, dl, MVT::Other, BR1, Dest, CC2Val,
2966 In2 = DAG.getNode(ISD::FP_EXTEND, DL, VT, In2);
2968 In2 = DAG.getNode(ISD::FP_ROUND, DL, VT, In2, DAG.getIntPtrConstant(0));
2989 VecVal1 = DAG.getNode(ISD::BITCAST, DL, VecVT, In1);
2990 VecVal2 = DAG.getNode(ISD::BITCAST, DL, VecVT, In2);
3007 VecVal1 = DAG.getNode(ISD::BITCAST, DL, VecVT, In1);
3008 VecVal2 = DAG.getNode(ISD::BITCAST, DL, VecVT, In2);
3018 SDValue BuildVec = DAG.getNode(ISD::BUILD_VECTOR, DL, VecVT, BuildVectorOps);
3023 BuildVec = DAG.getNode(ISD::BITCAST, DL, MVT::v2f64, BuildVec);
3024 BuildVec = DAG.getNode(ISD::FNEG, DL, MVT::v2f64, BuildVec);
3025 BuildVec = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, BuildVec);
3029 DAG.getNode(AArch64ISD::BIT, DL, VecVT, VecVal1, VecVal2, BuildVec);
3036 return DAG.getNode(ISD::BITCAST, DL, VT, Sel);
3059 VecVal = DAG.getNode(ISD::BITCAST, DL, MVT::f32, Val);
3063 VecVal = DAG.getNode(ISD::BITCAST, DL, MVT::v8i8, Val);
3066 SDValue CtPop = DAG.getNode(ISD::CTPOP, DL, MVT::v8i8, VecVal);
3067 SDValue UaddLV = DAG.getNode(
3072 UaddLV = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i64, UaddLV);
3097 if (!RHS.getNode()) {
3112 return DAG.getNode(AArch64ISD::CSEL, dl, VT, FVal, TVal, CCVal, Cmp);
3131 return DAG.getNode(AArch64ISD::CSEL, dl, VT, FVal, TVal, CC1Val, Cmp);
3141 DAG.getNode(AArch64ISD::CSEL, dl, VT, TVal, FVal, CC1Val, Cmp);
3144 return DAG.getNode(AArch64ISD::CSEL, dl, VT, TVal, CS1, CC2Val, Cmp);
3195 return DAG.getNode(AArch64ISD::CSEL, DL, Op.getValueType(), TVal, FVal,
3223 if (!RHS.getNode()) {
3324 return DAG.getNode(Opcode, dl, VT, TVal, FVal, CCVal, Cmp);
3355 return DAG.getNode(AArch64ISD::FMAX, dl, VT, MinMaxLHS, MinMaxRHS);
3363 return DAG.getNode(AArch64ISD::FMIN, dl, VT, MinMaxLHS, MinMaxRHS);
3378 SDValue CS1 = DAG.getNode(AArch64ISD::CSEL, dl, VT, TVal, FVal, CC1Val, Cmp);
3384 return DAG.getNode(AArch64ISD::CSEL, dl, VT, TVal, CS1, CC2Val, Cmp);
3402 return DAG.getNode(
3415 SDValue ADRP = DAG.getNode(AArch64ISD::ADRP, DL, PtrVT, Hi);
3416 return DAG.getNode(AArch64ISD::ADDlow, DL, PtrVT, ADRP, Lo);
3431 return DAG.getNode(AArch64ISD::LOADgot, DL, PtrVT, GotAddr);
3435 return DAG.getNode(
3455 SDValue ADRP = DAG.getNode(AArch64ISD::ADRP, DL, PtrVT, Hi);
3456 return DAG.getNode(AArch64ISD::ADDlow, DL, PtrVT, ADRP, Lo);
3468 return DAG.getNode(
3478 SDValue ADRP = DAG.getNode(AArch64ISD::ADRP, DL, PtrVT, Hi);
3479 return DAG.getNode(AArch64ISD::ADDlow, DL, PtrVT, ADRP, Lo);
3520 GRTopAddr = DAG.getNode(ISD::ADD, DL, getPointerTy(), VAList,
3524 GRTop = DAG.getNode(ISD::ADD, DL, getPointerTy(), GRTop,
3535 VRTopAddr = DAG.getNode(ISD::ADD, DL, getPointerTy(), VAList,
3539 VRTop = DAG.getNode(ISD::ADD, DL, getPointerTy(), VRTop,
3547 SDValue GROffsAddr = DAG.getNode(ISD::ADD, DL, getPointerTy(), VAList,
3554 SDValue VROffsAddr = DAG.getNode(ISD::ADD, DL, getPointerTy(), VAList,
3560 return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, MemOps);
3600 VAList = DAG.getNode(ISD::ADD, DL, getPointerTy(), VAList,
3602 VAList = DAG.getNode(ISD::AND, DL, getPointerTy(), VAList,
3622 SDValue VANext = DAG.getNode(ISD::ADD, DL, getPointerTy(), VAList,
3634 SDValue NarrowFP = DAG.getNode
3686 DAG.getNode(ISD::ADD, DL, VT, FrameAddr, Offset),
3711 SDValue RevShAmt = DAG.getNode(ISD::SUB, dl, MVT::i64,
3713 SDValue Tmp1 = DAG.getNode(ISD::SRL, dl, VT, ShOpLo, ShAmt);
3714 SDValue ExtraShAmt = DAG.getNode(ISD::SUB, dl, MVT::i64, ShAmt,
3716 SDValue Tmp2 = DAG.getNode(ISD::SHL, dl, VT, ShOpHi, RevShAmt);
3722 SDValue FalseValLo = DAG.getNode(ISD::OR, dl, VT, Tmp1, Tmp2);
3723 SDValue TrueValLo = DAG.getNode(Opc, dl, VT, ShOpHi, ExtraShAmt);
3725 DAG.getNode(AArch64ISD::CSEL, dl, VT, TrueValLo, FalseValLo, CCVal, Cmp);
3729 SDValue FalseValHi = DAG.getNode(Opc, dl, VT, ShOpHi, ShAmt);
3731 ? DAG.getNode(Opc, dl, VT, ShOpHi,
3735 DAG.getNode(AArch64ISD::CSEL, dl, VT, TrueValHi, FalseValHi, CCVal, Cmp);
3755 SDValue RevShAmt = DAG.getNode(ISD::SUB, dl, MVT::i64,
3757 SDValue Tmp1 = DAG.getNode(ISD::SRL, dl, VT, ShOpLo, RevShAmt);
3758 SDValue ExtraShAmt = DAG.getNode(ISD::SUB, dl, MVT::i64, ShAmt,
3760 SDValue Tmp2 = DAG.getNode(ISD::SHL, dl, VT, ShOpHi, ShAmt);
3761 SDValue Tmp3 = DAG.getNode(ISD::SHL, dl, VT, ShOpLo, ExtraShAmt);
3763 SDValue FalseVal = DAG.getNode(ISD::OR, dl, VT, Tmp1, Tmp2);
3769 DAG.getNode(AArch64ISD::CSEL, dl, VT, Tmp3, FalseVal, CCVal, Cmp);
3774 SDValue FalseValLo = DAG.getNode(ISD::SHL, dl, VT, ShOpLo, ShAmt);
3776 DAG.getNode(AArch64ISD::CSEL, dl, VT, TrueValLo, FalseValLo, CCVal, Cmp);
4067 if (Result.getNode()) {
4088 return DAG.getNode(ISD::INSERT_SUBVECTOR, DL, WideTy, DAG.getUNDEF(WideTy),
4182 CurSource = DAG.getNode(ISD::BITCAST, dl, CastVT, SourceVecs[i]);
4197 ShuffleSrcs[i] = DAG.getNode(ISD::CONCAT_VECTORS, dl, VT, CurSource,
4215 ShuffleSrcs[i] = DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, VT, CurSource,
4220 ShuffleSrcs[i] = DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, VT, CurSource,
4225 SDValue VEXTSrc1 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, VT, CurSource,
4227 SDValue VEXTSrc2 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, VT, CurSource,
4230 ShuffleSrcs[i] = DAG.getNode(AArch64ISD::EXT, dl, VT, VEXTSrc1, VEXTSrc2,
4531 V0 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, CastVT, V0,
4535 V1 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, CastVT, V1,
4538 getNode(ISD::CONCAT_VECTORS, DL, VT, V0, V1);
4587 return DAG.getNode(AArch64ISD::REV64, dl, VT, OpLHS);
4590 return DAG.getNode(AArch64ISD::REV32, dl, VT, OpLHS);
4593 return DAG.getNode(AArch64ISD::REV16, dl, VT, OpLHS);
4614 return DAG.getNode(Opcode, dl, VT, OpLHS, Lane);
4620 return DAG.getNode(AArch64ISD::EXT, dl, VT, OpLHS, OpRHS,
4624 return DAG.getNode(AArch64ISD::UZP1, dl, DAG.getVTList(VT, VT), OpLHS,
4627 return DAG.getNode(AArch64ISD::UZP2, dl, DAG.getVTList(VT, VT), OpLHS,
4630 return DAG.getNode(AArch64ISD::ZIP1, dl, DAG.getVTList(VT, VT), OpLHS,
4633 return DAG.getNode(AArch64ISD::ZIP2, dl, DAG.getVTList(VT, VT), OpLHS,
4636 return DAG.getNode(AArch64ISD::TRN1, dl, DAG.getVTList(VT, VT), OpLHS,
4639 return DAG.getNode(AArch64ISD::TRN2, dl, DAG.getVTList(VT, VT), OpLHS,
4669 SDValue V1Cst = DAG.getNode(ISD::BITCAST, DL, IndexVT, V1);
4670 SDValue V2Cst = DAG.getNode(ISD::BITCAST, DL, IndexVT, V2);
4673 if (V2.getNode()->getOpcode() == ISD::UNDEF) {
4675 V1Cst = DAG.getNode(ISD::CONCAT_VECTORS, DL, MVT::v16i8, V1Cst, V1Cst);
4676 Shuffle = DAG.getNode(
4679 DAG.getNode(ISD::BUILD_VECTOR, DL, IndexVT,
4683 V1Cst = DAG.getNode(ISD::CONCAT_VECTORS, DL, MVT::v16i8, V1Cst, V2Cst);
4684 Shuffle = DAG.getNode(
4687 DAG.getNode(ISD::BUILD_VECTOR, DL, IndexVT,
4693 // Shuffle = DAG.getNode(AArch64ISD::TBL2, DL, IndexVT, V1Cst, V2Cst,
4694 // DAG.getNode(ISD::BUILD_VECTOR, DL, IndexVT,
4696 Shuffle = DAG.getNode(
4699 DAG.getNode(ISD::BUILD_VECTOR, DL, IndexVT,
4703 return DAG.getNode(ISD::BITCAST, DL, Op.getValueType(), Shuffle);
4724 ShuffleVectorSDNode *SVN = cast<ShuffleVectorSDNode>(Op.getNode());
4743 return DAG.getNode(AArch64ISD::DUP, dl, V1.getValueType(),
4749 return DAG.getNode(AArch64ISD::DUP, dl, VT, V1.getOperand(Lane));
4767 return DAG.getNode(Opcode, dl, VT, V1, DAG.getConstant(Lane, MVT::i64));
4771 return DAG.getNode(AArch64ISD::REV64, dl, V1.getValueType(), V1, V2);
4773 return DAG.getNode(AArch64ISD::REV32, dl, V1.getValueType(), V1, V2);
4775 return DAG.getNode(AArch64ISD::REV16, dl, V1.getValueType(), V1, V2);
4783 return DAG.getNode(AArch64ISD::EXT, dl, V1.getValueType(), V1, V2,
4788 return DAG.getNode(AArch64ISD::EXT, dl, V1.getValueType(), V1, V1,
4795 return DAG.getNode(Opc, dl, V1.getValueType(), V1, V2);
4799 return DAG.getNode(Opc, dl, V1.getValueType(), V1, V2);
4803 return DAG.getNode(Opc, dl, V1.getValueType(), V1, V2);
4808 return DAG.getNode(Opc, dl, V1.getValueType(), V1, V1);
4812 return DAG.getNode(Opc, dl, V1.getValueType(), V1, V1);
4816 return DAG.getNode(Opc, dl, V1.getValueType(), V1, V1);
4820 if (Concat.getNode())
4842 return DAG.getNode(
4844 DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, ScalarVT, SrcVec, SrcLaneV),
4898 dyn_cast<BuildVectorSDNode>(Op.getOperand(1).getNode());
4924 SDValue Mov = DAG.getNode(AArch64ISD::BICi, dl, MovTy, LHS,
4927 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
4933 SDValue Mov = DAG.getNode(AArch64ISD::BICi, dl, MovTy, LHS,
4936 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
4942 SDValue Mov = DAG.getNode(AArch64ISD::BICi, dl, MovTy, LHS,
4945 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
4951 SDValue Mov = DAG.getNode(AArch64ISD::BICi, dl, MovTy, LHS,
4954 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
4960 SDValue Mov = DAG.getNode(AArch64ISD::BICi, dl, MovTy, LHS,
4963 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
4969 SDValue Mov = DAG.getNode(AArch64ISD::BICi, dl, MovTy, LHS,
4972 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5074 DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, VT,
5090 SDValue Res = tryLowerToSLI(Op.getNode(), DAG);
5091 if (Res.getNode())
5096 dyn_cast<BuildVectorSDNode>(Op.getOperand(0).getNode());
5104 BVN = dyn_cast<BuildVectorSDNode>(Op.getOperand(1).getNode());
5124 SDValue Mov = DAG.getNode(AArch64ISD::ORRi, dl, MovTy, LHS,
5127 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5133 SDValue Mov = DAG.getNode(AArch64ISD::ORRi, dl, MovTy, LHS,
5136 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5142 SDValue Mov = DAG.getNode(AArch64ISD::ORRi, dl, MovTy, LHS,
5145 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5151 SDValue Mov = DAG.getNode(AArch64ISD::ORRi, dl, MovTy, LHS,
5154 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5160 SDValue Mov = DAG.getNode(AArch64ISD::ORRi, dl, MovTy, LHS,
5163 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5169 SDValue Mov = DAG.getNode(AArch64ISD::ORRi, dl, MovTy, LHS,
5172 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5210 return DAG.getNode(ISD::BUILD_VECTOR, dl, VT, Ops);
5218 BuildVectorSDNode *BVN = cast<BuildVectorSDNode>(Op.getNode());
5243 SDValue Mov = DAG.getNode(AArch64ISD::MOVIedit, dl, MVT::v2i64,
5245 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5249 SDValue Mov = DAG.getNode(AArch64ISD::MOVIedit, dl, MVT::f64,
5251 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5257 SDValue Mov = DAG.getNode(AArch64ISD::MOVIshift, dl, MovTy,
5260 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5266 SDValue Mov = DAG.getNode(AArch64ISD::MOVIshift, dl, MovTy,
5269 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5275 SDValue Mov = DAG.getNode(AArch64ISD::MOVIshift, dl, MovTy,
5278 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5284 SDValue Mov = DAG.getNode(AArch64ISD::MOVIshift, dl, MovTy,
5287 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5293 SDValue Mov = DAG.getNode(AArch64ISD::MOVIshift, dl, MovTy,
5296 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5302 SDValue Mov = DAG.getNode(AArch64ISD::MOVIshift, dl, MovTy,
5305 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5311 SDValue Mov = DAG.getNode(AArch64ISD::MOVImsl, dl, MovTy,
5314 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5320 SDValue Mov = DAG.getNode(AArch64ISD::MOVImsl, dl, MovTy,
5323 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5329 SDValue Mov = DAG.getNode(AArch64ISD::MOVI, dl, MovTy,
5331 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5338 SDValue Mov = DAG.getNode(AArch64ISD::FMOV, dl, MovTy,
5340 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5346 SDValue Mov = DAG.getNode(AArch64ISD::FMOV, dl, MVT::v2f64,
5348 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5356 SDValue Mov = DAG.getNode(AArch64ISD::MVNIshift, dl, MovTy,
5359 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5365 SDValue Mov = DAG.getNode(AArch64ISD::MVNIshift, dl, MovTy,
5368 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5374 SDValue Mov = DAG.getNode(AArch64ISD::MVNIshift, dl, MovTy,
5377 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5383 SDValue Mov = DAG.getNode(AArch64ISD::MVNIshift, dl, MovTy,
5386 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5392 SDValue Mov = DAG.getNode(AArch64ISD::MVNIshift, dl, MovTy,
5395 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5401 SDValue Mov = DAG.getNode(AArch64ISD::MVNIshift, dl, MovTy,
5404 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5410 SDValue Mov = DAG.getNode(AArch64ISD::MVNImsl, dl, MovTy,
5413 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5419 SDValue Mov = DAG.getNode(AArch64ISD::MVNImsl, dl, MovTy,
5422 return DAG.getNode(ISD::BITCAST, dl, VT, Mov);
5464 if (!ConstantValue.getNode())
5470 if (!Value.getNode())
5476 if (!Value.getNode())
5480 return DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, VT, Value);
5488 return DAG.getNode(AArch64ISD::DUP, dl, VT, Value);
5499 return DAG.getNode(Opcode, dl, VT, Value, Lane);
5507 Ops.push_back(DAG.getNode(ISD::BITCAST, dl, NewType, Op.getOperand(i)));
5509 SDValue Val = DAG.getNode(ISD::BUILD_VECTOR, dl, VecVT, Ops);
5511 if (Val.getNode())
5512 return DAG.getNode(ISD::BITCAST, dl, VT, Val);
5521 SDValue Val = DAG.getNode(AArch64ISD::DUP, dl, VT, ConstantValue);
5529 Val = DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, VT, Val, V, LaneIdx);
5576 Vec = DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, VT, Vec, V, LaneIdx);
5610 SDValue Node = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, WideTy, WideVec,
5647 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, ExtrTy, WideVec,
5737 BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(Op.getNode());
5794 return DAG.getNode(AArch64ISD::VSHL, SDLoc(Op), VT, Op.getOperand(0),
5796 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, VT,
5806 return DAG.getNode(Opc, SDLoc(Op), VT, Op.getOperand(0),
5816 SDValue NegShift = DAG.getNode(AArch64ISD::NEG, DL, VT, Op.getOperand(1));
5818 DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, VT,
5831 BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(RHS.getNode());
5844 Fcmeq = DAG.getNode(AArch64ISD::FCMEQz, dl, VT, LHS);
5846 Fcmeq = DAG.getNode(AArch64ISD::FCMEQ, dl, VT, LHS, RHS);
5847 return DAG.getNode(AArch64ISD::NOT, dl, VT, Fcmeq);
5851 return DAG.getNode(AArch64ISD::FCMEQz, dl, VT, LHS);
5852 return DAG.getNode(AArch64ISD::FCMEQ, dl, VT, LHS, RHS);
5855 return DAG.getNode(AArch64ISD::FCMGEz, dl, VT, LHS);
5856 return DAG.getNode(AArch64ISD::FCMGE, dl, VT, LHS, RHS);
5859 return DAG.getNode(AArch64ISD::FCMGTz, dl, VT, LHS);
5860 return DAG.getNode(AArch64ISD::FCMGT, dl, VT, LHS, RHS);
5863 return DAG.getNode(AArch64ISD::FCMLEz, dl, VT, LHS);
5864 return DAG.getNode(AArch64ISD::FCMGE, dl, VT, RHS, LHS);
5872 return DAG.getNode(AArch64ISD::FCMLTz, dl, VT, LHS);
5873 return DAG.getNode(AArch64ISD::FCMGT, dl, VT, RHS, LHS);
5883 Cmeq = DAG.getNode(AArch64ISD::CMEQz, dl, VT, LHS);
5885 Cmeq = DAG.getNode(AArch64ISD::CMEQ, dl, VT, LHS, RHS);
5886 return DAG.getNode(AArch64ISD::NOT, dl, VT, Cmeq);
5890 return DAG.getNode(AArch64ISD::CMEQz, dl, VT, LHS);
5891 return DAG.getNode(AArch64ISD::CMEQ, dl, VT, LHS, RHS);
5894 return DAG.getNode(AArch64ISD::CMGEz, dl, VT, LHS);
5895 return DAG.getNode(AArch64ISD::CMGE, dl, VT, LHS, RHS);
5898 return DAG.getNode(AArch64ISD::CMGTz, dl, VT, LHS);
5899 return DAG.getNode(AArch64ISD::CMGT, dl, VT, LHS, RHS);
5902 return DAG.getNode(AArch64ISD::CMLEz, dl, VT, LHS);
5903 return DAG.getNode(AArch64ISD::CMGE, dl, VT, RHS, LHS);
5905 return DAG.getNode(AArch64ISD::CMHS, dl, VT, RHS, LHS);
5907 return DAG.getNode(AArch64ISD::CMHI, dl, VT, RHS, LHS);
5910 return DAG.getNode(AArch64ISD::CMLTz, dl, VT, LHS);
5911 return DAG.getNode(AArch64ISD::CMGT, dl, VT, RHS, LHS);
5913 return DAG.getNode(AArch64ISD::CMHI, dl, VT, LHS, RHS);
5915 return DAG.getNode(AArch64ISD::CMHS, dl, VT, LHS, RHS);
5945 if (!Cmp.getNode())
5951 if (!Cmp2.getNode())
5954 Cmp = DAG.getNode(ISD::OR, dl, Cmp.getValueType(), Cmp, Cmp2);
6339 SDValue Neg = DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, VT),
6343 DAG.getNode(AArch64ISD::SUBS, DL, DAG.getVTList(VT, MVT::i32),
6345 return DAG.getNode(AArch64ISD::CSEL, DL, VT, N0.getOperand(0), Neg,
6347 SDValue(Cmp.getNode(), 1));
6381 DAG.getNode(ISD::SHL, SDLoc(N), VT, N->getOperand(0),
6383 return DAG.getNode(ISD::ADD, SDLoc(N), VT, ShiftedVal,
6390 DAG.getNode(ISD::SHL, SDLoc(N), VT, N->getOperand(0),
6392 return DAG.getNode(ISD::SUB, SDLoc(N), VT, ShiftedVal,
6400 DAG.getNode(ISD::SHL, SDLoc(N), VT, N->getOperand(0),
6403 DAG.getNode(ISD::ADD, SDLoc(N), VT, ShiftedVal, N->getOperand(0));
6404 return DAG.getNode(ISD::SUB, SDLoc(N), VT, DAG.getConstant(0, VT), Add);
6410 DAG.getNode(ISD::SHL, SDLoc(N), VT, N->getOperand(0),
6412 return DAG.getNode(ISD::SUB, SDLoc(N), VT, N->getOperand(0),
6432 if (ISD::isNormalLoad(N0.getNode()) && N0.hasOneUse() &&
6447 return DAG.getNode(Opcode, SDLoc(N), VT, Load);
6513 return DAG.getNode(AArch64ISD::EXTR, DL, VT, LHS, RHS,
6557 return DAG.getNode(AArch64ISD::BSL, DL, VT, SDValue(BVN0, 0),
6576 if (Res.getNode())
6580 if (Res.getNode())
6643 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, VT, Source, HalfIdx);
6668 return DAG.getNode(AArch64ISD::DUPLANE64, dl, VT,
6695 return DAG.getNode(
6697 DAG.getNode(ISD::CONCAT_VECTORS, dl, ConcatTy,
6698 DAG.getNode(ISD::BITCAST, dl, RHSTy, N->getOperand(0)), RHS));
6742 DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, VecResTy, IID, Vec, Shift);
6743 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, ResTy, Convert, Lane);
6789 NewDUP = DAG.getNode(N.getOpcode(), SDLoc(N), NewDUPVT, N.getOperand(0),
6792 NewDUP = DAG.getNode(AArch64ISD::DUP, SDLoc(N), NewDUPVT, N.getOperand(0));
6794 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N.getNode()), NarrowTy,
6929 LHS = DAG.getNode(ISD::ADD, dl, VT, RHS, DAG.getConstant(1, VT));
6930 return DAG.getNode(AArch64ISD::CSEL, dl, VT, RHS, LHS, CCVal, Cmp);
6971 if (!RHS.getNode())
6974 RHS = DAG.getNode(ExtType, SDLoc(N), VT, RHS);
6977 if (!LHS.getNode())
6980 LHS = DAG.getNode(ExtType, SDLoc(N), VT, LHS);
6983 return DAG.getNode(N->getOpcode(), SDLoc(N), VT, LHS, RHS);
7010 if (!RHS.getNode())
7014 if (!LHS.getNode())
7018 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, SDLoc(N), N->getValueType(0),
7070 return DAG.getNode(Opcode, SDLoc(N), N->getValueType(0), N->getOperand(1),
7073 return DAG.getNode(Opcode, SDLoc(N), N->getValueType(0), N->getOperand(1),
7091 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, SDLoc(N), MVT::i32,
7108 return DAG.getNode(AArch64ISD::FMAX, SDLoc(N), N->getValueType(0),
7111 return DAG.getNode(AArch64ISD::FMIN, SDLoc(N), N->getValueType(0),
7143 SDNode *ABDNode = N->getOperand(0).getNode();
7148 if (!NewABD.getNode())
7151 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), N->getValueType(0),
7207 Src = DAG.getNode(N->getOpcode(), DL, SrcVT, Src);
7220 Lo = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, InNVT, Src,
7222 Hi = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, InNVT, Src,
7224 Lo = DAG.getNode(N->getOpcode(), DL, LoVT, Lo);
7225 Hi = DAG.getNode(N->getOpcode(), DL, HiVT, Hi);
7229 return DAG.getNode(ISD::CONCAT_VECTORS, DL, ResVT, Lo, Hi);
7282 SDValue OffsetPtr = DAG.getNode(ISD::ADD, DL, MVT::i64, BasePtr,
7344 SDValue SubVector0 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, HalfVT, StVal,
7346 SDValue SubVector1 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, HalfVT, StVal,
7352 SDValue OffsetPtr = DAG.getNode(ISD::ADD, DL, MVT::i64, BasePtr,
7371 SDNode *LD = N->getOperand(LoadIdx).getNode();
7395 for (SDNode::use_iterator UI = Addr.getNode()->use_begin(), UE =
7396 Addr.getNode()->use_end(); UI != UE; ++UI) {
7408 if (User->isPredecessorOf(Vector.getNode()))
7413 if (ConstantSDNode *CInc = dyn_cast<ConstantSDNode>(Inc.getNode())) {
7440 NewResults.push_back(SDValue(UpdN.getNode(), 2)); // Chain
7442 DCI.CombineTo(N, SDValue(UpdN.getNode(), 0)); // Dup/Inserted Result
7443 DCI.CombineTo(User, SDValue(UpdN.getNode(), 1)); // Write back register
7462 for (SDNode::use_iterator UI = Addr.getNode()->use_begin(),
7463 UE = Addr.getNode()->use_end(); UI != UE; ++UI) {
7535 if (ConstantSDNode *CInc = dyn_cast<ConstantSDNode>(Inc.getNode())) {
7571 NewResults.push_back(SDValue(UpdN.getNode(), i));
7573 NewResults.push_back(SDValue(UpdN.getNode(), NumResultVecs + 1));
7575 DCI.CombineTo(User, SDValue(UpdN.getNode(), NumResultVecs));
7626 BR = DAG.getNode(AArch64ISD::CBZ, SDLoc(N), MVT::Other, Chain, LHS, Dest);
7628 BR = DAG.getNode(AArch64ISD::CBNZ, SDLoc(N), MVT::Other, Chain, LHS, Dest);
7662 return DAG.getNode(ISD::VSELECT, SDLoc(N), ResVT, SetCC,
7690 DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, SrcVT, N0.getOperand(0));
7692 DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, SrcVT, N0.getOperand(1));
7693 SDValue SetCC = DAG.getNode(ISD::SETCC, DL, CCVT, LHS, RHS, N0.getOperand(2));
7698 Mask = DAG.getNode(ISD::BITCAST, DL, ResVT.changeVectorElementTypeToInteger(),
7862 if (!getIndexedAddressParts(Ptr.getNode(), Base, Offset, AM, IsInc, DAG))