I've tried optimizing the 16-bit variable-vector shifts for AVX2 and got formulations that should be much better than autovectorization: Shnatsel@95666a5
However, the actual codegen is poor due to a compiler bug, with intrinsics not lowering into the instructions they're supposed to: rust-lang/rust#159831
We should revisit this once the upstream codegen bugs are fixed. Even if they were fixed today we likely won't get the upstream LLVM fixes till January.
I've tried optimizing the 16-bit variable-vector shifts for AVX2 and got formulations that should be much better than autovectorization: Shnatsel@95666a5
However, the actual codegen is poor due to a compiler bug, with intrinsics not lowering into the instructions they're supposed to: rust-lang/rust#159831
We should revisit this once the upstream codegen bugs are fixed. Even if they were fixed today we likely won't get the upstream LLVM fixes till January.