1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00

[X86] Strip unnecessary broadcast/shuffle256 instrw overrides from scheduler models.

llvm-svn: 330523
This commit is contained in:
Simon Pilgrim 2018-04-21 20:45:12 +00:00
parent 95cf90d64b
commit e8dbfa37fc
4 changed files with 5 additions and 133 deletions

View File

@ -351,7 +351,6 @@ def BWWriteResGroup3 : SchedWriteRes<[BWPort5]> {
def: InstRW<[BWWriteResGroup3], (instregex "MMX_MOVD64rr",
"MMX_MOVD64to64rr",
"MMX_MOVQ2DQrr",
"VBROADCASTSSrr",
"(V?)MOV64toPQIrr",
"(V?)MOVAPD(Y?)rr",
"(V?)MOVAPS(Y?)rr",
@ -359,8 +358,6 @@ def: InstRW<[BWWriteResGroup3], (instregex "MMX_MOVD64rr",
"(V?)MOVUPD(Y?)rr",
"(V?)MOVUPS(Y?)rr",
"(V?)PBLENDW(Y?)rri",
"VPBROADCASTDrr",
"VPBROADCASTQrr",
"(V?)PSLLDQ(Y?)ri",
"(V?)PSRLDQ(Y?)ri")>;
@ -657,20 +654,8 @@ def BWWriteResGroup28 : SchedWriteRes<[BWPort5]> {
let NumMicroOps = 1;
let ResourceCycles = [1];
}
def: InstRW<[BWWriteResGroup28], (instregex "VBROADCASTSDYrr",
"VBROADCASTSSYrr",
"VEXTRACTF128rr",
"VEXTRACTI128rr",
"VINSERTF128rr",
"VINSERTI128rr",
"VPBROADCASTB(Y?)rr",
"VPBROADCASTDYrr",
"VPBROADCASTQYrr",
"VPBROADCASTW(Y?)rr",
"VPERM2F128rr",
"VPERM2I128rr",
"VPERMPDYri",
"VPERMQYri",
def: InstRW<[BWWriteResGroup28], (instregex "VPBROADCASTBrr",
"VPBROADCASTWrr",
"VPMOVSXBDYrr",
"VPMOVSXBQYrr",
"VPMOVSXBWYrr",

View File

@ -702,7 +702,6 @@ def HWWriteResGroup4 : SchedWriteRes<[HWPort5]> {
def: InstRW<[HWWriteResGroup4], (instregex "MMX_MOVD64rr",
"MMX_MOVD64to64rr",
"MMX_MOVQ2DQrr",
"VBROADCASTSSrr",
"(V?)MOV64toPQIrr",
"(V?)MOVAPD(Y?)rr",
"(V?)MOVAPS(Y?)rr",
@ -710,8 +709,6 @@ def: InstRW<[HWWriteResGroup4], (instregex "MMX_MOVD64rr",
"(V?)MOVUPD(Y?)rr",
"(V?)MOVUPS(Y?)rr",
"(V?)PBLENDW(Y?)rri",
"VPBROADCASTDrr",
"VPBROADCASTQrr",
"(V?)PSLLDQ(Y?)ri",
"(V?)PSRLDQ(Y?)ri")>;
@ -1503,22 +1500,8 @@ def HWWriteResGroup51 : SchedWriteRes<[HWPort5]> {
let NumMicroOps = 1;
let ResourceCycles = [1];
}
def: InstRW<[HWWriteResGroup51], (instregex "VBROADCASTSDYrr",
"VBROADCASTSSYrr",
"VEXTRACTF128rr",
"VEXTRACTI128rr",
"VINSERTF128rr",
"VINSERTI128rr",
"VPBROADCASTBYrr",
"VPBROADCASTBrr",
"VPBROADCASTDYrr",
"VPBROADCASTQYrr",
"VPBROADCASTWYrr",
def: InstRW<[HWWriteResGroup51], (instregex "VPBROADCASTBrr",
"VPBROADCASTWrr",
"VPERM2F128rr",
"VPERM2I128rr",
"VPERMPDYri",
"VPERMQYri",
"VPMOVSXBDYrr",
"VPMOVSXBQYrr",
"VPMOVSXBWYrr",

View File

@ -362,12 +362,9 @@ def: InstRW<[SKLWriteResGroup3], (instregex "COMP_FST0r",
"MMX_MOVD64to64rr",
"UCOM_FPr",
"UCOM_Fr",
"VBROADCASTSSrr",
"(V?)MOV64toPQIrr",
"(V?)MOVDI2PDIrr",
"(V?)PBLENDW(Y?)rri",
"VPBROADCASTDrr",
"VPBROADCASTQrr",
"(V?)PSLLDQ(Y?)ri",
"(V?)PSRLDQ(Y?)ri")>;
@ -772,21 +769,9 @@ def: InstRW<[SKLWriteResGroup30], (instregex "ADD_FPrST0",
"SUB_FPrST0",
"SUB_FST0r",
"SUB_FrST0",
"VBROADCASTSDYrr",
"VBROADCASTSSYrr",
"VEXTRACTF128rr",
"VEXTRACTI128rr",
"VINSERTF128rr",
"VINSERTI128rr",
"VPBROADCASTBrr",
"VPBROADCASTDYrr",
"VPBROADCASTQYrr",
"VPBROADCASTW(Y?)rr",
"VPBROADCASTWrr",
"(V?)PCMPGTQ(Y?)rr",
"VPERM2F128rr",
"VPERM2I128rr",
"VPERMPDYri",
"VPERMQYri",
"VPMOVSXBDYrr",
"VPMOVSXBQYrr",
"VPMOVSXBWYrr",

View File

@ -411,16 +411,12 @@ def: InstRW<[SKXWriteResGroup3], (instregex "COMP_FST0r",
"PSRLDQri",
"UCOM_FPr",
"UCOM_Fr",
"VBROADCASTI32X2Z128r",
"VBROADCASTSSrr",
"VMOV64toPQIZrr",
"VMOV64toPQIrr",
"VMOVDI2PDIZrr",
"VMOVDI2PDIrr",
"VPBLENDWYrri",
"VPBLENDWrri",
"VPBROADCASTDrr",
"VPBROADCASTQrr",
"VPSLLDQYri",
"VPSLLDQZ128rr",
"VPSLLDQZ256rr",
@ -1372,17 +1368,6 @@ def: InstRW<[SKXWriteResGroup32], (instregex "ADD_FPrST0",
"VALIGNQZ128rri",
"VALIGNQZ256rri",
"VALIGNQZrri",
"VBROADCASTF32X2Z256r",
"VBROADCASTF32X2Zr",
"VBROADCASTI32X2Z256r",
"VBROADCASTI32X2Zr",
"VBROADCASTSDYrr",
"VBROADCASTSDZ256r",
"VBROADCASTSDZr",
"VBROADCASTSSYrr",
"VBROADCASTSSZ128r",
"VBROADCASTSSZ256r",
"VBROADCASTSSZr",
"VCMPPDZ128rri",
"VCMPPDZ256rri",
"VCMPPDZrri",
@ -1394,20 +1379,6 @@ def: InstRW<[SKXWriteResGroup32], (instregex "ADD_FPrST0",
"VDBPSADBWZ128rri",
"VDBPSADBWZ256rri",
"VDBPSADBWZrri",
"VEXTRACTF128rr",
"VEXTRACTF32x4Z256rr",
"VEXTRACTF32x4Zrr",
"VEXTRACTF32x8Zrr",
"VEXTRACTF64x2Z256rr",
"VEXTRACTF64x2Zrr",
"VEXTRACTF64x4Zrr",
"VEXTRACTI128rr",
"VEXTRACTI32x4Z256rr",
"VEXTRACTI32x4Zrr",
"VEXTRACTI32x8Zrr",
"VEXTRACTI64x2Z256rr",
"VEXTRACTI64x2Zrr",
"VEXTRACTI64x4Zrr",
"VFPCLASSPDZ128rr",
"VFPCLASSPDZ256rr",
"VFPCLASSPDZrr",
@ -1416,43 +1387,7 @@ def: InstRW<[SKXWriteResGroup32], (instregex "ADD_FPrST0",
"VFPCLASSPSZrr",
"VFPCLASSSDrr",
"VFPCLASSSSrr",
"VINSERTF128rr",
"VINSERTF32x4Z256rr",
"VINSERTF32x4Zrr",
"VINSERTF32x8Zrr",
"VINSERTF64x2Z256rr",
"VINSERTF64x2Zrr",
"VINSERTF64x4Zrr",
"VINSERTI128rr",
"VINSERTI32x4Z256rr",
"VINSERTI32x4Zrr",
"VINSERTI32x8Zrr",
"VINSERTI64x2Z256rr",
"VINSERTI64x2Zrr",
"VINSERTI64x4Zrr",
"VPBROADCASTBYrr",
"VPBROADCASTBZ128r",
"VPBROADCASTBZ256r",
"VPBROADCASTBZr",
"VPBROADCASTBrr",
"VPBROADCASTDYrr",
"VPBROADCASTDZ128r",
"VPBROADCASTDZ256r",
"VPBROADCASTDZr",
"VPBROADCASTDrZ128r",
"VPBROADCASTDrZ256r",
"VPBROADCASTDrZr",
"VPBROADCASTQYrr",
"VPBROADCASTQZ128r",
"VPBROADCASTQZ256r",
"VPBROADCASTQZr",
"VPBROADCASTQrZ128r",
"VPBROADCASTQrZ256r",
"VPBROADCASTQrZr",
"VPBROADCASTWYrr",
"VPBROADCASTWZ128r",
"VPBROADCASTWZ256r",
"VPBROADCASTWZr",
"VPBROADCASTWrr",
"VPCMPBZ128rri",
"VPCMPBZ256rri",
@ -1504,14 +1439,6 @@ def: InstRW<[SKXWriteResGroup32], (instregex "ADD_FPrST0",
"VPCMPWZ128rri",
"VPCMPWZ256rri",
"VPCMPWZrri",
"VPERM2F128rr",
"VPERM2I128rr",
"VPERMPDYri",
"VPERMPDZ256ri",
"VPERMPDZri",
"VPERMQYri",
"VPERMQZ256ri",
"VPERMQZri",
"VPMAXSQZ128rr",
"VPMAXSQZ256rr",
"VPMAXSQZrr",
@ -1599,15 +1526,7 @@ def: InstRW<[SKXWriteResGroup32], (instregex "ADD_FPrST0",
"VPTESTNMQZrr",
"VPTESTNMWZ128rr",
"VPTESTNMWZ256rr",
"VPTESTNMWZrr",
"VSHUFF32X4Z256rri",
"VSHUFF32X4Zrri",
"VSHUFF64X2Z256rri",
"VSHUFF64X2Zrri",
"VSHUFI32X4Z256rri",
"VSHUFI32X4Zrri",
"VSHUFI64X2Z256rri",
"VSHUFI64X2Zrri")>;
"VPTESTNMWZrr")>;
def SKXWriteResGroup33 : SchedWriteRes<[SKXPort0,SKXPort5]> {
let Latency = 3;