"VCVTPS2PHYrr",
"VCVTTPD2DQYrr")>;
-def BWWriteResGroup61 : SchedWriteRes<[BWPort5,BWPort23]> {
- let Latency = 6;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1];
-}
-def: InstRW<[BWWriteResGroup61], (instregex "(V?)INSERTPSrm",
- "(V?)MOVHPDrm",
- "(V?)MOVHPSrm",
- "(V?)MOVLPDrm",
- "(V?)MOVLPSrm",
- "(V?)PACKSSDWrm",
- "(V?)PACKSSWBrm",
- "(V?)PACKUSDWrm",
- "(V?)PACKUSWBrm",
- "(V?)PALIGNRrmi",
- "VPERMILPDmi",
- "VPERMILPDrm",
- "VPERMILPSmi",
- "VPERMILPSrm",
- "(V?)PINSRBrm",
- "(V?)PINSRDrm",
- "(V?)PINSRQrm",
- "(V?)PINSRWrm",
- "(V?)PSHUFBrm",
- "(V?)PSHUFDmi",
- "(V?)PSHUFHWmi",
- "(V?)PSHUFLWmi",
- "(V?)PUNPCKHBWrm",
- "(V?)PUNPCKHDQrm",
- "(V?)PUNPCKHQDQrm",
- "(V?)PUNPCKHWDrm",
- "(V?)PUNPCKLBWrm",
- "(V?)PUNPCKLDQrm",
- "(V?)PUNPCKLQDQrm",
- "(V?)PUNPCKLWDrm",
- "(V?)SHUFPDrmi",
- "(V?)SHUFPSrmi",
- "(V?)UNPCKHPDrm",
- "(V?)UNPCKHPSrm",
- "(V?)UNPCKLPDrm",
- "(V?)UNPCKLPSrm")>;
-
def BWWriteResGroup62 : SchedWriteRes<[BWPort6,BWPort23]> {
let Latency = 6;
let NumMicroOps = 2;
"BLSI(32|64)rm",
"BLSMSK(32|64)rm",
"BLSR(32|64)rm",
- "MOVBE(16|32|64)rm",
- "(V?)PABSBrm",
- "(V?)PABSDrm",
- "(V?)PABSWrm",
- "(V?)PADDBrm",
- "(V?)PADDDrm",
- "(V?)PADDQrm",
- "(V?)PADDSBrm",
- "(V?)PADDSWrm",
- "(V?)PADDUSBrm",
- "(V?)PADDUSWrm",
- "(V?)PADDWrm",
- "(V?)PAVGBrm",
- "(V?)PAVGWrm",
- "(V?)PCMPEQBrm",
- "(V?)PCMPEQDrm",
- "(V?)PCMPEQQrm",
- "(V?)PCMPEQWrm",
- "(V?)PCMPGTBrm",
- "(V?)PCMPGTDrm",
- "(V?)PCMPGTWrm",
- "(V?)PMAXSBrm",
- "(V?)PMAXSDrm",
- "(V?)PMAXSWrm",
- "(V?)PMAXUBrm",
- "(V?)PMAXUDrm",
- "(V?)PMAXUWrm",
- "(V?)PMINSBrm",
- "(V?)PMINSDrm",
- "(V?)PMINSWrm",
- "(V?)PMINUBrm",
- "(V?)PMINUDrm",
- "(V?)PMINUWrm",
- "(V?)PSIGNBrm",
- "(V?)PSIGNDrm",
- "(V?)PSIGNWrm",
- "(V?)PSUBBrm",
- "(V?)PSUBDrm",
- "(V?)PSUBQrm",
- "(V?)PSUBSBrm",
- "(V?)PSUBSWrm",
- "(V?)PSUBUSBrm",
- "(V?)PSUBUSWrm",
- "(V?)PSUBWrm")>;
+ "MOVBE(16|32|64)rm")>;
def BWWriteResGroup65 : SchedWriteRes<[BWPort23,BWPort015]> {
let Latency = 6;
def: InstRW<[BWWriteResGroup91], (instregex "MMX_CVTPI2PSirm",
"PDEP(32|64)rm",
"PEXT(32|64)rm",
- "(V?)ADDPDrm",
- "(V?)ADDPSrm",
- "(V?)ADDSDrm",
- "(V?)ADDSSrm",
- "(V?)ADDSUBPDrm",
- "(V?)ADDSUBPSrm",
- "(V?)CVTDQ2PSrm",
- "(V?)SUBPDrm",
- "(V?)SUBPSrm",
- "(V?)SUBSDrm",
- "(V?)SUBSSrm")>;
+ "(V?)CVTDQ2PSrm")>;
def BWWriteResGroup91_16 : SchedWriteRes<[BWPort1, BWPort0156, BWPort23]> {
let Latency = 8;
let NumMicroOps = 2;
let ResourceCycles = [1,1];
}
-def: InstRW<[BWWriteResGroup115], (instregex "(V?)PCMPGTQrm",
- "(V?)PHMINPOSUWrm",
- "(V?)PMADDUBSWrm",
- "(V?)PMADDWDrm",
- "(V?)PSADBWrm")>;
+def: InstRW<[BWWriteResGroup115], (instregex "(V?)PCMPGTQrm")>;
def BWWriteResGroup116 : SchedWriteRes<[BWPort01,BWPort23]> {
let Latency = 10;
"MMX_CVTPI2PSirm",
"PDEP(32|64)rm",
"PEXT(32|64)rm",
- "(V?)ADDSDrm",
- "(V?)ADDSSrm",
"(V?)CMPSDrm",
"(V?)CMPSSrm",
"(V?)MAX(C?)SDrm",
"(V?)MAX(C?)SSrm",
"(V?)MIN(C?)SDrm",
- "(V?)MIN(C?)SSrm",
- "(V?)SUBSDrm",
- "(V?)SUBSSrm")>;
+ "(V?)MIN(C?)SSrm")>;
def HWWriteResGroup12_1 : SchedWriteRes<[HWPort1,HWPort0156,HWPort23]> {
let Latency = 8;
"VXORPDYrm",
"VXORPSYrm")>;
-def HWWriteResGroup13_2 : SchedWriteRes<[HWPort5,HWPort23]> {
- let Latency = 6;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1];
-}
-def: InstRW<[HWWriteResGroup13_2], (instregex "(V?)MOVHPDrm",
- "(V?)MOVHPSrm",
- "(V?)MOVLPDrm",
- "(V?)MOVLPSrm",
- "(V?)PINSRBrm",
- "(V?)PINSRDrm",
- "(V?)PINSRQrm",
- "(V?)PINSRWrm")>;
-
def HWWriteResGroup14 : SchedWriteRes<[HWPort6,HWPort23]> {
let Latency = 6;
let NumMicroOps = 2;
"VPHSUBSWYrm",
"VPHSUBWYrm")>;
-def HWWriteResGroup64_2 : SchedWriteRes<[HWPort5,HWPort23,HWPort15]> {
- let Latency = 9;
- let NumMicroOps = 4;
- let ResourceCycles = [2,1,1];
-}
-def: InstRW<[HWWriteResGroup64_2], (instregex "(V?)PHADDDrm",
- "(V?)PHADDSWrm",
- "(V?)PHADDWrm",
- "(V?)PHSUBDrm",
- "(V?)PHSUBSWrm",
- "(V?)PHSUBWrm")>;
-
def HWWriteResGroup65 : SchedWriteRes<[HWPort23,HWPort06,HWPort0156]> {
let Latency = 8;
let NumMicroOps = 4;
"(V?)MULSDrr",
"(V?)MULSSrr")>;
-def HWWriteResGroup91 : SchedWriteRes<[HWPort0,HWPort23]> {
- let Latency = 10;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1];
-}
-def: InstRW<[HWWriteResGroup91], (instregex "(V?)RCPSSm",
- "(V?)RSQRTSSm")>;
-
def HWWriteResGroup91_1 : SchedWriteRes<[HWPort0,HWPort23,HWFPDivider]> {
let Latency = 16;
let NumMicroOps = 2;
"(V?)CVTTSD2SI64rr",
"(V?)CVTTSD2SIrr")>;
-def SKLWriteResGroup71 : SchedWriteRes<[SKLPort5,SKLPort23]> {
- let Latency = 6;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1];
-}
-def: InstRW<[SKLWriteResGroup71], (instregex "(V?)MOVHPDrm",
- "(V?)MOVHPSrm",
- "(V?)MOVLPDrm",
- "(V?)MOVLPSrm",
- "(V?)PINSRBrm",
- "(V?)PINSRDrm",
- "(V?)PINSRQrm",
- "(V?)PINSRWrm")>;
-
def SKLWriteResGroup72 : SchedWriteRes<[SKLPort6,SKLPort23]> {
let Latency = 6;
let NumMicroOps = 2;
"MMX_PMULHWirm",
"MMX_PMULLWirm",
"MMX_PMULUDQirm",
- "(V?)RCPSSm",
- "(V?)RSQRTSSm",
"VTESTPDYrm",
"VTESTPSYrm")>;
"VCVTTSD2USIZrr(b?)",
"VCVTTSS2USIZrr(b?)")>;
-def SKXWriteResGroup75 : SchedWriteRes<[SKXPort5,SKXPort23]> {
- let Latency = 6;
- let NumMicroOps = 2;
- let ResourceCycles = [1,1];
-}
-def: InstRW<[SKXWriteResGroup75], (instregex "MOVHPDrm",
- "MOVHPSrm",
- "MOVLPDrm",
- "MOVLPSrm",
- "PINSRBrm",
- "PINSRDrm",
- "PINSRQrm",
- "PINSRWrm",
- "VMOVHPDZ128rm(b?)",
- "VMOVHPDrm",
- "VMOVHPSZ128rm(b?)",
- "VMOVHPSrm",
- "VMOVLPDZ128rm(b?)",
- "VMOVLPDrm",
- "VMOVLPSZ128rm(b?)",
- "VMOVLPSrm",
- "VPINSRBZrm(b?)",
- "VPINSRBrm",
- "VPINSRDZrm(b?)",
- "VPINSRDrm",
- "VPINSRQZrm(b?)",
- "VPINSRQrm",
- "VPINSRWZrm(b?)",
- "VPINSRWrm")>;
-
def SKXWriteResGroup76 : SchedWriteRes<[SKXPort6,SKXPort23]> {
let Latency = 6;
let NumMicroOps = 2;