Intel managed to misname two intrinsic APIs for AVX: _mm256_slli_si256 and _mm256_srli_si256, and then aliased the newer names _mm256_bslli_epi128 and _mm256_bsrli_epi128 to them. The former names are confusing, as they don't actually do 256-bit left or right shifts; they do 128-bit shifts on two 128-bit lanes.
I got caught out by this just now. In Rust, could we use the #[deprecated] syntax to warn users and point them to their (slightly) better named twins _mm256_bslli_epi128 and _mm256_bsrli_epi128.
Here's an Intel conversation were they change name: https://community.intel.com/t5/Intel-C-Compiler/mm256-slli-si256-and-mm256-srli-si256/td-p/820224.
Intel managed to misname two intrinsic APIs for AVX:
_mm256_slli_si256and_mm256_srli_si256, and then aliased the newer names_mm256_bslli_epi128and_mm256_bsrli_epi128to them. The former names are confusing, as they don't actually do 256-bit left or right shifts; they do 128-bit shifts on two 128-bit lanes.I got caught out by this just now. In Rust, could we use the
#[deprecated]syntax to warn users and point them to their (slightly) better named twins_mm256_bslli_epi128and_mm256_bsrli_epi128.Here's an Intel conversation were they change name: https://community.intel.com/t5/Intel-C-Compiler/mm256-slli-si256-and-mm256-srli-si256/td-p/820224.