[all-commits] [llvm/llvm-project] d9413f: [X86][Costmodel] Load/store i16 VF=2 interleaving ...

Roman Lebedev via All-commits all-commits at lists.llvm.org
Sun Sep 26 09:14:53 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d9413f46b308df5afd7fc106df2af809757bb0c9
      https://github.com/llvm/llvm-project/commit/d9413f46b308df5afd7fc106df2af809757bb0c9
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-09-26 (Sun, 26 Sep 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-2.ll
    M llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-2.ll

  Log Message:
  -----------
  [X86][Costmodel] Load/store i16 VF=2 interleaving costs

The only sched models that for cpu's that support avx2
but not avx512 are: haswell, broadwell, skylake, zen1-3

For load we have:
https://godbolt.org/z/M8vEKs5jY - for intels `Block RThroughput: =2.0`;
                                  for ryzens, `Block RThroughput: <=1.0`
So pick cost of `2`.

For store we have:
https://godbolt.org/z/Kx1nKz7je - for intels `Block RThroughput: =1.0`;
                                  for ryzens, `Block RThroughput: <=0.5`
So pick cost of `1`.

I'm directly using the shuffling asm the llc produced,
without any manual fixups that may be needed
to ensure sequential execution.

Reviewed By: RKSimon

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




More information about the All-commits mailing list