#2124 (review)
Testing the kernel rewrites is a little tricky. This came up in a Baby Step Giant Step transform in #2124 that rewrites the reduction with adds/muls/rotates. Validating this is a little tricky, since we'll need to simulate the operations on vectors with data in the slots.
I think it probably does make sense to add support for rotations and vector types in the arithmetic DAG so we can start to simulate kernels that utilize the SIMD slots rotations (and aren't just elementwise).
We'll probably need to do a bunch of testing anyway on this since we need to know when we can/can't pad zeros, and things like that. Probably testing is the first step doing this analysis that can inform passes to optimize packing or padding options.
#2124 (review)
Testing the kernel rewrites is a little tricky. This came up in a Baby Step Giant Step transform in #2124 that rewrites the reduction with adds/muls/rotates. Validating this is a little tricky, since we'll need to simulate the operations on vectors with data in the slots.
I think it probably does make sense to add support for rotations and vector types in the arithmetic DAG so we can start to simulate kernels that utilize the SIMD slots rotations (and aren't just elementwise).
We'll probably need to do a bunch of testing anyway on this since we need to know when we can/can't pad zeros, and things like that. Probably testing is the first step doing this analysis that can inform passes to optimize packing or padding options.