@@ -364,22 +364,30 @@ defm : HWWriteResPair<WriteCvtPS2IY, [HWPort1], 3, [1], 1, 7>;
364364defm : HWWriteResPair<WriteCvtPS2IZ, [HWPort1], 3, [1], 1, 7>; // Unsupported = 1
365365
366366defm : X86WriteRes<WriteCvtI2SD, [HWPort1,HWPort5], 4, [1,1], 2>;
367+ defm : X86WriteRes<WriteCvtI2PD, [HWPort1,HWPort5], 4, [1,1], 2>;
368+ defm : X86WriteRes<WriteCvtI2PDY, [HWPort1,HWPort5], 6, [1,1], 2>;
369+ defm : X86WriteRes<WriteCvtI2PDZ, [HWPort1,HWPort5], 6, [1,1], 2>; // Unsupported = 1
367370defm : X86WriteRes<WriteCvtI2SDLd, [HWPort1,HWPort23], 9, [1,1], 2>;
368- defm : HWWriteResPair<WriteCvtI2PD , [HWPort1,HWPort5], 4 , [1,1], 2, 6 >;
369- defm : HWWriteResPair<WriteCvtI2PDY , [HWPort1,HWPort5], 6 , [1,1], 2, 6 >;
370- defm : HWWriteResPair<WriteCvtI2PDZ , [HWPort1,HWPort5], 6 , [1,1], 2, 6 >; // Unsupported = 1
371+ defm : X86WriteRes<WriteCvtI2PDLd , [HWPort1,HWPort23],10 , [1,1], 2>;
372+ defm : X86WriteRes<WriteCvtI2PDYLd , [HWPort1,HWPort23],12 , [1,1], 2>;
373+ defm : X86WriteRes<WriteCvtI2PDZLd , [HWPort1,HWPort23],12 , [1,1], 2>; // Unsupported = 1
371374defm : X86WriteRes<WriteCvtI2SS, [HWPort1,HWPort5], 4, [1,1], 2>;
375+ defm : X86WriteRes<WriteCvtI2PS, [HWPort1], 3, [1], 1>;
376+ defm : X86WriteRes<WriteCvtI2PSY, [HWPort1], 3, [1], 1>;
377+ defm : X86WriteRes<WriteCvtI2PSZ, [HWPort1], 3, [1], 1>; // Unsupported = 1
372378defm : X86WriteRes<WriteCvtI2SSLd, [HWPort1,HWPort23], 9, [1,1], 2>;
373- defm : HWWriteResPair<WriteCvtI2PS , [HWPort1], 3 , [1], 1, 6 >;
374- defm : HWWriteResPair<WriteCvtI2PSY , [HWPort1], 3 , [1], 1, 7 >;
375- defm : HWWriteResPair<WriteCvtI2PSZ , [HWPort1], 3 , [1], 1, 7 >; // Unsupported = 1
379+ defm : X86WriteRes<WriteCvtI2PSLd , [HWPort1,HWPort23 ], 9 , [1,1], 2 >;
380+ defm : X86WriteRes<WriteCvtI2PSYLd , [HWPort1,HWPort23],10 , [1,1], 2 >;
381+ defm : X86WriteRes<WriteCvtI2PSZLd , [HWPort1,HWPort23],10 , [1,1], 2 >; // Unsupported = 1
376382
377383defm : X86WriteRes<WriteCvtSS2SD, [HWPort0,HWPort5], 2, [1,1], 2>;
378- defm : X86WriteRes<WriteCvtSS2SDLd, [HWPort0,HWPort23], 7, [1,1], 2>;
379384defm : X86WriteRes<WriteCvtPS2PD, [HWPort0,HWPort5], 2, [1,1], 2>;
385+ defm : X86WriteRes<WriteCvtPS2PDY, [HWPort0,HWPort5], 4, [1,1], 2>;
386+ defm : X86WriteRes<WriteCvtPS2PDZ, [HWPort0,HWPort5], 4, [1,1], 2>; // Unsupported = 1
387+ defm : X86WriteRes<WriteCvtSS2SDLd, [HWPort0,HWPort23], 7, [1,1], 2>;
380388defm : X86WriteRes<WriteCvtPS2PDLd, [HWPort0,HWPort23], 6, [1,1], 2>;
381- defm : HWWriteResPair<WriteCvtPS2PDY , [HWPort0,HWPort5], 4 , [1,1], 2, 6 >;
382- defm : HWWriteResPair<WriteCvtPS2PDZ , [HWPort0,HWPort5], 4 , [1,1], 2, 6 >; // Unsupported = 1
389+ defm : X86WriteRes<WriteCvtPS2PDYLd , [HWPort0,HWPort23],10 , [1,1], 2>;
390+ defm : X86WriteRes<WriteCvtPS2PDZLd , [HWPort0,HWPort23],10 , [1,1], 2>; // Unsupported = 1
383391defm : HWWriteResPair<WriteCvtSD2SS, [HWPort1,HWPort5], 4, [1,1], 2, 5>;
384392defm : HWWriteResPair<WriteCvtPD2PS, [HWPort1,HWPort5], 4, [1,1], 2, 6>;
385393defm : HWWriteResPair<WriteCvtPD2PSY, [HWPort1,HWPort5], 6, [1,1], 2, 6>;
@@ -983,7 +991,6 @@ def HWWriteResGroup12 : SchedWriteRes<[HWPort1,HWPort23]> {
983991 let NumMicroOps = 2;
984992 let ReleaseAtCycles = [1,1];
985993}
986- def: InstRW<[HWWriteResGroup12], (instrs MMX_CVTPI2PSrm)>;
987994def: InstRW<[HWWriteResGroup12], (instregex "P(DEP|EXT)(32|64)rm")>;
988995
989996def HWWriteResGroup13 : SchedWriteRes<[HWPort5,HWPort23]> {
@@ -1349,13 +1356,6 @@ def HWWriteResGroup75 : SchedWriteRes<[HWPort1,HWPort23]> {
13491356}
13501357def: InstRW<[HWWriteResGroup75], (instregex "FICOM(P?)(16|32)m")>;
13511358
1352- def HWWriteResGroup78_1 : SchedWriteRes<[HWPort1,HWPort5,HWPort23]> {
1353- let Latency = 9;
1354- let NumMicroOps = 3;
1355- let ReleaseAtCycles = [1,1,1];
1356- }
1357- def: InstRW<[HWWriteResGroup78_1], (instrs MMX_CVTPI2PDrm)>;
1358-
13591359def HWWriteResGroup80 : SchedWriteRes<[HWPort5,HWPort23,HWPort015]> {
13601360 let Latency = 9;
13611361 let NumMicroOps = 3;
0 commit comments