This is an archive of the discontinued LLVM Phabricator instance.

[X86][Costmodel] Load/store i8 Stride=3 VF=4 interleaving costs
ClosedPublic

Authored by lebedev.ri on Oct 1 2021, 12:14 PM.

Details

Summary

While we already model this tuple, the values are divergent from reality, so fix them.

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/obWz3PrfK - for intels Block RThroughput: =3.0; for ryzens, Block RThroughput: <=1.5
So pick cost of 3.

For store we have:
https://godbolt.org/z/orjPshn3h - for intels Block RThroughput: =4.0; for ryzens, Block RThroughput: <=2.0
So pick cost of 4.

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

Diff Detail