Lines Matching refs:PPC

17 #include "PPC.h"
149 unsigned FP64LoadOpc = PPC::LFD);
204 static Optional<PPC::Predicate> getComparePred(CmpInst::Predicate Pred) {
216 return Optional<PPC::Predicate>();
220 return PPC::PRED_EQ;
225 return PPC::PRED_GT;
230 return PPC::PRED_GE;
235 return PPC::PRED_LT;
240 return PPC::PRED_LE;
244 return PPC::PRED_NE;
247 return PPC::PRED_NU;
250 return PPC::PRED_UN;
390 MRI.setRegClass(Addr.Base.Reg, &PPC::G8RC_and_G8RC_NOX0RegClass);
409 unsigned ResultReg = createResultReg(&PPC::G8RC_and_G8RC_NOX0RegClass);
410 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::ADDI8),
445 (VT == MVT::f64 ? &PPC::F8RCRegClass :
446 (VT == MVT::f32 ? &PPC::F4RCRegClass :
447 (VT == MVT::i64 ? &PPC::G8RC_and_G8RC_NOX0RegClass :
448 &PPC::GPRC_and_GPRC_NOR0RegClass)))));
450 bool Is32BitInt = UseRC->hasSuperClassEq(&PPC::GPRCRegClass);
456 Opc = Is32BitInt ? PPC::LBZ : PPC::LBZ8;
460 (Is32BitInt ? PPC::LHZ : PPC::LHZ8) :
461 (Is32BitInt ? PPC::LHA : PPC::LHA8));
465 (Is32BitInt ? PPC::LWZ : PPC::LWZ8) :
466 (Is32BitInt ? PPC::LWA_32 : PPC::LWA));
467 if ((Opc == PPC::LWA || Opc == PPC::LWA_32) && ((Addr.Offset & 3) != 0))
471 Opc = PPC::LD;
472 assert(UseRC->hasSuperClassEq(&PPC::G8RCRegClass) &&
477 Opc = PPC::LFS;
518 case PPC::LBZ: Opc = PPC::LBZX; break;
519 case PPC::LBZ8: Opc = PPC::LBZX8; break;
520 case PPC::LHZ: Opc = PPC::LHZX; break;
521 case PPC::LHZ8: Opc = PPC::LHZX8; break;
522 case PPC::LHA: Opc = PPC::LHAX; break;
523 case PPC::LHA8: Opc = PPC::LHAX8; break;
524 case PPC::LWZ: Opc = PPC::LWZX; break;
525 case PPC::LWZ8: Opc = PPC::LWZX8; break;
526 case PPC::LWA: Opc = PPC::LWAX; break;
527 case PPC::LWA_32: Opc = PPC::LWAX_32; break;
528 case PPC::LD: Opc = PPC::LDX; break;
529 case PPC::LFS: Opc = PPC::LFSX; break;
530 case PPC::LFD: Opc = PPC::LFDX; break;
576 bool Is32BitInt = RC->hasSuperClassEq(&PPC::GPRCRegClass);
582 Opc = Is32BitInt ? PPC::STB : PPC::STB8;
585 Opc = Is32BitInt ? PPC::STH : PPC::STH8;
589 Opc = PPC::STW;
592 Opc = PPC::STD;
596 Opc = PPC::STFS;
599 Opc = PPC::STFD;
633 case PPC::STB: Opc = PPC::STBX; break;
634 case PPC::STH : Opc = PPC::STHX; break;
635 case PPC::STW : Opc = PPC::STWX; break;
636 case PPC::STB8: Opc = PPC::STBX8; break;
637 case PPC::STH8: Opc = PPC::STHX8; break;
638 case PPC::STW8: Opc = PPC::STWX8; break;
639 case PPC::STD: Opc = PPC::STDX; break;
640 case PPC::STFS: Opc = PPC::STFSX; break;
641 case PPC::STFD: Opc = PPC::STFDX; break;
689 Optional<PPC::Predicate> OptPPCPred = getComparePred(CI->getPredicate());
693 PPC::Predicate PPCPred = OptPPCPred.getValue();
698 PPCPred = PPC::InvertPredicate(PPCPred);
701 unsigned CondReg = createResultReg(&PPC::CRRCRegClass);
707 BuildMI(*BrBB, FuncInfo.InsertPt, DL, TII.get(PPC::BCC))
764 CmpOpc = PPC::FCMPUS;
767 CmpOpc = PPC::FCMPUD;
776 CmpOpc = IsZExt ? PPC::CMPLW : PPC::CMPW;
778 CmpOpc = IsZExt ? PPC::CMPLWI : PPC::CMPWI;
782 CmpOpc = IsZExt ? PPC::CMPLD : PPC::CMPD;
784 CmpOpc = IsZExt ? PPC::CMPLDI : PPC::CMPDI;
800 unsigned ExtReg = createResultReg(&PPC::GPRCRegClass);
806 unsigned ExtReg = createResultReg(&PPC::GPRCRegClass);
855 unsigned DestReg = createResultReg(&PPC::F4RCRegClass);
856 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::FRSP), DestReg)
875 unsigned TmpReg = createResultReg(&PPC::G8RCRegClass);
892 unsigned LoadOpc = PPC::LFD;
896 LoadOpc = PPC::LFIWZX;
899 LoadOpc = PPC::LFIWAX;
904 const TargetRegisterClass *RC = &PPC::F8RCRegClass;
952 unsigned TmpReg = createResultReg(&PPC::G8RCRegClass);
965 const TargetRegisterClass *RC = &PPC::F8RCRegClass;
970 Opc = IsSigned ? PPC::FCFIDS : PPC::FCFIDUS;
972 Opc = IsSigned ? PPC::FCFID : PPC::FCFIDU;
1049 if (InRC == &PPC::F4RCRegClass) {
1050 unsigned TmpReg = createResultReg(&PPC::F8RCRegClass);
1053 .addReg(SrcReg).addImm(PPC::F8RCRegClassID);
1059 unsigned DestReg = createResultReg(&PPC::F8RCRegClass);
1064 Opc = PPC::FCTIWZ;
1066 Opc = PPCSubTarget.hasFPCVT() ? PPC::FCTIWUZ : PPC::FCTIDZ;
1068 Opc = IsSigned ? PPC::FCTIDZ : PPC::FCTIDUZ;
1099 &PPC::GPRC_and_GPRC_NOR0RegClass);
1100 bool IsGPRC = RC->hasSuperClassEq(&PPC::GPRCRegClass);
1106 Opc = IsGPRC ? PPC::ADD4 : PPC::ADD8;
1109 Opc = IsGPRC ? PPC::OR : PPC::OR8;
1112 Opc = IsGPRC ? PPC::SUBF : PPC::SUBF8;
1116 unsigned ResultReg = createResultReg(RC ? RC : &PPC::G8RCRegClass);
1129 case PPC::ADD4:
1130 Opc = PPC::ADDI;
1131 MRI.setRegClass(SrcReg1, &PPC::GPRC_and_GPRC_NOR0RegClass);
1133 case PPC::ADD8:
1134 Opc = PPC::ADDI8;
1135 MRI.setRegClass(SrcReg1, &PPC::G8RC_and_G8RC_NOX0RegClass);
1137 case PPC::OR:
1138 Opc = PPC::ORI;
1140 case PPC::OR8:
1141 Opc = PPC::ORI8;
1143 case PPC::SUBF:
1147 Opc = PPC::ADDI;
1148 MRI.setRegClass(SrcReg1, &PPC::GPRC_and_GPRC_NOR0RegClass);
1152 case PPC::SUBF8:
1156 Opc = PPC::ADDI8;
1157 MRI.setRegClass(SrcReg1, &PPC::G8RC_and_G8RC_NOX0RegClass);
1227 unsigned NextGPR = PPC::X3;
1228 unsigned NextFPR = PPC::F1;
1245 (DestVT == MVT::i64) ? &PPC::G8RCRegClass : &PPC::GPRCRegClass;
1257 (DestVT == MVT::i64) ? &PPC::G8RCRegClass : &PPC::GPRCRegClass;
1331 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::FRSP),
1339 ResultReg = createResultReg(&PPC::GPRCRegClass);
1341 SourcePhysReg -= PPC::X0 - PPC::R0;
1475 TII.get(PPC::BL8_NOP));
1568 (DestVT == MVT::i64) ? &PPC::G8RCRegClass : &PPC::GPRCRegClass;
1577 (DestVT == MVT::i64) ? &PPC::G8RCRegClass : &PPC::GPRCRegClass;
1595 TII.get(PPC::BLR));
1617 Opc = (DestVT == MVT::i32) ? PPC::EXTSB : PPC::EXTSB8_32_64;
1619 Opc = (DestVT == MVT::i32) ? PPC::EXTSH : PPC::EXTSH8_32_64;
1622 Opc = PPC::EXTSW_32_64;
1636 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::RLWINM),
1650 TII.get(PPC::RLDICL_32_64), DestReg)
1663 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::MTCTR8))
1665 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::BCTR8));
1692 unsigned ResultReg = createResultReg(&PPC::GPRCRegClass);
1694 ResultReg).addReg(SrcReg, 0, PPC::sub_32);
1730 (DestVT == MVT::i64 ? &PPC::G8RC_and_G8RC_NOX0RegClass :
1731 &PPC::GPRC_and_GPRC_NOR0RegClass));
1811 unsigned Opc = (VT == MVT::f32) ? PPC::LFS : PPC::LFD;
1812 unsigned TmpReg = createResultReg(&PPC::G8RC_and_G8RC_NOX0RegClass);
1816 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::LDtocCPT),
1818 .addConstantPoolIndex(Idx).addReg(PPC::X2);
1823 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::ADDIStocHA),
1824 TmpReg).addReg(PPC::X2).addConstantPoolIndex(Idx);
1828 unsigned TmpReg2 = createResultReg(&PPC::G8RC_and_G8RC_NOX0RegClass);
1829 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::LDtocL),
1847 const TargetRegisterClass *RC = &PPC::G8RC_and_G8RC_NOX0RegClass;
1872 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::LDtoc), DestReg)
1873 .addGlobalAddress(GV).addReg(PPC::X2);
1884 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::ADDIStocHA),
1885 HighPartReg).addReg(PPC::X2).addGlobalAddress(GV);
1893 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::LDtocL),
1897 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::ADDItocL),
1912 bool IsGPRC = RC->hasSuperClassEq(&PPC::GPRCRegClass);
1916 TII.get(IsGPRC ? PPC::LI : PPC::LI8), ResultReg)
1922 TII.get(IsGPRC ? PPC::LIS : PPC::LIS8), TmpReg)
1925 TII.get(IsGPRC ? PPC::ORI : PPC::ORI8), ResultReg)
1930 TII.get(IsGPRC ? PPC::LIS : PPC::LIS8), ResultReg)
1969 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::RLDICR),
1977 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::ORIS8),
1984 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::ORI8),
2001 const TargetRegisterClass *RC = ((VT == MVT::i64) ? &PPC::G8RCRegClass :
2002 &PPC::GPRCRegClass);
2007 unsigned Opc = (VT == MVT::i64) ? PPC::LI8 : PPC::LI;
2057 unsigned ResultReg = createResultReg(&PPC::G8RC_and_G8RC_NOX0RegClass);
2058 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(PPC::ADDI8),
2087 case PPC::RLDICL:
2088 case PPC::RLDICL_32_64: {
2098 case PPC::RLWINM:
2099 case PPC::RLWINM8: {
2108 case PPC::EXTSB:
2109 case PPC::EXTSB8:
2110 case PPC::EXTSB8_32_64:
2114 case PPC::EXTSH:
2115 case PPC::EXTSH8:
2116 case PPC::EXTSH8_32_64: {
2122 case PPC::EXTSW:
2123 case PPC::EXTSW_32_64: {
2165 const TargetRegisterClass *RC = ((VT == MVT::i64) ? &PPC::G8RCRegClass :
2166 &PPC::GPRCRegClass);
2188 if (MachineInstOpcode == PPC::ADDI)
2189 MRI.setRegClass(Op0, &PPC::GPRC_and_GPRC_NOR0RegClass);
2190 else if (MachineInstOpcode == PPC::ADDI8)
2191 MRI.setRegClass(Op0, &PPC::G8RC_and_G8RC_NOX0RegClass);
2194 (RC == &PPC::GPRCRegClass ? &PPC::GPRC_and_GPRC_NOR0RegClass :
2195 (RC == &PPC::G8RCRegClass ? &PPC::G8RC_and_G8RC_NOX0RegClass : RC));
2208 (RC == &PPC::GPRCRegClass ? &PPC::GPRC_and_GPRC_NOR0RegClass :
2209 (RC == &PPC::G8RCRegClass ? &PPC::G8RC_and_G8RC_NOX0RegClass : RC));
2222 (RC == &PPC::GPRCRegClass ? &PPC::GPRC_and_GPRC_NOR0RegClass :
2223 (RC == &PPC::G8RCRegClass ? &PPC::G8RC_and_G8RC_NOX0RegClass : RC));
2231 FastISel *PPC::createFastISel(FunctionLoweringInfo &FuncInfo,