Skip to content

Commit

Permalink
[X86] AMD Zen 3 sched model: FMA ops have inverse throughput of 0.5
Browse files Browse the repository at this point in the history
Now that exegesis produces meaningful snippets to measure throughtput
for instructions with tied operands:
2ffe225
the measurements clearly show these instructions to have
more optimistic throughtput.

There's still some noise in the reports, especially around instructions
with memory operands. I'm not sure if we measure those correctly.

Fixes #59325
  • Loading branch information
LebedevRI committed Dec 11, 2022
1 parent 45a892d commit 680b33b
Show file tree
Hide file tree
Showing 2 changed files with 388 additions and 388 deletions.
6 changes: 3 additions & 3 deletions llvm/lib/Target/X86/X86ScheduleZnver3.td
Expand Up @@ -937,9 +937,9 @@ defm : Zn3WriteResXMMPair<WriteFRsqrt, [Zn3FPFDiv], 3, [1], 1>; // Floating poi
defm : Zn3WriteResXMMPair<WriteFRsqrtX, [Zn3FPFDiv], 3, [1], 1>; // Floating point reciprocal square root estimate (XMM).
defm : Zn3WriteResYMMPair<WriteFRsqrtY, [Zn3FPFDiv], 3, [1], 1>; // Floating point reciprocal square root estimate (YMM).
defm : X86WriteResPairUnsupported<WriteFRsqrtZ>; // Floating point reciprocal square root estimate (ZMM).
defm : Zn3WriteResXMMPair<WriteFMA, [Zn3FPFMul01], 4, [2], 1>; // Fused Multiply Add.
defm : Zn3WriteResXMMPair<WriteFMAX, [Zn3FPFMul01], 4, [2], 1>; // Fused Multiply Add (XMM).
defm : Zn3WriteResYMMPair<WriteFMAY, [Zn3FPFMul01], 4, [2], 1>; // Fused Multiply Add (YMM).
defm : Zn3WriteResXMMPair<WriteFMA, [Zn3FPFMul01], 4, [1], 1>; // Fused Multiply Add.
defm : Zn3WriteResXMMPair<WriteFMAX, [Zn3FPFMul01], 4, [1], 1>; // Fused Multiply Add (XMM).
defm : Zn3WriteResYMMPair<WriteFMAY, [Zn3FPFMul01], 4, [1], 1>; // Fused Multiply Add (YMM).
defm : X86WriteResPairUnsupported<WriteFMAZ>; // Fused Multiply Add (ZMM).
defm : Zn3WriteResXMMPair<WriteDPPD, [Zn3FPFMul01], 9, [6], 3, /*LoadUOps=*/2>; // Floating point double dot product.
defm : Zn3WriteResXMMPair<WriteDPPS, [Zn3FPFMul01], 15, [8], 8, /*LoadUOps=*/2>; // Floating point single dot product.
Expand Down

0 comments on commit 680b33b

Please sign in to comment.