@@ -1341,7 +1341,7 @@ defm : Zn4WriteResXMMPair<WriteAESIMC, [Zn4FPAES01], 4, [1], 1>; // InvMixColumn
1341
1341
defm : Zn4WriteResXMMPair<WriteAESKeyGen, [Zn4FPAES01], 4, [1], 1>; // Key Generation.
1342
1342
1343
1343
// Carry-less multiplication instructions.
1344
- defm : Zn4WriteResXMMPair<WriteCLMul, [Zn4FPCLM01], 4, [4 ], 4>;
1344
+ defm : Zn4WriteResXMMPair<WriteCLMul, [Zn4FPCLM01], 4, [3 ], 4>;
1345
1345
1346
1346
// EMMS/FEMMS
1347
1347
defm : Zn4WriteResInt<WriteEMMS, [Zn4ALU0123], 2, [1], 1>; // FIXME: latency not from llvm-exegesis
@@ -1387,23 +1387,23 @@ def Zn4WriteVPERM2F128rm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPVShuf]> {
1387
1387
def : InstRW<[Zn4WriteVPERM2F128rm], (instrs VPERM2F128rmi)>;
1388
1388
1389
1389
def Zn4WriteVPERMPSYrr : SchedWriteRes<[Zn4FPVShuf]> {
1390
- let Latency = 7 ;
1390
+ let Latency = 4 ;
1391
1391
let ReleaseAtCycles = [1];
1392
- let NumMicroOps = 2 ;
1392
+ let NumMicroOps = 1 ;
1393
1393
}
1394
1394
def : InstRW<[Zn4WriteVPERMPSYrr], (instrs VPERMPSYrr)>;
1395
1395
1396
1396
def Zn4WriteVPERMPSYrm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPVShuf]> {
1397
1397
let Latency = !add(Znver4Model.VecLoadLatency, Zn4WriteVPERMPSYrr.Latency);
1398
- let ReleaseAtCycles = [1, 1, 2 ];
1399
- let NumMicroOps = !add(Zn4WriteVPERMPSYrr.NumMicroOps, 1) ;
1398
+ let ReleaseAtCycles = [1];
1399
+ let NumMicroOps = 1 ;
1400
1400
}
1401
1401
def : InstRW<[Zn4WriteVPERMPSYrm], (instrs VPERMPSYrm)>;
1402
1402
1403
1403
def Zn4WriteVPERMYri : SchedWriteRes<[Zn4FPVShuf]> {
1404
- let Latency = 6 ;
1404
+ let Latency = 4 ;
1405
1405
let ReleaseAtCycles = [1];
1406
- let NumMicroOps = 2 ;
1406
+ let NumMicroOps = 1 ;
1407
1407
}
1408
1408
def : InstRW<[Zn4WriteVPERMYri], (instrs VPERMPDYri, VPERMQYri)>;
1409
1409
@@ -1415,9 +1415,9 @@ def Zn4WriteVPERMPDYmi : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPVShuf]> {
1415
1415
def : InstRW<[Zn4WriteVPERMPDYmi], (instrs VPERMPDYmi)>;
1416
1416
1417
1417
def Zn4WriteVPERMDYrr : SchedWriteRes<[Zn4FPVShuf]> {
1418
- let Latency = 5 ;
1418
+ let Latency = 4 ;
1419
1419
let ReleaseAtCycles = [1];
1420
- let NumMicroOps = 2 ;
1420
+ let NumMicroOps = 1 ;
1421
1421
}
1422
1422
def : InstRW<[Zn4WriteVPERMDYrr], (instrs VPERMDYrr)>;
1423
1423
0 commit comments