A few more tuples are being queried after D111546. Might be good to model them,
They all require a lot of manual assembly surgery.
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/9bnKrefcG - for intels Block RThroughput: =40.0; for ryzens, Block RThroughput: =16.0
So could pick cost of 40
For store we have:
https://godbolt.org/z/5s3s14dEY - for intels Block RThroughput: =40.0; for ryzens, Block RThroughput: =16.0
So we could pick cost of 40.
I'm directly using the shuffling asm the llc produced,
without any manual fixups that may be needed
to ensure sequential execution.
clang-format: please reformat the code
- {4, MVT::v2i64, 6}, // (load 8i64 and) deinterleave into 4 x 2i64 - {4, MVT::v4i64, 8}, // (load 16i64 and) deinterleave into 4 x 4i64 - {4, MVT::v8i64, 20}, // (load 32i64 and) deinterleave into 4 x 8i64 + {4, MVT::v2i64, 6}, // (load 8i64 and) deinterleave into 4 x 2i64 + {4, MVT::v4i64, 8}, // (load 16i64 and) deinterleave into 4 x 4i64 + {4, MVT::v8i64, 20}, // (load 32i64 and) deinterleave into 4 x 8i64