]> granicus.if.org Git - llvm/commit
[X86][BtVer2] Improved latency and throughput of float/vector loads and stores.
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Mon, 14 Oct 2019 11:12:18 +0000 (11:12 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Mon, 14 Oct 2019 11:12:18 +0000 (11:12 +0000)
commit30954cb6a946c405995a7d1159214c9c48691472
tree3e2653756fecfb4da75c5d551ebf8f077241c4a2
parenta2dc88278d3671059fa03ac1d89e01328173e53a
[X86][BtVer2] Improved latency and throughput of float/vector loads and stores.

This patch introduces the following changes to the btver2 scheduling model:

- The number of micro opcodes for YMM loads and stores is now 2 (it was
  incorrectly set to 1 for both aligned and misaligned loads/stores).

- Increased the number of AGU resource cycles for YMM loads and stores
  to 2cy (instead of 1cy).

- Removed JFPU01 and JFPX from the list of resources consumed by pure
  float/vector loads (no MMX).

I verified with llvm-exegesis that pure XMM/YMM loads are no-pipe. Those
are dispatched to the FPU but not really issues on JFPU01.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@374765 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ScheduleBtVer2.td
test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-3.s
test/tools/llvm-mca/X86/BtVer2/load-store-alias.s
test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s
test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
test/tools/llvm-mca/X86/BtVer2/resources-sse2.s
test/tools/llvm-mca/X86/BtVer2/resources-sse3.s