[X86][BdVer2] Transfer delays from the integer to the floating point unit.
authorRoman Lebedev <lebedev.ri@gmail.com>
Fri, 1 Feb 2019 11:15:13 +0000 (11:15 +0000)
committerRoman Lebedev <lebedev.ri@gmail.com>
Fri, 1 Feb 2019 11:15:13 +0000 (11:15 +0000)
commit7857215f8ea6850e78819e5c37a7904700bb10cf
tree9f7377e02a6478a75ee697f4595d079deb4b1f9f
parent2c15fc56f8f1548b0ab3fdaf32132e683199bfa6
[X86][BdVer2] Transfer delays from the integer to the floating point unit.

Summary:
I'm unable to find this number in the "AMD SOG for family 15h".
llvm-exegesis measures the latencies of these instructions as `2`,
which matches the latencies specified in "AMD SOG for family 15h".

However if we look at Agner, Microarchitecture, "AMD Bulldozer, Piledriver,
Steamroller and Excavator pipeline", "Data delay between different execution
domains", the int->ivec transfer is listed as `8`..`10`cy of additional latency.

Also, Agner's "Instruction tables", for Piledriver, lists their latencies as `12`,
which is consistent with `2cy` from exegesis / AMD SOG + `10cy` transfer delay.

Additional data point comes from the fact that Agner's "Instruction tables",
for Jaguar, lists their latencies as `8`; and "AMD SOG for family 16h" does
state the `+6cy` int->ivec delay, which is consistent with instr latency of `1` or `2`.

Reviewers: andreadb, RKSimon, craig.topper

Reviewed By: andreadb

Subscribers: gbedwell, courbet, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57300

llvm-svn: 352861
12 files changed:
llvm/lib/Target/X86/X86ScheduleBdVer2.td
llvm/test/CodeGen/X86/mmx-schedule.ll
llvm/test/CodeGen/X86/sse-schedule.ll
llvm/test/CodeGen/X86/sse2-schedule.ll
llvm/test/CodeGen/X86/sse41-schedule.ll
llvm/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-1.s
llvm/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-2.s
llvm/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s
llvm/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s
llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse1.s
llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse2.s
llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse41.s