Lines Matching refs:MVT

111     unsigned fastEmit_i(MVT Ty, MVT RetTy, unsigned Opc, uint64_t Imm) override;
140 bool isTypeLegal(Type *Ty, MVT &VT);
141 bool isLoadTypeLegal(Type *Ty, MVT &VT);
160 bool PPCEmitLoad(MVT VT, Register &ResultReg, Address &Addr,
163 bool PPCEmitStore(MVT VT, unsigned SrcReg, Address &Addr);
167 bool PPCEmitIntExt(MVT SrcVT, unsigned SrcReg, MVT DestVT,
169 unsigned PPCMaterializeFP(const ConstantFP *CFP, MVT VT);
170 unsigned PPCMaterializeGV(const GlobalValue *GV, MVT VT);
171 unsigned PPCMaterializeInt(const ConstantInt *CI, MVT VT,
177 unsigned PPCMoveToIntReg(const Instruction *I, MVT VT,
179 unsigned PPCMoveToFPReg(MVT VT, unsigned SrcReg, bool IsSigned);
185 SmallVectorImpl<MVT> &ArgVTs,
191 bool finishCall(MVT RetVT, CallLoweringInfo &CLI, unsigned &NumBytes);
269 bool PPCFastISel::isTypeLegal(Type *Ty, MVT &VT) { in isTypeLegal()
273 if (Evt == MVT::Other || !Evt.isSimple()) return false; in isTypeLegal()
283 bool PPCFastISel::isLoadTypeLegal(Type *Ty, MVT &VT) { in isLoadTypeLegal()
288 if (VT == MVT::i8 || VT == MVT::i16 || VT == MVT::i32) { in isLoadTypeLegal()
440 IndexReg = PPCMaterializeInt(Offset, MVT::i64); in PPCSimplifyAddress()
448 bool PPCFastISel::PPCEmitLoad(MVT VT, Register &ResultReg, Address &Addr, in PPCEmitLoad()
465 (VT == MVT::f64 ? (HasSPE ? &PPC::SPERCRegClass : &PPC::F8RCRegClass) : in PPCEmitLoad()
466 (VT == MVT::f32 ? (HasSPE ? &PPC::GPRCRegClass : &PPC::F4RCRegClass) : in PPCEmitLoad()
467 (VT == MVT::i64 ? &PPC::G8RC_and_G8RC_NOX0RegClass : in PPCEmitLoad()
475 case MVT::i8: in PPCEmitLoad()
478 case MVT::i16: in PPCEmitLoad()
482 case MVT::i32: in PPCEmitLoad()
488 case MVT::i64: in PPCEmitLoad()
494 case MVT::f32: in PPCEmitLoad()
497 case MVT::f64: in PPCEmitLoad()
593 MVT VT; in SelectLoad()
618 bool PPCFastISel::PPCEmitStore(MVT VT, unsigned SrcReg, Address &Addr) { in PPCEmitStore()
629 case MVT::i8: in PPCEmitStore()
632 case MVT::i16: in PPCEmitStore()
635 case MVT::i32: in PPCEmitStore()
639 case MVT::i64: in PPCEmitStore()
643 case MVT::f32: in PPCEmitStore()
646 case MVT::f64: in PPCEmitStore()
742 MVT VT; in SelectStore()
824 MVT SrcVT = SrcEVT.getSimpleVT(); in PPCEmitCmp()
826 if (SrcVT == MVT::i1 && Subtarget->useCRBits()) in PPCEmitCmp()
840 if (SrcVT == MVT::i64 || SrcVT == MVT::i32 || SrcVT == MVT::i16 || in PPCEmitCmp()
841 SrcVT == MVT::i8 || SrcVT == MVT::i1) { in PPCEmitCmp()
869 case MVT::f32: in PPCEmitCmp()
891 case MVT::f64: in PPCEmitCmp()
911 case MVT::i1: in PPCEmitCmp()
912 case MVT::i8: in PPCEmitCmp()
913 case MVT::i16: in PPCEmitCmp()
916 case MVT::i32: in PPCEmitCmp()
922 case MVT::i64: in PPCEmitCmp()
932 if (!PPCEmitIntExt(SrcVT, SrcReg1, MVT::i32, ExtReg, IsZExt)) in PPCEmitCmp()
938 if (!PPCEmitIntExt(SrcVT, SrcReg2, MVT::i32, ExtReg, IsZExt)) in PPCEmitCmp()
960 if (SrcVT != MVT::f32 || DestVT != MVT::f64) in SelectFPExt()
978 if (SrcVT != MVT::f64 || DestVT != MVT::f32) in SelectFPTrunc()
1017 unsigned PPCFastISel::PPCMoveToFPReg(MVT SrcVT, unsigned SrcReg, in PPCMoveToFPReg()
1021 if (SrcVT == MVT::i32) { in PPCMoveToFPReg()
1023 if (!PPCEmitIntExt(MVT::i32, SrcReg, MVT::i64, TmpReg, !IsSigned)) in PPCMoveToFPReg()
1034 if (!PPCEmitStore(MVT::i64, SrcReg, Addr)) in PPCMoveToFPReg()
1041 if (SrcVT == MVT::i32) { in PPCMoveToFPReg()
1053 if (!PPCEmitLoad(MVT::f64, ResultReg, Addr, RC, !IsSigned, LoadOpc)) in PPCMoveToFPReg()
1063 MVT DstVT; in SelectIToFP()
1068 if (DstVT != MVT::f32 && DstVT != MVT::f64) in SelectIToFP()
1076 MVT SrcVT = SrcEVT.getSimpleVT(); in SelectIToFP()
1078 if (SrcVT != MVT::i8 && SrcVT != MVT::i16 && in SelectIToFP()
1079 SrcVT != MVT::i32 && SrcVT != MVT::i64) in SelectIToFP()
1089 if (DstVT == MVT::f32) in SelectIToFP()
1112 if (DstVT == MVT::f32 && !Subtarget->hasFPCVT()) in SelectIToFP()
1116 if (SrcVT == MVT::i8 || SrcVT == MVT::i16) { in SelectIToFP()
1118 if (!PPCEmitIntExt(SrcVT, SrcReg, MVT::i64, TmpReg, !IsSigned)) in SelectIToFP()
1120 SrcVT = MVT::i64; in SelectIToFP()
1134 if (DstVT == MVT::f32) in SelectIToFP()
1152 unsigned PPCFastISel::PPCMoveToIntReg(const Instruction *I, MVT VT, in PPCMoveToIntReg()
1163 if (!PPCEmitStore(MVT::f64, SrcReg, Addr)) in PPCMoveToIntReg()
1168 if (VT == MVT::i32) in PPCMoveToIntReg()
1188 MVT DstVT, SrcVT; in SelectFPToI()
1193 if (DstVT != MVT::i32 && DstVT != MVT::i64) in SelectFPToI()
1197 if (DstVT == MVT::i64 && !IsSigned && !Subtarget->hasFPCVT() && in SelectFPToI()
1206 if (SrcVT != MVT::f32 && SrcVT != MVT::f64) in SelectFPToI()
1235 if (DstVT == MVT::i32) in SelectFPToI()
1241 if (DstVT == MVT::i32) in SelectFPToI()
1273 if (DestVT != MVT::i16 && DestVT != MVT::i8) in SelectBinaryIntOp()
1375 SmallVectorImpl<MVT> &ArgVTs, in processCallArgs()
1393 MVT ArgVT = ArgVTs[VA.getValNo()]; in processCallArgs()
1397 if (ArgVT.isVector() || ArgVT.getSizeInBits() > 64 || ArgVT == MVT::i1 || in processCallArgs()
1432 MVT ArgVT = ArgVTs[VA.getValNo()]; in processCallArgs()
1441 MVT DestVT = VA.getLocVT(); in processCallArgs()
1443 (DestVT == MVT::i64) ? &PPC::G8RCRegClass : &PPC::GPRCRegClass; in processCallArgs()
1453 MVT DestVT = VA.getLocVT(); in processCallArgs()
1455 (DestVT == MVT::i64) ? &PPC::G8RCRegClass : &PPC::GPRCRegClass; in processCallArgs()
1472 if (ArgVT == MVT::f32 || ArgVT == MVT::f64) { in processCallArgs()
1489 bool PPCFastISel::finishCall(MVT RetVT, CallLoweringInfo &CLI, unsigned &NumBytes) { in finishCall()
1500 if (RetVT != MVT::isVoid) { in finishCall()
1508 MVT DestVT = VA.getValVT(); in finishCall()
1509 MVT CopyVT = DestVT; in finishCall()
1513 if (RetVT == MVT::i8 || RetVT == MVT::i16 || RetVT == MVT::i32) in finishCall()
1514 CopyVT = MVT::i64; in finishCall()
1524 } else if (CopyVT == MVT::f64) { in finishCall()
1533 } else if (RetVT == MVT::i8 || RetVT == MVT::i16 || RetVT == MVT::i32) { in finishCall()
1573 MVT RetVT; in fastLowerCall()
1575 RetVT = MVT::isVoid; in fastLowerCall()
1576 else if (!isTypeLegal(RetTy, RetVT) && RetVT != MVT::i16 && in fastLowerCall()
1577 RetVT != MVT::i8) in fastLowerCall()
1579 else if (RetVT == MVT::i1 && Subtarget->useCRBits()) in fastLowerCall()
1584 if (RetVT != MVT::isVoid && RetVT != MVT::i8 && RetVT != MVT::i16 && in fastLowerCall()
1585 RetVT != MVT::i32 && RetVT != MVT::i64 && RetVT != MVT::f32 && in fastLowerCall()
1586 RetVT != MVT::f64) { in fastLowerCall()
1603 SmallVector<MVT, 8> ArgVTs; in fastLowerCall()
1621 MVT ArgVT; in fastLowerCall()
1622 if (!isTypeLegal(ArgTy, ArgVT) && ArgVT != MVT::i16 && ArgVT != MVT::i8) in fastLowerCall()
1628 if (ArgVT.isVector() || ArgVT == MVT::f128) in fastLowerCall()
1729 PPCMaterializeInt(CI, MVT::i64, VA.getLocInfo() != CCValAssign::ZExt); in SelectRet()
1753 MVT RVVT = RVEVT.getSimpleVT(); in SelectRet()
1754 MVT DestVT = VA.getLocVT(); in SelectRet()
1756 if (RVVT != DestVT && RVVT != MVT::i8 && in SelectRet()
1757 RVVT != MVT::i16 && RVVT != MVT::i32) in SelectRet()
1769 (DestVT == MVT::i64) ? &PPC::G8RCRegClass : &PPC::GPRCRegClass; in SelectRet()
1778 (DestVT == MVT::i64) ? &PPC::G8RCRegClass : &PPC::GPRCRegClass; in SelectRet()
1807 bool PPCFastISel::PPCEmitIntExt(MVT SrcVT, unsigned SrcReg, MVT DestVT, in PPCEmitIntExt()
1809 if (DestVT != MVT::i32 && DestVT != MVT::i64) in PPCEmitIntExt()
1811 if (SrcVT != MVT::i8 && SrcVT != MVT::i16 && SrcVT != MVT::i32) in PPCEmitIntExt()
1817 if (SrcVT == MVT::i8) in PPCEmitIntExt()
1818 Opc = (DestVT == MVT::i32) ? PPC::EXTSB : PPC::EXTSB8_32_64; in PPCEmitIntExt()
1819 else if (SrcVT == MVT::i16) in PPCEmitIntExt()
1820 Opc = (DestVT == MVT::i32) ? PPC::EXTSH : PPC::EXTSH8_32_64; in PPCEmitIntExt()
1822 assert(DestVT == MVT::i64 && "Signed extend from i32 to i32??"); in PPCEmitIntExt()
1829 } else if (DestVT == MVT::i32) { in PPCEmitIntExt()
1831 if (SrcVT == MVT::i8) in PPCEmitIntExt()
1834 assert(SrcVT == MVT::i16 && "Unsigned extend from i32 to i32??"); in PPCEmitIntExt()
1844 if (SrcVT == MVT::i8) in PPCEmitIntExt()
1846 else if (SrcVT == MVT::i16) in PPCEmitIntExt()
1881 if (SrcVT != MVT::i64 && SrcVT != MVT::i32 && SrcVT != MVT::i16) in SelectTrunc()
1884 if (DestVT != MVT::i32 && DestVT != MVT::i16 && DestVT != MVT::i8) in SelectTrunc()
1892 if (SrcVT == MVT::i64) in SelectTrunc()
1917 MVT SrcVT = SrcEVT.getSimpleVT(); in SelectIntExt()
1918 MVT DestVT = DestEVT.getSimpleVT(); in SelectIntExt()
1927 (DestVT == MVT::i64 ? &PPC::G8RC_and_G8RC_NOX0RegClass : in SelectIntExt()
1987 unsigned PPCFastISel::PPCMaterializeFP(const ConstantFP *CFP, MVT VT) { in PPCMaterializeFP()
1993 if (VT != MVT::f32 && VT != MVT::f64) in PPCMaterializeFP()
2002 RC = ((VT == MVT::f32) ? &PPC::GPRCRegClass : &PPC::SPERCRegClass); in PPCMaterializeFP()
2004 RC = ((VT == MVT::f32) ? &PPC::F4RCRegClass : &PPC::F8RCRegClass); in PPCMaterializeFP()
2011 MachineMemOperand::MOLoad, (VT == MVT::f32) ? 4 : 8, Alignment); in PPCMaterializeFP()
2016 Opc = ((VT == MVT::f32) ? PPC::SPELWZ : PPC::EVLDD); in PPCMaterializeFP()
2018 Opc = ((VT == MVT::f32) ? PPC::LFS : PPC::LFD); in PPCMaterializeFP()
2055 unsigned PPCFastISel::PPCMaterializeGV(const GlobalValue *GV, MVT VT) { in PPCMaterializeGV()
2060 assert(VT == MVT::i64 && "Non-address!"); in PPCMaterializeGV()
2206 unsigned PPCFastISel::PPCMaterializeInt(const ConstantInt *CI, MVT VT, in PPCMaterializeInt()
2210 if (VT == MVT::i1 && Subtarget->useCRBits()) { in PPCMaterializeInt()
2217 if (VT != MVT::i64 && VT != MVT::i32 && VT != MVT::i16 && VT != MVT::i8 && in PPCMaterializeInt()
2218 VT != MVT::i1) in PPCMaterializeInt()
2222 ((VT == MVT::i64) ? &PPC::G8RCRegClass : &PPC::GPRCRegClass); in PPCMaterializeInt()
2230 unsigned Opc = (VT == MVT::i64) ? PPC::LI8 : PPC::LI; in PPCMaterializeInt()
2238 if (VT == MVT::i64) in PPCMaterializeInt()
2240 else if (VT == MVT::i32) in PPCMaterializeInt()
2253 MVT VT = CEVT.getSimpleVT(); in fastMaterializeConstant()
2276 MVT VT; in fastMaterializeAlloca()
2303 MVT VT; in tryToFoldLoadIntoMI()
2317 if ((VT == MVT::i8 && MB <= 56) || in tryToFoldLoadIntoMI()
2318 (VT == MVT::i16 && MB <= 48) || in tryToFoldLoadIntoMI()
2319 (VT == MVT::i32 && MB <= 32)) in tryToFoldLoadIntoMI()
2328 if ((VT == MVT::i8 && MB <= 24) || in tryToFoldLoadIntoMI()
2329 (VT == MVT::i16 && MB <= 16)) in tryToFoldLoadIntoMI()
2343 if (VT != MVT::i16 && VT != MVT::i8) in tryToFoldLoadIntoMI()
2351 if (VT != MVT::i32 && VT != MVT::i16 && VT != MVT::i8) in tryToFoldLoadIntoMI()
2385 unsigned PPCFastISel::fastEmit_i(MVT Ty, MVT VT, unsigned Opc, uint64_t Imm) { in fastEmit_i()
2392 if (VT == MVT::i1 && Subtarget->useCRBits()) { in fastEmit_i()
2399 if (VT != MVT::i64 && VT != MVT::i32 && VT != MVT::i16 && VT != MVT::i8 && in fastEmit_i()
2400 VT != MVT::i1) in fastEmit_i()
2403 const TargetRegisterClass *RC = ((VT == MVT::i64) ? &PPC::G8RCRegClass : in fastEmit_i()
2405 if (VT == MVT::i64) in fastEmit_i()