@@ -220,9 +220,10 @@ pub const PREFERRED_I16_LANES: usize = 16;
220220// as soon as `nightly-simd` is on.
221221#[ cfg( feature = "nightly-simd" ) ]
222222pub use crate :: simd_nightly:: {
223- f32x16, f32x8, f64x4, f64x8, i16x16, i16x32, i32x16, i64x8, i8x32, i8x64, u16x32, u32x16, u32x8, u64x4, u64x8,
224- u8x32, u8x64, BF16x16 , BF16x8 , F16x16 , F32Mask16 , F32Mask8 , F32x16 , F32x8 , F64Mask4 , F64Mask8 , F64x4 , F64x8 ,
225- I16x16 , I16x32 , I32x16 , I64x8 , I8x32 , I8x64 , U16x32 , U32x16 , U32x8 , U64x4 , U64x8 , U8x32 , U8x64 ,
223+ f32x16, f32x8, f64x4, f64x8, i16x16, i16x32, i32x16, i32x8, i64x4, i64x8, i8x32, i8x64, u16x16, u16x32, u32x16,
224+ u32x8, u64x4, u64x8, u8x32, u8x64, BF16x16 , BF16x8 , F16x16 , F32Mask16 , F32Mask8 , F32x16 , F32x8 , F64Mask4 , F64Mask8 ,
225+ F64x4 , F64x8 , I16x16 , I16x32 , I32x16 , I32x8 , I64x4 , I64x8 , I8x32 , I8x64 , U16x16 , U16x32 , U32x16 , U32x8 , U64x4 ,
226+ U64x8 , U8x32 , U8x64 ,
226227} ;
227228
228229#[ cfg( all( target_arch = "x86_64" , target_feature = "avx512f" , not( feature = "nightly-simd" ) ) ) ]
@@ -234,10 +235,15 @@ pub use crate::simd_avx512::{
234235 i16x16,
235236 i16x32,
236237 i32x16,
238+ i32x8,
239+ i64x4,
237240 i64x8,
238241 i8x32,
239242 i8x64,
243+ u16x16,
240244 u32x16,
245+ u32x8,
246+ u64x4,
241247 u64x8,
242248 u8x64,
243249 F32Mask16 ,
@@ -251,11 +257,18 @@ pub use crate::simd_avx512::{
251257 I16x16 ,
252258 I16x32 ,
253259 I32x16 ,
260+ // 256-bit int polyfills surfaced 2026-05-20 (re-exported from
261+ // `simd_avx2` via `simd_avx512`'s re-export at line ~2260).
262+ I32x8 ,
263+ I64x4 ,
254264 I64x8 ,
255265 I8x32 ,
256266 I8x64 ,
267+ U16x16 ,
257268 U16x32 ,
258269 U32x16 ,
270+ U32x8 ,
271+ U64x4 ,
259272 U64x8 ,
260273 U8x64 ,
261274} ;
@@ -302,8 +315,9 @@ pub use crate::simd_avx512::{f32x8, f64x4, i16x16, i8x32, F32x8, F64x4, I16x16,
302315 not( feature = "nightly-simd" )
303316) ) ]
304317pub use crate :: simd_avx2:: {
305- f32x16, f64x8, i16x32, i32x16, i64x8, i8x64, u32x16, u64x8, u8x64, F32Mask16 , F32x16 , F64Mask8 , F64x8 , I16x32 ,
306- I32x16 , I64x8 , I8x64 , U16x32 , U32x16 , U64x8 , U8x64 ,
318+ f32x16, f64x8, i16x32, i32x16, i32x8, i64x4, i64x8, i8x64, u16x16, u32x16, u32x8, u64x4, u64x8, u8x64, F32Mask16 ,
319+ F32x16 , F64Mask8 , F64x8 , I16x32 , I32x16 , I32x8 , I64x4 , I64x8 , I8x64 , U16x16 , U16x32 , U32x16 , U32x8 , U64x4 , U64x8 ,
320+ U8x64 ,
307321} ;
308322
309323// U8x32 — native AVX2 byte width (one __m256i = 32 bytes). Available on
@@ -335,7 +349,8 @@ pub(crate) mod scalar;
335349pub use crate :: simd_neon:: aarch64_simd:: { f32x16, f64x8, F32Mask16 , F32x16 , F64Mask8 , F64x8 } ;
336350#[ cfg( all( target_arch = "aarch64" , not( feature = "nightly-simd" ) ) ) ]
337351pub use scalar:: {
338- f32x8, f64x4, i32x16, i64x8, u32x16, u64x8, u8x64, F32x8 , F64x4 , I32x16 , I64x8 , U16x32 , U32x16 , U64x8 , U8x64 ,
352+ f32x8, f64x4, i32x16, i32x8, i64x4, i64x8, u16x16, u32x16, u32x8, u64x4, u64x8, u8x64, F32x8 , F64x4 , I32x16 , I32x8 ,
353+ I64x4 , I64x8 , U16x16 , U16x32 , U32x16 , U32x8 , U64x4 , U64x8 , U8x64 ,
339354} ;
340355
341356// Other non-x86 targets (wasm, riscv, etc.): full scalar fallback.
@@ -345,8 +360,9 @@ pub use scalar::{
345360 not( feature = "nightly-simd" )
346361) ) ]
347362pub use scalar:: {
348- f32x16, f32x8, f64x4, f64x8, i16x16, i16x32, i32x16, i64x8, i8x32, i8x64, u32x16, u64x8, u8x64, F32Mask16 , F32x16 ,
349- F32x8 , F64Mask8 , F64x4 , F64x8 , I16x16 , I16x32 , I32x16 , I64x8 , I8x32 , I8x64 , U16x32 , U32x16 , U64x8 , U8x64 ,
363+ f32x16, f32x8, f64x4, f64x8, i16x16, i16x32, i32x16, i32x8, i64x4, i64x8, i8x32, i8x64, u16x16, u32x16, u32x8,
364+ u64x4, u64x8, u8x64, F32Mask16 , F32x16 , F32x8 , F64Mask8 , F64x4 , F64x8 , I16x16 , I16x32 , I32x16 , I32x8 , I64x4 , I64x8 ,
365+ I8x32 , I8x64 , U16x16 , U16x32 , U32x16 , U32x8 , U64x4 , U64x8 , U8x64 ,
350366} ;
351367
352368// Scalar BF16 conversion — always available on all platforms
0 commit comments