Lines Matching refs:MVT
111 bool isTypeLegal(Type *Ty, MVT &VT);
112 bool isTypeSupported(Type *Ty, MVT &VT);
113 bool isLoadTypeLegal(Type *Ty, MVT &VT);
120 bool emitLoad(MVT VT, unsigned &ResultReg, Address &Addr,
122 bool emitStore(MVT VT, unsigned SrcReg, Address Addr,
124 bool emitStore(MVT VT, unsigned SrcReg, Address &Addr,
126 unsigned emitIntExt(MVT SrcVT, unsigned SrcReg, MVT DestVT, bool isZExt);
127 bool emitIntExt(MVT SrcVT, unsigned SrcReg, MVT DestVT, unsigned DestReg,
130 bool emitIntZExt(MVT SrcVT, unsigned SrcReg, MVT DestVT, unsigned DestReg);
132 bool emitIntSExt(MVT SrcVT, unsigned SrcReg, MVT DestVT, unsigned DestReg);
133 bool emitIntSExt32r1(MVT SrcVT, unsigned SrcReg, MVT DestVT,
135 bool emitIntSExt32r2(MVT SrcVT, unsigned SrcReg, MVT DestVT,
140 unsigned emitLogicalOp(unsigned ISDOpc, MVT RetVT, const Value *LHS,
143 unsigned materializeFP(const ConstantFP *CFP, MVT VT);
144 unsigned materializeGV(const GlobalValue *GV, MVT VT);
145 unsigned materializeInt(const Constant *C, MVT VT);
182 bool processCallArgs(CallLoweringInfo &CLI, SmallVectorImpl<MVT> &ArgVTs,
184 bool finishCall(CallLoweringInfo &CLI, MVT RetVT, unsigned NumBytes);
210 static bool CC_Mips(unsigned ValNo, MVT ValVT, MVT LocVT,
214 static bool CC_MipsO32_FP32(unsigned ValNo, MVT ValVT, MVT LocVT, in CC_MipsO32_FP32()
220 static bool CC_MipsO32_FP64(unsigned ValNo, MVT ValVT, MVT LocVT, in CC_MipsO32_FP64()
232 unsigned MipsFastISel::emitLogicalOp(unsigned ISDOpc, MVT RetVT, in emitLogicalOp()
259 RHSReg = materializeInt(C, MVT::i32); in emitLogicalOp()
277 assert(TLI.getValueType(DL, AI->getType(), true) == MVT::i32 && in fastMaterializeAlloca()
295 unsigned MipsFastISel::materializeInt(const Constant *C, MVT VT) { in materializeInt()
296 if (VT != MVT::i32 && VT != MVT::i16 && VT != MVT::i8 && VT != MVT::i1) in materializeInt()
328 unsigned MipsFastISel::materializeFP(const ConstantFP *CFP, MVT VT) { in materializeFP()
332 if (VT == MVT::f32) { in materializeFP()
338 } else if (VT == MVT::f64) { in materializeFP()
350 unsigned MipsFastISel::materializeGV(const GlobalValue *GV, MVT VT) { in materializeGV()
352 if (VT != MVT::i32) in materializeGV()
395 MVT VT = CEVT.getSimpleVT(); in fastMaterializeConstant()
540 bool MipsFastISel::isTypeLegal(Type *Ty, MVT &VT) { in isTypeLegal()
543 if (evt == MVT::Other || !evt.isSimple()) in isTypeLegal()
552 bool MipsFastISel::isTypeSupported(Type *Ty, MVT &VT) { in isTypeSupported()
561 if (VT == MVT::i1 || VT == MVT::i8 || VT == MVT::i16) in isTypeSupported()
567 bool MipsFastISel::isLoadTypeLegal(Type *Ty, MVT &VT) { in isLoadTypeLegal()
573 if (VT == MVT::i8 || VT == MVT::i16) in isLoadTypeLegal()
704 bool MipsFastISel::emitLoad(MVT VT, unsigned &ResultReg, Address &Addr, in emitLoad()
711 case MVT::i32: { in emitLoad()
716 case MVT::i16: { in emitLoad()
721 case MVT::i8: { in emitLoad()
726 case MVT::f32: { in emitLoad()
733 case MVT::f64: { in emitLoad()
765 bool MipsFastISel::emitStore(MVT VT, unsigned SrcReg, Address &Addr, in emitStore()
772 case MVT::i8: in emitStore()
775 case MVT::i16: in emitStore()
778 case MVT::i32: in emitStore()
781 case MVT::f32: in emitStore()
786 case MVT::f64: in emitStore()
818 MVT VT; in selectLogicalOp()
850 MVT VT; in selectLoad()
875 MVT VT; in selectStore()
942 if (SrcVT != MVT::f32 || DestVT != MVT::f64) in selectFPExt()
960 MVT VT; in selectSelect()
970 } else if (VT == MVT::f32) { in selectSelect()
973 } else if (VT == MVT::f64) { in selectSelect()
992 if (!emitIntExt(MVT::i1, CondReg, MVT::i32, ZExtCondReg, true)) in selectSelect()
1016 if (SrcVT != MVT::f64 || DestVT != MVT::f32) in selectFPTrunc()
1036 MVT DstVT, SrcVT; in selectFPToInt()
1044 if (DstVT != MVT::i32) in selectFPToInt()
1052 if (SrcVT != MVT::f32 && SrcVT != MVT::f64) in selectFPToInt()
1063 unsigned Opc = (SrcVT == MVT::f32) ? Mips::TRUNC_W_S : Mips::TRUNC_W_D32; in selectFPToInt()
1074 SmallVectorImpl<MVT> &OutVTs, in processCallArgs()
1088 MVT firstMVT; in processCallArgs()
1092 MVT ArgVT = OutVTs[VA.getValNo()]; in processCallArgs()
1096 if (ArgVT == MVT::f32) { in processCallArgs()
1098 } else if (ArgVT == MVT::f64) { in processCallArgs()
1102 if ((firstMVT == MVT::f32) || (firstMVT == MVT::f64)) { in processCallArgs()
1103 if (ArgVT == MVT::f32) { in processCallArgs()
1105 } else if (ArgVT == MVT::f64) { in processCallArgs()
1110 if (((ArgVT == MVT::i32) || (ArgVT == MVT::f32) || (ArgVT == MVT::i16) || in processCallArgs()
1111 (ArgVT == MVT::i8)) && in processCallArgs()
1140 MVT DestVT = VA.getLocVT(); in processCallArgs()
1141 MVT SrcVT = ArgVT; in processCallArgs()
1148 MVT DestVT = VA.getLocVT(); in processCallArgs()
1149 MVT SrcVT = ArgVT; in processCallArgs()
1207 bool MipsFastISel::finishCall(CallLoweringInfo &CLI, MVT RetVT, in finishCall()
1211 if (RetVT != MVT::isVoid) { in finishCall()
1220 MVT CopyVT = RVLocs[0].getValVT(); in finishCall()
1222 if (RetVT == MVT::i1 || RetVT == MVT::i8 || RetVT == MVT::i16) in finishCall()
1223 CopyVT = MVT::i32; in finishCall()
1262 MVT RetVT; in fastLowerCall()
1264 RetVT = MVT::isVoid; in fastLowerCall()
1273 SmallVector<MVT, 16> OutVTs; in fastLowerCall()
1277 MVT VT; in fastLowerCall()
1279 !(VT == MVT::i1 || VT == MVT::i8 || VT == MVT::i16)) in fastLowerCall()
1306 DestAddress = materializeGV(Addr.getGlobalValue(), MVT::i32); in fastLowerCall()
1336 MVT VT; in fastLowerIntrinsicCall()
1346 if (VT == MVT::i16) { in fastLowerIntrinsicCall()
1365 } else if (VT == MVT::i32) { in fastLowerIntrinsicCall()
1481 MVT RVVT = RVEVT.getSimpleVT(); in selectRet()
1482 if (RVVT == MVT::f128) in selectRet()
1485 MVT DestVT = VA.getValVT(); in selectRet()
1488 if (RVVT != MVT::i1 && RVVT != MVT::i8 && RVVT != MVT::i16) in selectRet()
1521 if (SrcVT != MVT::i32 && SrcVT != MVT::i16 && SrcVT != MVT::i8) in selectTrunc()
1523 if (DestVT != MVT::i16 && DestVT != MVT::i8 && DestVT != MVT::i1) in selectTrunc()
1553 MVT SrcVT = SrcEVT.getSimpleVT(); in selectIntExt()
1554 MVT DestVT = DestEVT.getSimpleVT(); in selectIntExt()
1562 bool MipsFastISel::emitIntSExt32r1(MVT SrcVT, unsigned SrcReg, MVT DestVT, in emitIntSExt32r1()
1568 case MVT::i8: in emitIntSExt32r1()
1571 case MVT::i16: in emitIntSExt32r1()
1581 bool MipsFastISel::emitIntSExt32r2(MVT SrcVT, unsigned SrcReg, MVT DestVT, in emitIntSExt32r2()
1586 case MVT::i8: in emitIntSExt32r2()
1589 case MVT::i16: in emitIntSExt32r2()
1596 bool MipsFastISel::emitIntSExt(MVT SrcVT, unsigned SrcReg, MVT DestVT, in emitIntSExt()
1598 if ((DestVT != MVT::i32) && (DestVT != MVT::i16)) in emitIntSExt()
1605 bool MipsFastISel::emitIntZExt(MVT SrcVT, unsigned SrcReg, MVT DestVT, in emitIntZExt()
1612 case MVT::i1: in emitIntZExt()
1615 case MVT::i8: in emitIntZExt()
1618 case MVT::i16: in emitIntZExt()
1627 bool MipsFastISel::emitIntExt(MVT SrcVT, unsigned SrcReg, MVT DestVT, in emitIntExt()
1633 if (((DestVT != MVT::i8) && (DestVT != MVT::i16) && (DestVT != MVT::i32)) || in emitIntExt()
1634 ((SrcVT != MVT::i1) && (SrcVT != MVT::i8) && (SrcVT != MVT::i16))) in emitIntExt()
1641 unsigned MipsFastISel::emitIntExt(MVT SrcVT, unsigned SrcReg, MVT DestVT, in emitIntExt()
1653 MVT DestVT = DestEVT.getSimpleVT(); in selectDivRem()
1654 if (DestVT != MVT::i32) in selectDivRem()
1693 MVT RetVT; in selectShift()
1714 MVT Op0MVT = TLI.getValueType(DL, Op0->getType(), true).getSimpleVT(); in selectShift()
1716 if (!emitIntExt(Op0MVT, Op0Reg, MVT::i32, TempReg, IsZExt)) in selectShift()
1832 MVT VMVT = TLI.getValueType(DL, V->getType(), true).getSimpleVT(); in getRegEnsuringSimpleIntegerWidening()
1833 if ((VMVT == MVT::i8) || (VMVT == MVT::i16)) { in getRegEnsuringSimpleIntegerWidening()
1835 if (!emitIntExt(VMVT, VReg, MVT::i32, TempReg, IsUnsigned)) in getRegEnsuringSimpleIntegerWidening()