Lines Matching refs:SDValue
69 inline bool SelectAddrGA(SDValue &N, SDValue &R);
70 inline bool SelectAddrGP(SDValue &N, SDValue &R);
71 bool SelectGlobalAddress(SDValue &N, SDValue &R, bool UseGP);
72 bool SelectAddrFI(SDValue &N, SDValue &R);
81 bool SelectInlineAsmMemoryOperand(const SDValue &Op,
83 std::vector<SDValue> &OutOps) override;
107 SDValue XformMskToBitPosU5Imm(uint32_t Imm) { in XformMskToBitPosU5Imm()
117 SDValue XformMskToBitPosU4Imm(uint16_t Imm) { in XformMskToBitPosU4Imm()
123 SDValue XformMskToBitPosU3Imm(uint8_t Imm) { in XformMskToBitPosU3Imm()
136 inline SDValue XformM5ToU5Imm(signed Imm) { in XformM5ToU5Imm()
143 inline SDValue XformU7ToU7M1Imm(signed Imm) { in XformU7ToU7M1Imm()
149 inline SDValue XformSToSM1Imm(signed Imm) { in XformSToSM1Imm()
154 inline SDValue XformUToUM1Imm(unsigned Imm) { in XformUToUM1Imm()
160 inline SDValue XformSToSM2Imm(unsigned Imm) { in XformSToSM2Imm()
165 inline SDValue XformSToSM3Imm(unsigned Imm) { in XformSToSM3Imm()
173 bool isValueExtension(const SDValue &Val, unsigned FromBits, SDValue &Src);
249 SDValue Chain = LD->getChain(); in SelectIndexedLoadSignExtend64()
251 SDValue Base = LD->getBasePtr(); in SelectIndexedLoadSignExtend64()
252 SDValue Offset = LD->getOffset(); in SelectIndexedLoadSignExtend64()
258 SDValue TargetConst = CurDAG->getTargetConstant(Val, MVT::i32); in SelectIndexedLoadSignExtend64()
263 SDValue(Result_1, 0)); in SelectIndexedLoadSignExtend64()
267 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoadSignExtend64()
268 SDValue(LD, 1), in SelectIndexedLoadSignExtend64()
269 SDValue(LD, 2) }; in SelectIndexedLoadSignExtend64()
270 const SDValue Tos[] = { SDValue(Result_2, 0), in SelectIndexedLoadSignExtend64()
271 SDValue(Result_1, 1), in SelectIndexedLoadSignExtend64()
272 SDValue(Result_1, 2) }; in SelectIndexedLoadSignExtend64()
277 SDValue TargetConst0 = CurDAG->getTargetConstant(0, MVT::i32); in SelectIndexedLoadSignExtend64()
278 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, MVT::i32); in SelectIndexedLoadSignExtend64()
282 SDValue(Result_1, 0)); in SelectIndexedLoadSignExtend64()
285 SDValue(Result_1, 1)); in SelectIndexedLoadSignExtend64()
289 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoadSignExtend64()
290 SDValue(LD, 1), in SelectIndexedLoadSignExtend64()
291 SDValue(LD, 2) }; in SelectIndexedLoadSignExtend64()
292 const SDValue Tos[] = { SDValue(Result_2, 0), in SelectIndexedLoadSignExtend64()
293 SDValue(Result_3, 0), in SelectIndexedLoadSignExtend64()
294 SDValue(Result_1, 1) }; in SelectIndexedLoadSignExtend64()
303 SDValue Chain = LD->getChain(); in SelectIndexedLoadZeroExtend64()
305 SDValue Base = LD->getBasePtr(); in SelectIndexedLoadZeroExtend64()
306 SDValue Offset = LD->getOffset(); in SelectIndexedLoadZeroExtend64()
312 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, MVT::i32); in SelectIndexedLoadZeroExtend64()
313 SDValue TargetConst0 = CurDAG->getTargetConstant(0, MVT::i32); in SelectIndexedLoadZeroExtend64()
320 SDValue(Result_1,0)); in SelectIndexedLoadZeroExtend64()
324 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoadZeroExtend64()
325 SDValue(LD, 1), in SelectIndexedLoadZeroExtend64()
326 SDValue(LD, 2) }; in SelectIndexedLoadZeroExtend64()
327 const SDValue Tos[] = { SDValue(Result_2, 0), in SelectIndexedLoadZeroExtend64()
328 SDValue(Result_1, 1), in SelectIndexedLoadZeroExtend64()
329 SDValue(Result_1, 2) }; in SelectIndexedLoadZeroExtend64()
335 SDValue TargetConst0 = CurDAG->getTargetConstant(0, MVT::i32); in SelectIndexedLoadZeroExtend64()
336 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, MVT::i32); in SelectIndexedLoadZeroExtend64()
343 SDValue(Result_1,0)); in SelectIndexedLoadZeroExtend64()
347 SDValue(Result_1, 1)); in SelectIndexedLoadZeroExtend64()
351 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoadZeroExtend64()
352 SDValue(LD, 1), in SelectIndexedLoadZeroExtend64()
353 SDValue(LD, 2) }; in SelectIndexedLoadZeroExtend64()
354 const SDValue Tos[] = { SDValue(Result_2, 0), // Load value. in SelectIndexedLoadZeroExtend64()
355 SDValue(Result_3, 0), // New address. in SelectIndexedLoadZeroExtend64()
356 SDValue(Result_1, 1) }; in SelectIndexedLoadZeroExtend64()
363 SDValue Chain = LD->getChain(); in SelectIndexedLoad()
364 SDValue Base = LD->getBasePtr(); in SelectIndexedLoad()
365 SDValue Offset = LD->getOffset(); in SelectIndexedLoad()
410 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, MVT::i32); in SelectIndexedLoad()
418 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoad()
419 SDValue(LD, 1), in SelectIndexedLoad()
420 SDValue(LD, 2) in SelectIndexedLoad()
422 const SDValue Tos[] = { SDValue(Result, 0), in SelectIndexedLoad()
423 SDValue(Result, 1), in SelectIndexedLoad()
424 SDValue(Result, 2) in SelectIndexedLoad()
429 SDValue TargetConst0 = CurDAG->getTargetConstant(0, MVT::i32); in SelectIndexedLoad()
430 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, MVT::i32); in SelectIndexedLoad()
437 SDValue(Result_1, 1)); in SelectIndexedLoad()
441 const SDValue Froms[] = { SDValue(LD, 0), in SelectIndexedLoad()
442 SDValue(LD, 1), in SelectIndexedLoad()
443 SDValue(LD, 2) in SelectIndexedLoad()
445 const SDValue Tos[] = { SDValue(Result_1, 0), in SelectIndexedLoad()
446 SDValue(Result_2, 0), in SelectIndexedLoad()
447 SDValue(Result_1, 1) in SelectIndexedLoad()
473 SDValue Chain = ST->getChain(); in SelectIndexedStore()
474 SDValue Base = ST->getBasePtr(); in SelectIndexedStore()
475 SDValue Offset = ST->getOffset(); in SelectIndexedStore()
476 SDValue Value = ST->getValue(); in SelectIndexedStore()
501 SDValue Ops[] = {Base, CurDAG->getTargetConstant(Val, MVT::i32), Value, in SelectIndexedStore()
511 ReplaceUses(SDValue(ST,1), SDValue(Result,1)); in SelectIndexedStore()
519 SDValue Ops[] = { Base, CurDAG->getTargetConstant(0, MVT::i32), Value, in SelectIndexedStore()
531 SDValue TargetConstVal = CurDAG->getTargetConstant(Val, MVT::i32); in SelectIndexedStore()
537 SDValue(Result_1, 0)); in SelectIndexedStore()
542 ReplaceUses(SDValue(ST,0), SDValue(Result_2,0)); in SelectIndexedStore()
543 ReplaceUses(SDValue(ST,1), SDValue(Result_1,0)); in SelectIndexedStore()
575 SDValue MulOp0 = N->getOperand(0); in SelectMul()
576 SDValue MulOp1 = N->getOperand(1); in SelectMul()
578 SDValue OP0; in SelectMul()
579 SDValue OP1; in SelectMul()
583 SDValue Sext0 = MulOp0.getOperand(0); in SelectMul()
597 SDValue Chain = LD->getChain(); in SelectMul()
598 SDValue TargetConst0 = CurDAG->getTargetConstant(0, MVT::i32); in SelectMul()
599 OP0 = SDValue(CurDAG->getMachineNode(Hexagon::L2_loadri_io, dl, MVT::i32, in SelectMul()
609 SDValue Sext1 = MulOp1.getOperand(0); in SelectMul()
623 SDValue Chain = LD->getChain(); in SelectMul()
624 SDValue TargetConst0 = CurDAG->getTargetConstant(0, MVT::i32); in SelectMul()
625 OP1 = SDValue(CurDAG->getMachineNode(Hexagon::L2_loadri_io, dl, MVT::i32, in SelectMul()
646 SDValue Shl_0 = N->getOperand(0); in SelectSHL()
647 SDValue Shl_1 = N->getOperand(1); in SelectSHL()
651 SDValue Mul_0 = Shl_0.getOperand(0); // Val in SelectSHL()
652 SDValue Mul_1 = Shl_0.getOperand(1); // Const in SelectSHL()
660 SDValue Val = CurDAG->getTargetConstant(ValConst, in SelectSHL()
673 SDValue Sub_0 = Shl_0.getOperand(0); // Const 0 in SelectSHL()
674 SDValue Sub_1 = Shl_0.getOperand(1); // Val in SelectSHL()
680 SDValue Shl2_0 = Sub_1.getOperand(0); // Val in SelectSHL()
681 SDValue Shl2_1 = Sub_1.getOperand(1); // Const in SelectSHL()
688 SDValue Val = CurDAG->getTargetConstant(-ValConst, MVT::i32); in SelectSHL()
722 SDValue Op0 = N->getOperand(0); in SelectZeroExtend()
737 SDValue Ones = CurDAG->getTargetConstant(MV, MVT::i64); in SelectZeroExtend()
742 SDValue(Mask,0), SDValue(OnesReg,0)); in SelectZeroExtend()
743 SDValue SubR = CurDAG->getTargetConstant(Hexagon::subreg_loreg, MVT::i32); in SelectZeroExtend()
745 SDValue(And,0), SubR); in SelectZeroExtend()
748 SDValue(Mask,0), SDValue(OnesReg,0)); in SelectZeroExtend()
759 SDValue TargetConst0 = CurDAG->getTargetConstant(0, MVT::i32); in SelectZeroExtend()
762 SDValue(IsIntrinsic, 0)); in SelectZeroExtend()
768 SDValue(Result_2, 0), in SelectZeroExtend()
769 SDValue(Result_1, 0)); in SelectZeroExtend()
777 SDValue(IsIntrinsic, 0)); in SelectZeroExtend()
800 SDValue Chain = N->getOperand(0); in SelectIntrinsicWChain()
801 SDValue Base = N->getOperand(2); in SelectIntrinsicWChain()
802 SDValue Load = N->getOperand(3); in SelectIntrinsicWChain()
803 SDValue ModifierExpr = N->getOperand(4); in SelectIntrinsicWChain()
804 SDValue Offset = N->getOperand(5); in SelectIntrinsicWChain()
861 SmallVector<SDValue, 5> Ops; in SelectIntrinsicWChain()
870 SDValue ST; in SelectIntrinsicWChain()
875 ST = CurDAG->getTruncStore(Chain, dl, SDValue(Result, 1), Load, in SelectIntrinsicWChain()
878 ST = CurDAG->getStore(Chain, dl, SDValue(Result, 1), Load, Mem); in SelectIntrinsicWChain()
882 const SDValue Froms[] = { SDValue(N, 0), in SelectIntrinsicWChain()
883 SDValue(N, 1) }; in SelectIntrinsicWChain()
884 const SDValue Tos[] = { SDValue(Result, 0), in SelectIntrinsicWChain()
885 SDValue(Store, 0) }; in SelectIntrinsicWChain()
897 SDValue Chain = N->getOperand(0); in SelectIntrinsicWChain()
898 SDValue Base = N->getOperand(2); in SelectIntrinsicWChain()
899 SDValue Load = N->getOperand(3); in SelectIntrinsicWChain()
900 SDValue ModifierExpr = N->getOperand(4); in SelectIntrinsicWChain()
955 SmallVector<SDValue, 4> Ops; in SelectIntrinsicWChain()
961 SDValue ST; in SelectIntrinsicWChain()
966 ST = CurDAG->getTruncStore(Chain, dl, SDValue(Result, 1), Load, in SelectIntrinsicWChain()
969 ST = CurDAG->getStore(Chain, dl, SDValue(Result, 1), Load, Mem); in SelectIntrinsicWChain()
973 const SDValue Froms[] = { SDValue(N, 0), in SelectIntrinsicWChain()
974 SDValue(N, 1) }; in SelectIntrinsicWChain()
975 const SDValue Tos[] = { SDValue(Result, 0), in SelectIntrinsicWChain()
976 SDValue(Store, 0) }; in SelectIntrinsicWChain()
1002 SDValue const &V = N->getOperand(1); in SelectIntrinsicWOChain()
1003 SDValue U; in SelectIntrinsicWOChain()
1005 SDValue R = CurDAG->getNode(N->getOpcode(), SDLoc(N), N->getValueType(0), in SelectIntrinsicWOChain()
1165 SDValue SDVal = CurDAG->getTargetConstant(bitpos, MVT::i32); in SelectBitOp()
1179 SDValue RegClass = CurDAG->getTargetConstant(Hexagon::DoubleRegsRegClassID, in SelectBitOp()
1182 SDValue SubregHiIdx = CurDAG->getTargetConstant(Hexagon::subreg_hireg, in SelectBitOp()
1184 SDValue SubregLoIdx = CurDAG->getTargetConstant(Hexagon::subreg_loreg, in SelectBitOp()
1187 SDValue SubregHI = CurDAG->getTargetExtractSubreg(Hexagon::subreg_hireg, dl, in SelectBitOp()
1188 MVT::i32, SDValue(Reg, 0)); in SelectBitOp()
1190 SDValue SubregLO = CurDAG->getTargetExtractSubreg(Hexagon::subreg_loreg, dl, in SelectBitOp()
1191 MVT::i32, SDValue(Reg, 0)); in SelectBitOp()
1197 const SDValue Ops[] = { RegClass, SubregHI, SubregHiIdx, in SelectBitOp()
1198 SDValue(Result0, 0), SubregLoIdx }; in SelectBitOp()
1206 const SDValue Ops[] = { RegClass, SDValue(Result0, 0), SubregHiIdx, in SelectBitOp()
1220 SDValue FI = CurDAG->getTargetFrameIndex(FX, MVT::i32); in SelectFrameIndex()
1221 SDValue Zero = CurDAG->getTargetConstant(0, MVT::i32); in SelectFrameIndex()
1227 CurDAG->TransferDbgValues(SDValue(N, 0), SDValue(R, 0)); in SelectFrameIndex()
1285 SelectInlineAsmMemoryOperand(const SDValue &Op, unsigned ConstraintID, in SelectInlineAsmMemoryOperand()
1286 std::vector<SDValue> &OutOps) { in SelectInlineAsmMemoryOperand()
1287 SDValue Inp = Op, Res; in SelectInlineAsmMemoryOperand()
1320 auto IsZero = [] (const SDValue &V) -> bool { in PreprocessISelDAG()
1325 auto IsSelect0 = [IsZero] (const SDValue &Op) -> bool { in PreprocessISelDAG()
1331 SDValue N0 = I->getOperand(0), N1 = I->getOperand(1); in PreprocessISelDAG()
1334 SDValue SOp = SelN0 ? N0 : N1; in PreprocessISelDAG()
1335 SDValue VOp = SelN0 ? N1 : N0; in PreprocessISelDAG()
1338 SDValue SC = SOp.getOperand(0); in PreprocessISelDAG()
1339 SDValue SX = SOp.getOperand(1); in PreprocessISelDAG()
1340 SDValue SY = SOp.getOperand(2); in PreprocessISelDAG()
1343 SDValue NewOr = DAG.getNode(ISD::OR, DLS, VT, SX, VOp); in PreprocessISelDAG()
1344 SDValue NewSel = DAG.getNode(ISD::SELECT, DLS, VT, SC, NewOr, VOp); in PreprocessISelDAG()
1347 SDValue NewOr = DAG.getNode(ISD::OR, DLS, VT, SY, VOp); in PreprocessISelDAG()
1348 SDValue NewSel = DAG.getNode(ISD::SELECT, DLS, VT, SC, VOp, NewOr); in PreprocessISelDAG()
1356 bool HexagonDAGToDAGISel::SelectAddrFI(SDValue& N, SDValue &R) { in SelectAddrFI()
1364 inline bool HexagonDAGToDAGISel::SelectAddrGA(SDValue &N, SDValue &R) { in SelectAddrGA()
1368 inline bool HexagonDAGToDAGISel::SelectAddrGP(SDValue &N, SDValue &R) { in SelectAddrGP()
1372 bool HexagonDAGToDAGISel::SelectGlobalAddress(SDValue &N, SDValue &R, in SelectGlobalAddress()
1376 SDValue N0 = N.getOperand(0); in SelectGlobalAddress()
1377 SDValue N1 = N.getOperand(1); in SelectGlobalAddress()
1384 SDValue Addr = N0.getOperand(0); in SelectGlobalAddress()
1413 bool HexagonDAGToDAGISel::isValueExtension(const SDValue &Val, in isValueExtension()
1414 unsigned FromBits, SDValue &Src) { in isValueExtension()
1420 SDValue const &Op0 = Val.getOperand(0); in isValueExtension()