This is an archive of the discontinued LLVM Phabricator instance.

[X86][Costmodel] Load/store i32/f32 Stride=4 VF=2 interleaving costs
ClosedPublic

Authored by lebedev.ri on Oct 4 2021, 8:04 AM.

Details

Summary

Finally, we are getting to the heavy-hitter stuff!

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/7crGWoar6 - for intels Block RThroughput: =4.0; for ryzens, Block RThroughput: <=2.0
So could pick cost of 4.

For store we have:
https://godbolt.org/z/T8aq3MszM - for intels Block RThroughput: =5.0; for ryzens, Block RThroughput: <=2.0
So we could pick cost of 5.

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

Diff Detail