[X86] Update WriteMPSAD class and remove VMPSADBWrri override

AMD 15h SoG + Agner both indicate there's no difference between MPSADBWrri + VMPSADBWrri - I can't find any data on the folded variant so I've kept the existing numbers

Removes the last X86 override for WriteMPSAD/WritePSADBW classes - removing a further 3 entries from every sched class table
This commit is contained in:
Simon Pilgrim 2022-11-13 15:19:30 +00:00
parent 05df5474cb
commit e5120a43d5
3 changed files with 5 additions and 10 deletions

View File

@ -1150,17 +1150,12 @@ def PdWriteVPMACS : SchedWriteRes<[PdFPU0, PdFPMMA, PdFPMAL]> {
def : InstRW<[PdWriteVPMACS], (instrs VPMACSDQHrr, VPMACSDQLrr, VPMACSSDQHrr,
VPMACSSDQLrr)>;
defm : PdWriteResXMMPair<WriteMPSAD, [PdFPU0, PdFPMMA], 9, [1, 4], 8>;
// FIXME: Investigate RR vs RM differences.
defm : PdWriteRes<WriteMPSAD, [PdFPU0, PdFPMMA], 8, [1, 4], 8>;
defm : PdWriteRes<WriteMPSADLd, [PdFPU0, PdFPMMA, PdLoad], 14, [1, 4, 3], 8>;
defm : X86WriteResPairUnsupported<WriteMPSADY>;
defm : X86WriteResPairUnsupported<WriteMPSADZ>;
def PdWriteVMPSADBW : SchedWriteRes<[PdFPU0, PdFPMMA]> {
let Latency = 8;
let ResourceCycles = [1, 4];
let NumMicroOps = 10;
}
def : InstRW<[PdWriteVMPSADBW], (instrs VMPSADBWrri)>;
defm : PdWriteResXMMPair<WritePSADBW, [PdFPU01, PdFPMAL], 4, [1, 2], 2>;
defm : PdWriteResXMMPair<WritePSADBWX, [PdFPU01, PdFPMAL], 4, [1, 2], 2>;
defm : X86WriteResPairUnsupported<WritePSADBWY>;

View File

@ -1337,7 +1337,7 @@ vzeroupper
# CHECK-NEXT: 2 2 1.00 vmovups %ymm0, %ymm2
# CHECK-NEXT: 8 1 1.00 * vmovups %ymm0, (%rax)
# CHECK-NEXT: 2 5 1.50 * vmovups (%rax), %ymm2
# CHECK-NEXT: 10 8 4.00 vmpsadbw $1, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 8 8 4.00 vmpsadbw $1, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 8 14 4.00 * vmpsadbw $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vmulpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 10 1.50 * vmulpd (%rax), %xmm1, %xmm2

View File

@ -172,7 +172,7 @@ roundss $1, (%rax), %xmm2
# CHECK-NEXT: 1 2 1.00 insertps $1, %xmm0, %xmm2
# CHECK-NEXT: 1 7 1.50 * insertps $1, (%rax), %xmm2
# CHECK-NEXT: 1 5 2.00 * movntdqa (%rax), %xmm2
# CHECK-NEXT: 8 9 4.00 mpsadbw $1, %xmm0, %xmm2
# CHECK-NEXT: 8 8 4.00 mpsadbw $1, %xmm0, %xmm2
# CHECK-NEXT: 8 14 4.00 * mpsadbw $1, (%rax), %xmm2
# CHECK-NEXT: 1 2 1.00 packusdw %xmm0, %xmm2
# CHECK-NEXT: 1 7 1.50 * packusdw (%rax), %xmm2