Lines Matching refs:SDValue

78   inline bool SelectAddrGA(SDValue &N, SDValue &R);
79 inline bool SelectAddrGP(SDValue &N, SDValue &R);
80 bool SelectGlobalAddress(SDValue &N, SDValue &R, bool UseGP);
81 bool SelectAddrFI(SDValue &N, SDValue &R);
90 bool SelectInlineAsmMemoryOperand(const SDValue &Op,
92 std::vector<SDValue> &OutOps) override;
116 SDValue XformMskToBitPosU5Imm(uint32_t Imm, SDLoc DL) { in XformMskToBitPosU5Imm()
126 SDValue XformMskToBitPosU4Imm(uint16_t Imm, SDLoc DL) { in XformMskToBitPosU4Imm()
132 SDValue XformMskToBitPosU3Imm(uint8_t Imm, SDLoc DL) { in XformMskToBitPosU3Imm()
145 inline SDValue XformM5ToU5Imm(signed Imm, SDLoc DL) { in XformM5ToU5Imm()
152 inline SDValue XformU7ToU7M1Imm(signed Imm, SDLoc DL) { in XformU7ToU7M1Imm()
158 inline SDValue XformSToSM1Imm(signed Imm, SDLoc DL) { in XformSToSM1Imm()
163 inline SDValue XformUToUM1Imm(unsigned Imm, SDLoc DL) { in XformUToUM1Imm()
169 inline SDValue XformSToSM2Imm(unsigned Imm, SDLoc DL) { in XformSToSM2Imm()
174 inline SDValue XformSToSM3Imm(unsigned Imm, SDLoc DL) { in XformSToSM3Imm()
182 bool isValueExtension(const SDValue &Val, unsigned FromBits, SDValue &Src);
257 SDValue Chain = LD->getChain(); in SelectIndexedLoadSignExtend64()
259 SDValue Base = LD->getBasePtr(); in SelectIndexedLoadSignExtend64()
260 SDValue Offset = LD->getOffset(); in SelectIndexedLoadSignExtend64()
265 SDValue TargetConst = CurDAG->getTargetConstant(Val, dl, MVT::i32); in SelectIndexedLoadSignExtend64()
270 SDValue(Result_1, 0)); in SelectIndexedLoadSignExtend64()
274 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoadSignExtend64()
275 SDValue(LD, 1), in SelectIndexedLoadSignExtend64()
276 SDValue(LD, 2) }; in SelectIndexedLoadSignExtend64()
277 const SDValue Tos[] = { SDValue(Result_2, 0), in SelectIndexedLoadSignExtend64()
278 SDValue(Result_1, 1), in SelectIndexedLoadSignExtend64()
279 SDValue(Result_1, 2) }; in SelectIndexedLoadSignExtend64()
284 SDValue TargetConst0 = CurDAG->getTargetConstant(0, dl, MVT::i32); in SelectIndexedLoadSignExtend64()
285 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, dl, MVT::i32); in SelectIndexedLoadSignExtend64()
289 SDValue(Result_1, 0)); in SelectIndexedLoadSignExtend64()
292 SDValue(Result_1, 1)); in SelectIndexedLoadSignExtend64()
296 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoadSignExtend64()
297 SDValue(LD, 1), in SelectIndexedLoadSignExtend64()
298 SDValue(LD, 2) }; in SelectIndexedLoadSignExtend64()
299 const SDValue Tos[] = { SDValue(Result_2, 0), in SelectIndexedLoadSignExtend64()
300 SDValue(Result_3, 0), in SelectIndexedLoadSignExtend64()
301 SDValue(Result_1, 1) }; in SelectIndexedLoadSignExtend64()
310 SDValue Chain = LD->getChain(); in SelectIndexedLoadZeroExtend64()
312 SDValue Base = LD->getBasePtr(); in SelectIndexedLoadZeroExtend64()
313 SDValue Offset = LD->getOffset(); in SelectIndexedLoadZeroExtend64()
318 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, dl, MVT::i32); in SelectIndexedLoadZeroExtend64()
319 SDValue TargetConst0 = CurDAG->getTargetConstant(0, dl, MVT::i32); in SelectIndexedLoadZeroExtend64()
326 SDValue(Result_1,0)); in SelectIndexedLoadZeroExtend64()
330 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoadZeroExtend64()
331 SDValue(LD, 1), in SelectIndexedLoadZeroExtend64()
332 SDValue(LD, 2) }; in SelectIndexedLoadZeroExtend64()
333 const SDValue Tos[] = { SDValue(Result_2, 0), in SelectIndexedLoadZeroExtend64()
334 SDValue(Result_1, 1), in SelectIndexedLoadZeroExtend64()
335 SDValue(Result_1, 2) }; in SelectIndexedLoadZeroExtend64()
341 SDValue TargetConst0 = CurDAG->getTargetConstant(0, dl, MVT::i32); in SelectIndexedLoadZeroExtend64()
342 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, dl, MVT::i32); in SelectIndexedLoadZeroExtend64()
349 SDValue(Result_1,0)); in SelectIndexedLoadZeroExtend64()
353 SDValue(Result_1, 1)); in SelectIndexedLoadZeroExtend64()
357 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoadZeroExtend64()
358 SDValue(LD, 1), in SelectIndexedLoadZeroExtend64()
359 SDValue(LD, 2) }; in SelectIndexedLoadZeroExtend64()
360 const SDValue Tos[] = { SDValue(Result_2, 0), // Load value. in SelectIndexedLoadZeroExtend64()
361 SDValue(Result_3, 0), // New address. in SelectIndexedLoadZeroExtend64()
362 SDValue(Result_1, 1) }; in SelectIndexedLoadZeroExtend64()
369 SDValue Chain = LD->getChain(); in SelectIndexedLoad()
370 SDValue Base = LD->getBasePtr(); in SelectIndexedLoad()
371 SDValue Offset = LD->getOffset(); in SelectIndexedLoad()
433 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, dl, MVT::i32); in SelectIndexedLoad()
442 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoad()
443 SDValue(LD, 2) in SelectIndexedLoad()
445 const SDValue Tos[] = { SDValue(Result, 0), in SelectIndexedLoad()
446 SDValue(Result, 2) in SelectIndexedLoad()
450 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoad()
451 SDValue(LD, 1), in SelectIndexedLoad()
452 SDValue(LD, 2) in SelectIndexedLoad()
454 const SDValue Tos[] = { SDValue(Result, 0), in SelectIndexedLoad()
455 SDValue(Result, 1), in SelectIndexedLoad()
456 SDValue(Result, 2) in SelectIndexedLoad()
462 SDValue TargetConst0 = CurDAG->getTargetConstant(0, dl, MVT::i32); in SelectIndexedLoad()
463 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, dl, MVT::i32); in SelectIndexedLoad()
470 SDValue(Result_1, 1)); in SelectIndexedLoad()
474 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoad()
475 SDValue(LD, 1), in SelectIndexedLoad()
476 SDValue(LD, 2) in SelectIndexedLoad()
478 const SDValue Tos[] = { SDValue(Result_1, 0), in SelectIndexedLoad()
479 SDValue(Result_2, 0), in SelectIndexedLoad()
480 SDValue(Result_1, 1) in SelectIndexedLoad()
506 SDValue Chain = ST->getChain(); in SelectIndexedStore()
507 SDValue Base = ST->getBasePtr(); in SelectIndexedStore()
508 SDValue Offset = ST->getOffset(); in SelectIndexedStore()
509 SDValue Value = ST->getValue(); in SelectIndexedStore()
541 SDValue Ops[] = {Base, CurDAG->getTargetConstant(Val, dl, MVT::i32), Value, in SelectIndexedStore()
551 ReplaceUses(SDValue(ST,1), SDValue(Result,1)); in SelectIndexedStore()
559 SDValue Ops[] = { Base, CurDAG->getTargetConstant(0, dl, MVT::i32), Value, in SelectIndexedStore()
578 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, dl, MVT::i32); in SelectIndexedStore()
584 SDValue(Result_1, 0)); in SelectIndexedStore()
589 ReplaceUses(SDValue(ST,0), SDValue(Result_2,0)); in SelectIndexedStore()
590 ReplaceUses(SDValue(ST,1), SDValue(Result_1,0)); in SelectIndexedStore()
622 SDValue MulOp0 = N->getOperand(0); in SelectMul()
623 SDValue MulOp1 = N->getOperand(1); in SelectMul()
625 SDValue OP0; in SelectMul()
626 SDValue OP1; in SelectMul()
630 SDValue Sext0 = MulOp0.getOperand(0); in SelectMul()
644 SDValue Chain = LD->getChain(); in SelectMul()
645 SDValue TargetConst0 = CurDAG->getTargetConstant(0, dl, MVT::i32); in SelectMul()
646 OP0 = SDValue(CurDAG->getMachineNode(Hexagon::L2_loadri_io, dl, MVT::i32, in SelectMul()
656 SDValue Sext1 = MulOp1.getOperand(0); in SelectMul()
670 SDValue Chain = LD->getChain(); in SelectMul()
671 SDValue TargetConst0 = CurDAG->getTargetConstant(0, dl, MVT::i32); in SelectMul()
672 OP1 = SDValue(CurDAG->getMachineNode(Hexagon::L2_loadri_io, dl, MVT::i32, in SelectMul()
693 SDValue Shl_0 = N->getOperand(0); in SelectSHL()
694 SDValue Shl_1 = N->getOperand(1); in SelectSHL()
698 SDValue Mul_0 = Shl_0.getOperand(0); // Val in SelectSHL()
699 SDValue Mul_1 = Shl_0.getOperand(1); // Const in SelectSHL()
707 SDValue Val = CurDAG->getTargetConstant(ValConst, dl, in SelectSHL()
720 SDValue Sub_0 = Shl_0.getOperand(0); // Const 0 in SelectSHL()
721 SDValue Sub_1 = Shl_0.getOperand(1); // Val in SelectSHL()
727 SDValue Shl2_0 = Sub_1.getOperand(0); // Val in SelectSHL()
728 SDValue Shl2_1 = Sub_1.getOperand(1); // Const in SelectSHL()
735 SDValue Val = CurDAG->getTargetConstant(-ValConst, dl, in SelectSHL()
770 SDValue Op0 = N->getOperand(0); in SelectZeroExtend()
785 SDValue Ones = CurDAG->getTargetConstant(MV, dl, MVT::i64); in SelectZeroExtend()
790 SDValue(Mask,0), SDValue(OnesReg,0)); in SelectZeroExtend()
791 SDValue SubR = CurDAG->getTargetConstant(Hexagon::subreg_loreg, dl, in SelectZeroExtend()
794 SDValue(And,0), SubR); in SelectZeroExtend()
797 SDValue(Mask,0), SDValue(OnesReg,0)); in SelectZeroExtend()
808 SDValue TargetConst0 = CurDAG->getTargetConstant(0, dl, MVT::i32); in SelectZeroExtend()
811 SDValue(IsIntrinsic, 0)); in SelectZeroExtend()
817 SDValue(Result_2, 0), in SelectZeroExtend()
818 SDValue(Result_1, 0)); in SelectZeroExtend()
826 SDValue(IsIntrinsic, 0)); in SelectZeroExtend()
849 SDValue Chain = N->getOperand(0); in SelectIntrinsicWChain()
850 SDValue Base = N->getOperand(2); in SelectIntrinsicWChain()
851 SDValue Load = N->getOperand(3); in SelectIntrinsicWChain()
852 SDValue ModifierExpr = N->getOperand(4); in SelectIntrinsicWChain()
853 SDValue Offset = N->getOperand(5); in SelectIntrinsicWChain()
910 SmallVector<SDValue, 5> Ops; in SelectIntrinsicWChain()
919 SDValue ST; in SelectIntrinsicWChain()
924 ST = CurDAG->getTruncStore(Chain, dl, SDValue(Result, 1), Load, in SelectIntrinsicWChain()
927 ST = CurDAG->getStore(Chain, dl, SDValue(Result, 1), Load, Mem); in SelectIntrinsicWChain()
931 const SDValue Froms[] = { SDValue(N, 0), in SelectIntrinsicWChain()
932 SDValue(N, 1) }; in SelectIntrinsicWChain()
933 const SDValue Tos[] = { SDValue(Result, 0), in SelectIntrinsicWChain()
934 SDValue(Store, 0) }; in SelectIntrinsicWChain()
946 SDValue Chain = N->getOperand(0); in SelectIntrinsicWChain()
947 SDValue Base = N->getOperand(2); in SelectIntrinsicWChain()
948 SDValue Load = N->getOperand(3); in SelectIntrinsicWChain()
949 SDValue ModifierExpr = N->getOperand(4); in SelectIntrinsicWChain()
1004 SmallVector<SDValue, 4> Ops; in SelectIntrinsicWChain()
1010 SDValue ST; in SelectIntrinsicWChain()
1015 ST = CurDAG->getTruncStore(Chain, dl, SDValue(Result, 1), Load, in SelectIntrinsicWChain()
1018 ST = CurDAG->getStore(Chain, dl, SDValue(Result, 1), Load, Mem); in SelectIntrinsicWChain()
1022 const SDValue Froms[] = { SDValue(N, 0), in SelectIntrinsicWChain()
1023 SDValue(N, 1) }; in SelectIntrinsicWChain()
1024 const SDValue Tos[] = { SDValue(Result, 0), in SelectIntrinsicWChain()
1025 SDValue(Store, 0) }; in SelectIntrinsicWChain()
1051 SDValue const &V = N->getOperand(1); in SelectIntrinsicWOChain()
1052 SDValue U; in SelectIntrinsicWOChain()
1054 SDValue R = CurDAG->getNode(N->getOpcode(), SDLoc(N), N->getValueType(0), in SelectIntrinsicWOChain()
1214 SDValue SDVal = CurDAG->getTargetConstant(BitPos, dl, MVT::i32); in SelectBitOp()
1228 SDValue RegClass = CurDAG->getTargetConstant(Hexagon::DoubleRegsRegClassID, in SelectBitOp()
1231 SDValue SubregHiIdx = CurDAG->getTargetConstant(Hexagon::subreg_hireg, dl, in SelectBitOp()
1233 SDValue SubregLoIdx = CurDAG->getTargetConstant(Hexagon::subreg_loreg, dl, in SelectBitOp()
1236 SDValue SubregHI = CurDAG->getTargetExtractSubreg(Hexagon::subreg_hireg, dl, in SelectBitOp()
1237 MVT::i32, SDValue(Reg, 0)); in SelectBitOp()
1239 SDValue SubregLO = CurDAG->getTargetExtractSubreg(Hexagon::subreg_loreg, dl, in SelectBitOp()
1240 MVT::i32, SDValue(Reg, 0)); in SelectBitOp()
1246 const SDValue Ops[] = { RegClass, SubregHI, SubregHiIdx, in SelectBitOp()
1247 SDValue(Result0, 0), SubregLoIdx }; in SelectBitOp()
1255 const SDValue Ops[] = { RegClass, SDValue(Result0, 0), SubregHiIdx, in SelectBitOp()
1273 SDValue FI = CurDAG->getTargetFrameIndex(FX, MVT::i32); in SelectFrameIndex()
1275 SDValue Zero = CurDAG->getTargetConstant(0, DL, MVT::i32); in SelectFrameIndex()
1288 SDValue CH = CurDAG->getEntryNode(); in SelectFrameIndex()
1289 SDValue Ops[] = { CurDAG->getCopyFromReg(CH, DL, AR, MVT::i32), FI, Zero }; in SelectFrameIndex()
1294 CurDAG->TransferDbgValues(SDValue(N, 0), SDValue(R, 0)); in SelectFrameIndex()
1351 SelectInlineAsmMemoryOperand(const SDValue &Op, unsigned ConstraintID, in SelectInlineAsmMemoryOperand()
1352 std::vector<SDValue> &OutOps) { in SelectInlineAsmMemoryOperand()
1353 SDValue Inp = Op, Res; in SelectInlineAsmMemoryOperand()
1387 auto IsZero = [] (const SDValue &V) -> bool { in PreprocessISelDAG()
1392 auto IsSelect0 = [IsZero] (const SDValue &Op) -> bool { in PreprocessISelDAG()
1398 SDValue N0 = I->getOperand(0), N1 = I->getOperand(1); in PreprocessISelDAG()
1401 SDValue SOp = SelN0 ? N0 : N1; in PreprocessISelDAG()
1402 SDValue VOp = SelN0 ? N1 : N0; in PreprocessISelDAG()
1405 SDValue SC = SOp.getOperand(0); in PreprocessISelDAG()
1406 SDValue SX = SOp.getOperand(1); in PreprocessISelDAG()
1407 SDValue SY = SOp.getOperand(2); in PreprocessISelDAG()
1410 SDValue NewOr = DAG.getNode(ISD::OR, DLS, VT, SX, VOp); in PreprocessISelDAG()
1411 SDValue NewSel = DAG.getNode(ISD::SELECT, DLS, VT, SC, NewOr, VOp); in PreprocessISelDAG()
1414 SDValue NewOr = DAG.getNode(ISD::OR, DLS, VT, SY, VOp); in PreprocessISelDAG()
1415 SDValue NewSel = DAG.getNode(ISD::SELECT, DLS, VT, SC, VOp, NewOr); in PreprocessISelDAG()
1438 bool HexagonDAGToDAGISel::SelectAddrFI(SDValue& N, SDValue &R) { in SelectAddrFI()
1450 inline bool HexagonDAGToDAGISel::SelectAddrGA(SDValue &N, SDValue &R) { in SelectAddrGA()
1454 inline bool HexagonDAGToDAGISel::SelectAddrGP(SDValue &N, SDValue &R) { in SelectAddrGP()
1458 bool HexagonDAGToDAGISel::SelectGlobalAddress(SDValue &N, SDValue &R, in SelectGlobalAddress()
1462 SDValue N0 = N.getOperand(0); in SelectGlobalAddress()
1463 SDValue N1 = N.getOperand(1); in SelectGlobalAddress()
1470 SDValue Addr = N0.getOperand(0); in SelectGlobalAddress()
1499 bool HexagonDAGToDAGISel::isValueExtension(const SDValue &Val, in isValueExtension()
1500 unsigned FromBits, SDValue &Src) { in isValueExtension()
1506 SDValue const &Op0 = Val.getOperand(0); in isValueExtension()