diff --git a/library/stdarch/crates/core_arch/src/x86/avx512f.rs b/library/stdarch/crates/core_arch/src/x86/avx512f.rs index a7ce04b1df7..8671c0094b3 100644 --- a/library/stdarch/crates/core_arch/src/x86/avx512f.rs +++ b/library/stdarch/crates/core_arch/src/x86/avx512f.rs @@ -16515,7 +16515,10 @@ pub fn _mm512_setr_epi64( #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] #[cfg_attr(test, assert_instr(vgatherdpd, SCALE = 1))] #[rustc_legacy_const_generics(2)] -pub unsafe fn _mm512_i32gather_pd(offsets: __m256i, slice: *const u8) -> __m512d { +pub unsafe fn _mm512_i32gather_pd( + offsets: __m256i, + slice: *const f64, +) -> __m512d { static_assert_imm8_scale!(SCALE); let zero = f64x8::ZERO; let neg_one = -1; @@ -16537,7 +16540,7 @@ pub unsafe fn _mm512_mask_i32gather_pd( src: __m512d, mask: __mmask8, offsets: __m256i, - slice: *const u8, + slice: *const f64, ) -> __m512d { static_assert_imm8_scale!(SCALE); let src = src.as_f64x8(); @@ -16555,7 +16558,10 @@ pub unsafe fn _mm512_mask_i32gather_pd( #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] #[cfg_attr(test, assert_instr(vgatherqpd, SCALE = 1))] #[rustc_legacy_const_generics(2)] -pub unsafe fn _mm512_i64gather_pd(offsets: __m512i, slice: *const u8) -> __m512d { +pub unsafe fn _mm512_i64gather_pd( + offsets: __m512i, + slice: *const f64, +) -> __m512d { static_assert_imm8_scale!(SCALE); let zero = f64x8::ZERO; let neg_one = -1; @@ -16577,7 +16583,7 @@ pub unsafe fn _mm512_mask_i64gather_pd( src: __m512d, mask: __mmask8, offsets: __m512i, - slice: *const u8, + slice: *const f64, ) -> __m512d { static_assert_imm8_scale!(SCALE); let src = src.as_f64x8(); @@ -16595,7 +16601,7 @@ pub unsafe fn _mm512_mask_i64gather_pd( #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] #[cfg_attr(test, assert_instr(vgatherqps, SCALE = 1))] #[rustc_legacy_const_generics(2)] -pub unsafe fn _mm512_i64gather_ps(offsets: __m512i, slice: *const u8) -> __m256 { +pub unsafe fn _mm512_i64gather_ps(offsets: __m512i, slice: *const f32) -> __m256 { static_assert_imm8_scale!(SCALE); let zero = f32x8::ZERO; let neg_one = -1; @@ -16617,7 +16623,7 @@ pub unsafe fn _mm512_mask_i64gather_ps( src: __m256, mask: __mmask8, offsets: __m512i, - slice: *const u8, + slice: *const f32, ) -> __m256 { static_assert_imm8_scale!(SCALE); let src = src.as_f32x8(); @@ -16635,7 +16641,7 @@ pub unsafe fn _mm512_mask_i64gather_ps( #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] #[cfg_attr(test, assert_instr(vgatherdps, SCALE = 1))] #[rustc_legacy_const_generics(2)] -pub unsafe fn _mm512_i32gather_ps(offsets: __m512i, slice: *const u8) -> __m512 { +pub unsafe fn _mm512_i32gather_ps(offsets: __m512i, slice: *const f32) -> __m512 { static_assert_imm8_scale!(SCALE); let zero = f32x16::ZERO; let neg_one = -1; @@ -16657,7 +16663,7 @@ pub unsafe fn _mm512_mask_i32gather_ps( src: __m512, mask: __mmask16, offsets: __m512i, - slice: *const u8, + slice: *const f32, ) -> __m512 { static_assert_imm8_scale!(SCALE); let src = src.as_f32x16(); @@ -16677,7 +16683,7 @@ pub unsafe fn _mm512_mask_i32gather_ps( #[rustc_legacy_const_generics(2)] pub unsafe fn _mm512_i32gather_epi32( offsets: __m512i, - slice: *const u8, + slice: *const i32, ) -> __m512i { static_assert_imm8_scale!(SCALE); let zero = i32x16::ZERO; @@ -16700,7 +16706,7 @@ pub unsafe fn _mm512_mask_i32gather_epi32( src: __m512i, mask: __mmask16, offsets: __m512i, - slice: *const u8, + slice: *const i32, ) -> __m512i { static_assert_imm8_scale!(SCALE); let src = src.as_i32x16(); @@ -16721,7 +16727,7 @@ pub unsafe fn _mm512_mask_i32gather_epi32( #[rustc_legacy_const_generics(2)] pub unsafe fn _mm512_i32gather_epi64( offsets: __m256i, - slice: *const u8, + slice: *const i64, ) -> __m512i { static_assert_imm8_scale!(SCALE); let zero = i64x8::ZERO; @@ -16744,7 +16750,7 @@ pub unsafe fn _mm512_mask_i32gather_epi64( src: __m512i, mask: __mmask8, offsets: __m256i, - slice: *const u8, + slice: *const i64, ) -> __m512i { static_assert_imm8_scale!(SCALE); let src = src.as_i64x8(); @@ -16765,7 +16771,7 @@ pub unsafe fn _mm512_mask_i32gather_epi64( #[rustc_legacy_const_generics(2)] pub unsafe fn _mm512_i64gather_epi64( offsets: __m512i, - slice: *const u8, + slice: *const i64, ) -> __m512i { static_assert_imm8_scale!(SCALE); let zero = i64x8::ZERO; @@ -16788,7 +16794,7 @@ pub unsafe fn _mm512_mask_i64gather_epi64( src: __m512i, mask: __mmask8, offsets: __m512i, - slice: *const u8, + slice: *const i64, ) -> __m512i { static_assert_imm8_scale!(SCALE); let src = src.as_i64x8(); @@ -16809,7 +16815,7 @@ pub unsafe fn _mm512_mask_i64gather_epi64( #[rustc_legacy_const_generics(2)] pub unsafe fn _mm512_i64gather_epi32( offsets: __m512i, - slice: *const u8, + slice: *const i32, ) -> __m256i { static_assert_imm8_scale!(SCALE); let zeros = i32x8::ZERO; @@ -16832,7 +16838,7 @@ pub unsafe fn _mm512_mask_i64gather_epi32( src: __m256i, mask: __mmask8, offsets: __m512i, - slice: *const u8, + slice: *const i32, ) -> __m256i { static_assert_imm8_scale!(SCALE); let src = src.as_i32x8(); @@ -16852,7 +16858,7 @@ pub unsafe fn _mm512_mask_i64gather_epi32( #[cfg_attr(test, assert_instr(vscatterdpd, SCALE = 1))] #[rustc_legacy_const_generics(3)] pub unsafe fn _mm512_i32scatter_pd( - slice: *mut u8, + slice: *mut f64, offsets: __m256i, src: __m512d, ) { @@ -16873,7 +16879,7 @@ pub unsafe fn _mm512_i32scatter_pd( #[cfg_attr(test, assert_instr(vscatterdpd, SCALE = 1))] #[rustc_legacy_const_generics(4)] pub unsafe fn _mm512_mask_i32scatter_pd( - slice: *mut u8, + slice: *mut f64, mask: __mmask8, offsets: __m256i, src: __m512d, @@ -16894,7 +16900,7 @@ pub unsafe fn _mm512_mask_i32scatter_pd( #[cfg_attr(test, assert_instr(vscatterqpd, SCALE = 1))] #[rustc_legacy_const_generics(3)] pub unsafe fn _mm512_i64scatter_pd( - slice: *mut u8, + slice: *mut f64, offsets: __m512i, src: __m512d, ) { @@ -16915,7 +16921,7 @@ pub unsafe fn _mm512_i64scatter_pd( #[cfg_attr(test, assert_instr(vscatterqpd, SCALE = 1))] #[rustc_legacy_const_generics(4)] pub unsafe fn _mm512_mask_i64scatter_pd( - slice: *mut u8, + slice: *mut f64, mask: __mmask8, offsets: __m512i, src: __m512d, @@ -16936,7 +16942,7 @@ pub unsafe fn _mm512_mask_i64scatter_pd( #[cfg_attr(test, assert_instr(vscatterdps, SCALE = 1))] #[rustc_legacy_const_generics(3)] pub unsafe fn _mm512_i32scatter_ps( - slice: *mut u8, + slice: *mut f32, offsets: __m512i, src: __m512, ) { @@ -16957,7 +16963,7 @@ pub unsafe fn _mm512_i32scatter_ps( #[cfg_attr(test, assert_instr(vscatterdps, SCALE = 1))] #[rustc_legacy_const_generics(4)] pub unsafe fn _mm512_mask_i32scatter_ps( - slice: *mut u8, + slice: *mut f32, mask: __mmask16, offsets: __m512i, src: __m512, @@ -16978,7 +16984,7 @@ pub unsafe fn _mm512_mask_i32scatter_ps( #[cfg_attr(test, assert_instr(vscatterqps, SCALE = 1))] #[rustc_legacy_const_generics(3)] pub unsafe fn _mm512_i64scatter_ps( - slice: *mut u8, + slice: *mut f32, offsets: __m512i, src: __m256, ) { @@ -16999,7 +17005,7 @@ pub unsafe fn _mm512_i64scatter_ps( #[cfg_attr(test, assert_instr(vscatterqps, SCALE = 1))] #[rustc_legacy_const_generics(4)] pub unsafe fn _mm512_mask_i64scatter_ps( - slice: *mut u8, + slice: *mut f32, mask: __mmask8, offsets: __m512i, src: __m256, @@ -17020,7 +17026,7 @@ pub unsafe fn _mm512_mask_i64scatter_ps( #[cfg_attr(test, assert_instr(vpscatterdq, SCALE = 1))] #[rustc_legacy_const_generics(3)] pub unsafe fn _mm512_i32scatter_epi64( - slice: *mut u8, + slice: *mut i64, offsets: __m256i, src: __m512i, ) { @@ -17041,7 +17047,7 @@ pub unsafe fn _mm512_i32scatter_epi64( #[cfg_attr(test, assert_instr(vpscatterdq, SCALE = 1))] #[rustc_legacy_const_generics(4)] pub unsafe fn _mm512_mask_i32scatter_epi64( - slice: *mut u8, + slice: *mut i64, mask: __mmask8, offsets: __m256i, src: __m512i, @@ -17063,7 +17069,7 @@ pub unsafe fn _mm512_mask_i32scatter_epi64( #[cfg_attr(test, assert_instr(vpscatterqq, SCALE = 1))] #[rustc_legacy_const_generics(3)] pub unsafe fn _mm512_i64scatter_epi64( - slice: *mut u8, + slice: *mut i64, offsets: __m512i, src: __m512i, ) { @@ -17084,7 +17090,7 @@ pub unsafe fn _mm512_i64scatter_epi64( #[cfg_attr(test, assert_instr(vpscatterqq, SCALE = 1))] #[rustc_legacy_const_generics(4)] pub unsafe fn _mm512_mask_i64scatter_epi64( - slice: *mut u8, + slice: *mut i64, mask: __mmask8, offsets: __m512i, src: __m512i, @@ -17106,7 +17112,7 @@ pub unsafe fn _mm512_mask_i64scatter_epi64( #[cfg_attr(test, assert_instr(vpscatterdd, SCALE = 1))] #[rustc_legacy_const_generics(3)] pub unsafe fn _mm512_i32scatter_epi32( - slice: *mut u8, + slice: *mut i32, offsets: __m512i, src: __m512i, ) { @@ -17127,7 +17133,7 @@ pub unsafe fn _mm512_i32scatter_epi32( #[cfg_attr(test, assert_instr(vpscatterdd, SCALE = 1))] #[rustc_legacy_const_generics(4)] pub unsafe fn _mm512_mask_i32scatter_epi32( - slice: *mut u8, + slice: *mut i32, mask: __mmask16, offsets: __m512i, src: __m512i, @@ -17149,7 +17155,7 @@ pub unsafe fn _mm512_mask_i32scatter_epi32( #[cfg_attr(test, assert_instr(vpscatterqd, SCALE = 1))] #[rustc_legacy_const_generics(3)] pub unsafe fn _mm512_i64scatter_epi32( - slice: *mut u8, + slice: *mut i32, offsets: __m512i, src: __m256i, ) { @@ -17170,7 +17176,7 @@ pub unsafe fn _mm512_i64scatter_epi32( #[cfg_attr(test, assert_instr(vpscatterqd, SCALE = 1))] #[rustc_legacy_const_generics(4)] pub unsafe fn _mm512_mask_i64scatter_epi32( - slice: *mut u8, + slice: *mut i32, mask: __mmask8, offsets: __m512i, src: __m256i, @@ -17194,9 +17200,9 @@ pub unsafe fn _mm512_mask_i64scatter_epi32( #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm512_i32logather_epi64( vindex: __m512i, - base_addr: *const u8, + base_addr: *const i64, ) -> __m512i { - _mm512_i32gather_epi64::(_mm512_castsi512_si256(vindex), base_addr as _) + _mm512_i32gather_epi64::(_mm512_castsi512_si256(vindex), base_addr) } /// Loads 8 64-bit integer elements from memory starting at location base_addr at packed 32-bit integer @@ -17213,9 +17219,9 @@ pub unsafe fn _mm512_mask_i32logather_epi64( src: __m512i, k: __mmask8, vindex: __m512i, - base_addr: *const u8, + base_addr: *const i64, ) -> __m512i { - _mm512_mask_i32gather_epi64::(src, k, _mm512_castsi512_si256(vindex), base_addr as _) + _mm512_mask_i32gather_epi64::(src, k, _mm512_castsi512_si256(vindex), base_addr) } /// Loads 8 double-precision (64-bit) floating-point elements from memory starting at location base_addr @@ -17229,9 +17235,9 @@ pub unsafe fn _mm512_mask_i32logather_epi64( #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm512_i32logather_pd( vindex: __m512i, - base_addr: *const u8, + base_addr: *const f64, ) -> __m512d { - _mm512_i32gather_pd::(_mm512_castsi512_si256(vindex), base_addr as _) + _mm512_i32gather_pd::(_mm512_castsi512_si256(vindex), base_addr) } /// Loads 8 double-precision (64-bit) floating-point elements from memory starting at location base_addr @@ -17248,9 +17254,9 @@ pub unsafe fn _mm512_mask_i32logather_pd( src: __m512d, k: __mmask8, vindex: __m512i, - base_addr: *const u8, + base_addr: *const f64, ) -> __m512d { - _mm512_mask_i32gather_pd::(src, k, _mm512_castsi512_si256(vindex), base_addr as _) + _mm512_mask_i32gather_pd::(src, k, _mm512_castsi512_si256(vindex), base_addr) } /// Stores 8 64-bit integer elements from a to memory starting at location base_addr at packed 32-bit integer @@ -17263,11 +17269,11 @@ pub unsafe fn _mm512_mask_i32logather_pd( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm512_i32loscatter_epi64( - base_addr: *mut u8, + base_addr: *mut i64, vindex: __m512i, a: __m512i, ) { - _mm512_i32scatter_epi64::(base_addr as _, _mm512_castsi512_si256(vindex), a) + _mm512_i32scatter_epi64::(base_addr, _mm512_castsi512_si256(vindex), a) } /// Stores 8 64-bit integer elements from a to memory starting at location base_addr at packed 32-bit integer @@ -17281,12 +17287,12 @@ pub unsafe fn _mm512_i32loscatter_epi64( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm512_mask_i32loscatter_epi64( - base_addr: *mut u8, + base_addr: *mut i64, k: __mmask8, vindex: __m512i, a: __m512i, ) { - _mm512_mask_i32scatter_epi64::(base_addr as _, k, _mm512_castsi512_si256(vindex), a) + _mm512_mask_i32scatter_epi64::(base_addr, k, _mm512_castsi512_si256(vindex), a) } /// Stores 8 double-precision (64-bit) floating-point elements from a to memory starting at location base_addr @@ -17299,11 +17305,11 @@ pub unsafe fn _mm512_mask_i32loscatter_epi64( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm512_i32loscatter_pd( - base_addr: *mut u8, + base_addr: *mut f64, vindex: __m512i, a: __m512d, ) { - _mm512_i32scatter_pd::(base_addr as _, _mm512_castsi512_si256(vindex), a) + _mm512_i32scatter_pd::(base_addr, _mm512_castsi512_si256(vindex), a) } /// Stores 8 double-precision (64-bit) floating-point elements from a to memory starting at location base_addr @@ -17317,12 +17323,12 @@ pub unsafe fn _mm512_i32loscatter_pd( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm512_mask_i32loscatter_pd( - base_addr: *mut u8, + base_addr: *mut f64, k: __mmask8, vindex: __m512i, a: __m512d, ) { - _mm512_mask_i32scatter_pd::(base_addr as _, k, _mm512_castsi512_si256(vindex), a) + _mm512_mask_i32scatter_pd::(base_addr, k, _mm512_castsi512_si256(vindex), a) } /// Stores 8 32-bit integer elements from a to memory starting at location base_addr at packed 32-bit integer @@ -17335,7 +17341,7 @@ pub unsafe fn _mm512_mask_i32loscatter_pd( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_i32scatter_epi32( - base_addr: *mut u8, + base_addr: *mut i32, vindex: __m256i, a: __m256i, ) { @@ -17354,7 +17360,7 @@ pub unsafe fn _mm256_i32scatter_epi32( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_mask_i32scatter_epi32( - base_addr: *mut u8, + base_addr: *mut i32, k: __mmask8, vindex: __m256i, a: __m256i, @@ -17372,7 +17378,7 @@ pub unsafe fn _mm256_mask_i32scatter_epi32( #[cfg_attr(test, assert_instr(vpscatterdq, SCALE = 1))] #[rustc_legacy_const_generics(3)] pub unsafe fn _mm256_i32scatter_epi64( - slice: *mut u8, + slice: *mut i64, offsets: __m128i, src: __m256i, ) { @@ -17394,7 +17400,7 @@ pub unsafe fn _mm256_i32scatter_epi64( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_mask_i32scatter_epi64( - base_addr: *mut u8, + base_addr: *mut i64, k: __mmask8, vindex: __m128i, a: __m256i, @@ -17413,7 +17419,7 @@ pub unsafe fn _mm256_mask_i32scatter_epi64( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_i32scatter_pd( - base_addr: *mut u8, + base_addr: *mut f64, vindex: __m128i, a: __m256d, ) { @@ -17432,7 +17438,7 @@ pub unsafe fn _mm256_i32scatter_pd( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_mask_i32scatter_pd( - base_addr: *mut u8, + base_addr: *mut f64, k: __mmask8, vindex: __m128i, a: __m256d, @@ -17451,7 +17457,7 @@ pub unsafe fn _mm256_mask_i32scatter_pd( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_i32scatter_ps( - base_addr: *mut u8, + base_addr: *mut f32, vindex: __m256i, a: __m256, ) { @@ -17470,7 +17476,7 @@ pub unsafe fn _mm256_i32scatter_ps( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_mask_i32scatter_ps( - base_addr: *mut u8, + base_addr: *mut f32, k: __mmask8, vindex: __m256i, a: __m256, @@ -17489,7 +17495,7 @@ pub unsafe fn _mm256_mask_i32scatter_ps( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_i64scatter_epi32( - base_addr: *mut u8, + base_addr: *mut i32, vindex: __m256i, a: __m128i, ) { @@ -17508,7 +17514,7 @@ pub unsafe fn _mm256_i64scatter_epi32( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_mask_i64scatter_epi32( - base_addr: *mut u8, + base_addr: *mut i32, k: __mmask8, vindex: __m256i, a: __m128i, @@ -17527,7 +17533,7 @@ pub unsafe fn _mm256_mask_i64scatter_epi32( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_i64scatter_epi64( - base_addr: *mut u8, + base_addr: *mut i64, vindex: __m256i, a: __m256i, ) { @@ -17546,7 +17552,7 @@ pub unsafe fn _mm256_i64scatter_epi64( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_mask_i64scatter_epi64( - base_addr: *mut u8, + base_addr: *mut i64, k: __mmask8, vindex: __m256i, a: __m256i, @@ -17565,7 +17571,7 @@ pub unsafe fn _mm256_mask_i64scatter_epi64( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_i64scatter_pd( - base_addr: *mut u8, + base_addr: *mut f64, vindex: __m256i, a: __m256d, ) { @@ -17584,7 +17590,7 @@ pub unsafe fn _mm256_i64scatter_pd( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_mask_i64scatter_pd( - base_addr: *mut u8, + base_addr: *mut f64, k: __mmask8, vindex: __m256i, a: __m256d, @@ -17603,7 +17609,7 @@ pub unsafe fn _mm256_mask_i64scatter_pd( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_i64scatter_ps( - base_addr: *mut u8, + base_addr: *mut f32, vindex: __m256i, a: __m128, ) { @@ -17622,7 +17628,7 @@ pub unsafe fn _mm256_i64scatter_ps( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm256_mask_i64scatter_ps( - base_addr: *mut u8, + base_addr: *mut f32, k: __mmask8, vindex: __m256i, a: __m128, @@ -17645,7 +17651,7 @@ pub unsafe fn _mm256_mmask_i32gather_epi32( src: __m256i, k: __mmask8, vindex: __m256i, - base_addr: *const u8, + base_addr: *const i32, ) -> __m256i { static_assert_imm8_scale!(SCALE); transmute(vpgatherdd_256( @@ -17671,7 +17677,7 @@ pub unsafe fn _mm256_mmask_i32gather_epi64( src: __m256i, k: __mmask8, vindex: __m128i, - base_addr: *const u8, + base_addr: *const i64, ) -> __m256i { static_assert_imm8_scale!(SCALE); transmute(vpgatherdq_256( @@ -17697,7 +17703,7 @@ pub unsafe fn _mm256_mmask_i32gather_pd( src: __m256d, k: __mmask8, vindex: __m128i, - base_addr: *const u8, + base_addr: *const f64, ) -> __m256d { static_assert_imm8_scale!(SCALE); transmute(vgatherdpd_256( @@ -17723,7 +17729,7 @@ pub unsafe fn _mm256_mmask_i32gather_ps( src: __m256, k: __mmask8, vindex: __m256i, - base_addr: *const u8, + base_addr: *const f32, ) -> __m256 { static_assert_imm8_scale!(SCALE); transmute(vgatherdps_256( @@ -17749,7 +17755,7 @@ pub unsafe fn _mm256_mmask_i64gather_epi32( src: __m128i, k: __mmask8, vindex: __m256i, - base_addr: *const u8, + base_addr: *const i32, ) -> __m128i { static_assert_imm8_scale!(SCALE); transmute(vpgatherqd_256( @@ -17775,7 +17781,7 @@ pub unsafe fn _mm256_mmask_i64gather_epi64( src: __m256i, k: __mmask8, vindex: __m256i, - base_addr: *const u8, + base_addr: *const i64, ) -> __m256i { static_assert_imm8_scale!(SCALE); transmute(vpgatherqq_256( @@ -17801,7 +17807,7 @@ pub unsafe fn _mm256_mmask_i64gather_pd( src: __m256d, k: __mmask8, vindex: __m256i, - base_addr: *const u8, + base_addr: *const f64, ) -> __m256d { static_assert_imm8_scale!(SCALE); transmute(vgatherqpd_256( @@ -17827,7 +17833,7 @@ pub unsafe fn _mm256_mmask_i64gather_ps( src: __m128, k: __mmask8, vindex: __m256i, - base_addr: *const u8, + base_addr: *const f32, ) -> __m128 { static_assert_imm8_scale!(SCALE); transmute(vgatherqps_256( @@ -17849,7 +17855,7 @@ pub unsafe fn _mm256_mmask_i64gather_ps( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_i32scatter_epi32( - base_addr: *mut u8, + base_addr: *mut i32, vindex: __m128i, a: __m128i, ) { @@ -17868,7 +17874,7 @@ pub unsafe fn _mm_i32scatter_epi32( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_mask_i32scatter_epi32( - base_addr: *mut u8, + base_addr: *mut i32, k: __mmask8, vindex: __m128i, a: __m128i, @@ -17887,7 +17893,7 @@ pub unsafe fn _mm_mask_i32scatter_epi32( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_i32scatter_epi64( - base_addr: *mut u8, + base_addr: *mut i64, vindex: __m128i, a: __m128i, ) { @@ -17906,7 +17912,7 @@ pub unsafe fn _mm_i32scatter_epi64( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_mask_i32scatter_epi64( - base_addr: *mut u8, + base_addr: *mut i64, k: __mmask8, vindex: __m128i, a: __m128i, @@ -17924,7 +17930,11 @@ pub unsafe fn _mm_mask_i32scatter_epi64( #[cfg_attr(test, assert_instr(vscatterdpd, SCALE = 1))] #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] -pub unsafe fn _mm_i32scatter_pd(base_addr: *mut u8, vindex: __m128i, a: __m128d) { +pub unsafe fn _mm_i32scatter_pd( + base_addr: *mut f64, + vindex: __m128i, + a: __m128d, +) { static_assert_imm8_scale!(SCALE); vscatterdpd_128(base_addr as _, 0xff, vindex.as_i32x4(), a.as_f64x2(), SCALE) } @@ -17940,7 +17950,7 @@ pub unsafe fn _mm_i32scatter_pd(base_addr: *mut u8, vindex: __ #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_mask_i32scatter_pd( - base_addr: *mut u8, + base_addr: *mut f64, k: __mmask8, vindex: __m128i, a: __m128d, @@ -17958,7 +17968,7 @@ pub unsafe fn _mm_mask_i32scatter_pd( #[cfg_attr(test, assert_instr(vscatterdps, SCALE = 1))] #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] -pub unsafe fn _mm_i32scatter_ps(base_addr: *mut u8, vindex: __m128i, a: __m128) { +pub unsafe fn _mm_i32scatter_ps(base_addr: *mut f32, vindex: __m128i, a: __m128) { static_assert_imm8_scale!(SCALE); vscatterdps_128(base_addr as _, 0xff, vindex.as_i32x4(), a.as_f32x4(), SCALE) } @@ -17974,7 +17984,7 @@ pub unsafe fn _mm_i32scatter_ps(base_addr: *mut u8, vindex: __ #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_mask_i32scatter_ps( - base_addr: *mut u8, + base_addr: *mut f32, k: __mmask8, vindex: __m128i, a: __m128, @@ -17993,7 +18003,7 @@ pub unsafe fn _mm_mask_i32scatter_ps( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_i64scatter_epi32( - base_addr: *mut u8, + base_addr: *mut i32, vindex: __m128i, a: __m128i, ) { @@ -18012,7 +18022,7 @@ pub unsafe fn _mm_i64scatter_epi32( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_mask_i64scatter_epi32( - base_addr: *mut u8, + base_addr: *mut i32, k: __mmask8, vindex: __m128i, a: __m128i, @@ -18031,7 +18041,7 @@ pub unsafe fn _mm_mask_i64scatter_epi32( #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_i64scatter_epi64( - base_addr: *mut u8, + base_addr: *mut i64, vindex: __m128i, a: __m128i, ) { @@ -18050,7 +18060,7 @@ pub unsafe fn _mm_i64scatter_epi64( #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_mask_i64scatter_epi64( - base_addr: *mut u8, + base_addr: *mut i64, k: __mmask8, vindex: __m128i, a: __m128i, @@ -18068,7 +18078,11 @@ pub unsafe fn _mm_mask_i64scatter_epi64( #[cfg_attr(test, assert_instr(vscatterqpd, SCALE = 1))] #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] -pub unsafe fn _mm_i64scatter_pd(base_addr: *mut u8, vindex: __m128i, a: __m128d) { +pub unsafe fn _mm_i64scatter_pd( + base_addr: *mut f64, + vindex: __m128i, + a: __m128d, +) { static_assert_imm8_scale!(SCALE); vscatterqpd_128(base_addr as _, 0xff, vindex.as_i64x2(), a.as_f64x2(), SCALE) } @@ -18084,7 +18098,7 @@ pub unsafe fn _mm_i64scatter_pd(base_addr: *mut u8, vindex: __ #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_mask_i64scatter_pd( - base_addr: *mut u8, + base_addr: *mut f64, k: __mmask8, vindex: __m128i, a: __m128d, @@ -18102,7 +18116,7 @@ pub unsafe fn _mm_mask_i64scatter_pd( #[cfg_attr(test, assert_instr(vscatterqps, SCALE = 1))] #[rustc_legacy_const_generics(3)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] -pub unsafe fn _mm_i64scatter_ps(base_addr: *mut u8, vindex: __m128i, a: __m128) { +pub unsafe fn _mm_i64scatter_ps(base_addr: *mut f32, vindex: __m128i, a: __m128) { static_assert_imm8_scale!(SCALE); vscatterqps_128(base_addr as _, 0xff, vindex.as_i64x2(), a.as_f32x4(), SCALE) } @@ -18117,7 +18131,7 @@ pub unsafe fn _mm_i64scatter_ps(base_addr: *mut u8, vindex: __ #[rustc_legacy_const_generics(4)] #[unstable(feature = "stdarch_x86_avx512", issue = "111137")] pub unsafe fn _mm_mask_i64scatter_ps( - base_addr: *mut u8, + base_addr: *mut f32, k: __mmask8, vindex: __m128i, a: __m128, @@ -18140,7 +18154,7 @@ pub unsafe fn _mm_mmask_i32gather_epi32( src: __m128i, k: __mmask8, vindex: __m128i, - base_addr: *const u8, + base_addr: *const i32, ) -> __m128i { static_assert_imm8_scale!(SCALE); transmute(vpgatherdd_128( @@ -18166,7 +18180,7 @@ pub unsafe fn _mm_mmask_i32gather_epi64( src: __m128i, k: __mmask8, vindex: __m128i, - base_addr: *const u8, + base_addr: *const i64, ) -> __m128i { static_assert_imm8_scale!(SCALE); transmute(vpgatherdq_128( @@ -18192,7 +18206,7 @@ pub unsafe fn _mm_mmask_i32gather_pd( src: __m128d, k: __mmask8, vindex: __m128i, - base_addr: *const u8, + base_addr: *const f64, ) -> __m128d { static_assert_imm8_scale!(SCALE); transmute(vgatherdpd_128( @@ -18218,7 +18232,7 @@ pub unsafe fn _mm_mmask_i32gather_ps( src: __m128, k: __mmask8, vindex: __m128i, - base_addr: *const u8, + base_addr: *const f32, ) -> __m128 { static_assert_imm8_scale!(SCALE); transmute(vgatherdps_128( @@ -18244,7 +18258,7 @@ pub unsafe fn _mm_mmask_i64gather_epi32( src: __m128i, k: __mmask8, vindex: __m128i, - base_addr: *const u8, + base_addr: *const i32, ) -> __m128i { static_assert_imm8_scale!(SCALE); transmute(vpgatherqd_128( @@ -18270,7 +18284,7 @@ pub unsafe fn _mm_mmask_i64gather_epi64( src: __m128i, k: __mmask8, vindex: __m128i, - base_addr: *const u8, + base_addr: *const i64, ) -> __m128i { static_assert_imm8_scale!(SCALE); transmute(vpgatherqq_128( @@ -18296,7 +18310,7 @@ pub unsafe fn _mm_mmask_i64gather_pd( src: __m128d, k: __mmask8, vindex: __m128i, - base_addr: *const u8, + base_addr: *const f64, ) -> __m128d { static_assert_imm8_scale!(SCALE); transmute(vgatherqpd_128( @@ -18322,7 +18336,7 @@ pub unsafe fn _mm_mmask_i64gather_ps( src: __m128, k: __mmask8, vindex: __m128i, - base_addr: *const u8, + base_addr: *const f32, ) -> __m128 { static_assert_imm8_scale!(SCALE); transmute(vgatherqps_128( @@ -49637,7 +49651,7 @@ mod tests { #[rustfmt::skip] let index = _mm512_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112, 120, 128, 136, 144, 152, 160, 168, 176); - let r = _mm512_i32gather_ps::<4>(index, arr.as_ptr() as *const u8); + let r = _mm512_i32gather_ps::<4>(index, arr.as_ptr()); #[rustfmt::skip] assert_eq_m512(r, _mm512_setr_ps(0., 16., 32., 48., 64., 80., 96., 112., 120., 128., 136., 144., 152., 160., 168., 176.)); @@ -49652,7 +49666,7 @@ mod tests { let index = _mm512_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112, 120, 128, 136, 144, 152, 160, 168, 176); // A multiplier of 4 is word-addressing - let r = _mm512_mask_i32gather_ps::<4>(src, mask, index, arr.as_ptr() as *const u8); + let r = _mm512_mask_i32gather_ps::<4>(src, mask, index, arr.as_ptr()); #[rustfmt::skip] assert_eq_m512(r, _mm512_setr_ps(2., 16., 2., 48., 2., 80., 2., 112., 2., 128., 2., 144., 2., 160., 2., 176.)); @@ -49665,7 +49679,7 @@ mod tests { #[rustfmt::skip] let index = _mm512_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112, 120, 128, 136, 144, 152, 160, 168, 176); - let r = _mm512_i32gather_epi32::<4>(index, arr.as_ptr() as *const u8); + let r = _mm512_i32gather_epi32::<4>(index, arr.as_ptr()); #[rustfmt::skip] assert_eq_m512i(r, _mm512_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112, 120, 128, 136, 144, 152, 160, 168, 176)); @@ -49680,7 +49694,7 @@ mod tests { 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, ); // A multiplier of 4 is word-addressing - let r = _mm512_mask_i32gather_epi32::<4>(src, mask, index, arr.as_ptr() as *const u8); + let r = _mm512_mask_i32gather_epi32::<4>(src, mask, index, arr.as_ptr()); assert_eq_m512i( r, _mm512_setr_epi32(2, 16, 2, 48, 2, 80, 2, 112, 2, 144, 2, 176, 2, 208, 2, 240), @@ -49697,7 +49711,7 @@ mod tests { 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., ); // A multiplier of 4 is word-addressing - _mm512_i32scatter_ps::<4>(arr.as_mut_ptr() as *mut u8, index, src); + _mm512_i32scatter_ps::<4>(arr.as_mut_ptr(), index, src); let mut expected = [0f32; 256]; for i in 0..16 { expected[i * 16] = (i + 1) as f32; @@ -49716,7 +49730,7 @@ mod tests { 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., ); // A multiplier of 4 is word-addressing - _mm512_mask_i32scatter_ps::<4>(arr.as_mut_ptr() as *mut u8, mask, index, src); + _mm512_mask_i32scatter_ps::<4>(arr.as_mut_ptr(), mask, index, src); let mut expected = [0f32; 256]; for i in 0..8 { expected[i * 32 + 16] = 2. * (i + 1) as f32; @@ -49733,7 +49747,7 @@ mod tests { 128, 144, 160, 176, 192, 208, 224, 240); let src = _mm512_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); // A multiplier of 4 is word-addressing - _mm512_i32scatter_epi32::<4>(arr.as_mut_ptr() as *mut u8, index, src); + _mm512_i32scatter_epi32::<4>(arr.as_mut_ptr(), index, src); let mut expected = [0i32; 256]; for i in 0..16 { expected[i * 16] = (i + 1) as i32; @@ -49750,7 +49764,7 @@ mod tests { 128, 144, 160, 176, 192, 208, 224, 240); let src = _mm512_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); // A multiplier of 4 is word-addressing - _mm512_mask_i32scatter_epi32::<4>(arr.as_mut_ptr() as *mut u8, mask, index, src); + _mm512_mask_i32scatter_epi32::<4>(arr.as_mut_ptr(), mask, index, src); let mut expected = [0i32; 256]; for i in 0..8 { expected[i * 32 + 16] = 2 * (i + 1) as i32; diff --git a/library/stdarch/crates/core_arch/src/x86_64/avx512f.rs b/library/stdarch/crates/core_arch/src/x86_64/avx512f.rs index d0d73488c19..c6f84fd9650 100644 --- a/library/stdarch/crates/core_arch/src/x86_64/avx512f.rs +++ b/library/stdarch/crates/core_arch/src/x86_64/avx512f.rs @@ -7441,7 +7441,7 @@ mod tests { let arr: [f64; 128] = core::array::from_fn(|i| i as f64); // A multiplier of 8 is word-addressing let index = _mm256_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112); - let r = _mm512_i32gather_pd::<8>(index, arr.as_ptr() as *const u8); + let r = _mm512_i32gather_pd::<8>(index, arr.as_ptr()); assert_eq_m512d(r, _mm512_setr_pd(0., 16., 32., 48., 64., 80., 96., 112.)); } @@ -7452,7 +7452,7 @@ mod tests { let mask = 0b10101010; let index = _mm256_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112); // A multiplier of 8 is word-addressing - let r = _mm512_mask_i32gather_pd::<8>(src, mask, index, arr.as_ptr() as *const u8); + let r = _mm512_mask_i32gather_pd::<8>(src, mask, index, arr.as_ptr()); assert_eq_m512d(r, _mm512_setr_pd(2., 16., 2., 48., 2., 80., 2., 112.)); } @@ -7461,7 +7461,7 @@ mod tests { let arr: [f64; 128] = core::array::from_fn(|i| i as f64); // A multiplier of 8 is word-addressing let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); - let r = _mm512_i64gather_pd::<8>(index, arr.as_ptr() as *const u8); + let r = _mm512_i64gather_pd::<8>(index, arr.as_ptr()); assert_eq_m512d(r, _mm512_setr_pd(0., 16., 32., 48., 64., 80., 96., 112.)); } @@ -7472,7 +7472,7 @@ mod tests { let mask = 0b10101010; let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); // A multiplier of 8 is word-addressing - let r = _mm512_mask_i64gather_pd::<8>(src, mask, index, arr.as_ptr() as *const u8); + let r = _mm512_mask_i64gather_pd::<8>(src, mask, index, arr.as_ptr()); assert_eq_m512d(r, _mm512_setr_pd(2., 16., 2., 48., 2., 80., 2., 112.)); } @@ -7482,7 +7482,7 @@ mod tests { // A multiplier of 4 is word-addressing #[rustfmt::skip] let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); - let r = _mm512_i64gather_ps::<4>(index, arr.as_ptr() as *const u8); + let r = _mm512_i64gather_ps::<4>(index, arr.as_ptr()); assert_eq_m256(r, _mm256_setr_ps(0., 16., 32., 48., 64., 80., 96., 112.)); } @@ -7494,7 +7494,7 @@ mod tests { #[rustfmt::skip] let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); // A multiplier of 4 is word-addressing - let r = _mm512_mask_i64gather_ps::<4>(src, mask, index, arr.as_ptr() as *const u8); + let r = _mm512_mask_i64gather_ps::<4>(src, mask, index, arr.as_ptr()); assert_eq_m256(r, _mm256_setr_ps(2., 16., 2., 48., 2., 80., 2., 112.)); } @@ -7506,7 +7506,7 @@ mod tests { } // A multiplier of 8 is word-addressing let index = _mm256_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112); - let r = _mm512_i32gather_epi64::<8>(index, arr.as_ptr() as *const u8); + let r = _mm512_i32gather_epi64::<8>(index, arr.as_ptr()); assert_eq_m512i(r, _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112)); } @@ -7520,7 +7520,7 @@ mod tests { let mask = 0b10101010; let index = _mm256_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112); // A multiplier of 8 is word-addressing - let r = _mm512_mask_i32gather_epi64::<8>(src, mask, index, arr.as_ptr() as *const u8); + let r = _mm512_mask_i32gather_epi64::<8>(src, mask, index, arr.as_ptr()); assert_eq_m512i(r, _mm512_setr_epi64(2, 16, 2, 48, 2, 80, 2, 112)); } @@ -7532,7 +7532,7 @@ mod tests { } // A multiplier of 8 is word-addressing let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); - let r = _mm512_i64gather_epi64::<8>(index, arr.as_ptr() as *const u8); + let r = _mm512_i64gather_epi64::<8>(index, arr.as_ptr()); assert_eq_m512i(r, _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112)); } @@ -7546,7 +7546,7 @@ mod tests { let mask = 0b10101010; let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); // A multiplier of 8 is word-addressing - let r = _mm512_mask_i64gather_epi64::<8>(src, mask, index, arr.as_ptr() as *const u8); + let r = _mm512_mask_i64gather_epi64::<8>(src, mask, index, arr.as_ptr()); assert_eq_m512i(r, _mm512_setr_epi64(2, 16, 2, 48, 2, 80, 2, 112)); } @@ -7558,7 +7558,7 @@ mod tests { } // A multiplier of 8 is word-addressing let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); - let r = _mm512_i64gather_epi32::<8>(index, arr.as_ptr() as *const u8); + let r = _mm512_i64gather_epi32::<8>(index, arr.as_ptr() as *const i32); assert_eq_m256i(r, _mm256_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112)); } @@ -7572,7 +7572,7 @@ mod tests { let mask = 0b10101010; let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); // A multiplier of 8 is word-addressing - let r = _mm512_mask_i64gather_epi32::<8>(src, mask, index, arr.as_ptr() as *const u8); + let r = _mm512_mask_i64gather_epi32::<8>(src, mask, index, arr.as_ptr() as *const i32); assert_eq_m256i(r, _mm256_setr_epi32(2, 16, 2, 48, 2, 80, 2, 112)); } @@ -7582,7 +7582,7 @@ mod tests { let index = _mm256_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm512_setr_pd(1., 2., 3., 4., 5., 6., 7., 8.); // A multiplier of 8 is word-addressing - _mm512_i32scatter_pd::<8>(arr.as_mut_ptr() as *mut u8, index, src); + _mm512_i32scatter_pd::<8>(arr.as_mut_ptr(), index, src); let mut expected = [0f64; 128]; for i in 0..8 { expected[i * 16] = (i + 1) as f64; @@ -7597,7 +7597,7 @@ mod tests { let index = _mm256_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm512_setr_pd(1., 2., 3., 4., 5., 6., 7., 8.); // A multiplier of 8 is word-addressing - _mm512_mask_i32scatter_pd::<8>(arr.as_mut_ptr() as *mut u8, mask, index, src); + _mm512_mask_i32scatter_pd::<8>(arr.as_mut_ptr(), mask, index, src); let mut expected = [0f64; 128]; for i in 0..4 { expected[i * 32 + 16] = 2. * (i + 1) as f64; @@ -7611,7 +7611,7 @@ mod tests { let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm512_setr_pd(1., 2., 3., 4., 5., 6., 7., 8.); // A multiplier of 8 is word-addressing - _mm512_i64scatter_pd::<8>(arr.as_mut_ptr() as *mut u8, index, src); + _mm512_i64scatter_pd::<8>(arr.as_mut_ptr(), index, src); let mut expected = [0f64; 128]; for i in 0..8 { expected[i * 16] = (i + 1) as f64; @@ -7626,7 +7626,7 @@ mod tests { let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm512_setr_pd(1., 2., 3., 4., 5., 6., 7., 8.); // A multiplier of 8 is word-addressing - _mm512_mask_i64scatter_pd::<8>(arr.as_mut_ptr() as *mut u8, mask, index, src); + _mm512_mask_i64scatter_pd::<8>(arr.as_mut_ptr(), mask, index, src); let mut expected = [0f64; 128]; for i in 0..4 { expected[i * 32 + 16] = 2. * (i + 1) as f64; @@ -7640,7 +7640,7 @@ mod tests { let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); // A multiplier of 4 is word-addressing - _mm512_i64scatter_ps::<4>(arr.as_mut_ptr() as *mut u8, index, src); + _mm512_i64scatter_ps::<4>(arr.as_mut_ptr(), index, src); let mut expected = [0f32; 128]; for i in 0..8 { expected[i * 16] = (i + 1) as f32; @@ -7655,7 +7655,7 @@ mod tests { let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm256_setr_ps(1., 2., 3., 4., 5., 6., 7., 8.); // A multiplier of 4 is word-addressing - _mm512_mask_i64scatter_ps::<4>(arr.as_mut_ptr() as *mut u8, mask, index, src); + _mm512_mask_i64scatter_ps::<4>(arr.as_mut_ptr(), mask, index, src); let mut expected = [0f32; 128]; for i in 0..4 { expected[i * 32 + 16] = 2. * (i + 1) as f32; @@ -7669,7 +7669,7 @@ mod tests { let index = _mm256_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm512_setr_epi64(1, 2, 3, 4, 5, 6, 7, 8); // A multiplier of 8 is word-addressing - _mm512_i32scatter_epi64::<8>(arr.as_mut_ptr() as *mut u8, index, src); + _mm512_i32scatter_epi64::<8>(arr.as_mut_ptr(), index, src); let mut expected = [0i64; 128]; for i in 0..8 { expected[i * 16] = (i + 1) as i64; @@ -7684,7 +7684,7 @@ mod tests { let index = _mm256_setr_epi32(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm512_setr_epi64(1, 2, 3, 4, 5, 6, 7, 8); // A multiplier of 8 is word-addressing - _mm512_mask_i32scatter_epi64::<8>(arr.as_mut_ptr() as *mut u8, mask, index, src); + _mm512_mask_i32scatter_epi64::<8>(arr.as_mut_ptr(), mask, index, src); let mut expected = [0i64; 128]; for i in 0..4 { expected[i * 32 + 16] = 2 * (i + 1) as i64; @@ -7698,7 +7698,7 @@ mod tests { let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm512_setr_epi64(1, 2, 3, 4, 5, 6, 7, 8); // A multiplier of 8 is word-addressing - _mm512_i64scatter_epi64::<8>(arr.as_mut_ptr() as *mut u8, index, src); + _mm512_i64scatter_epi64::<8>(arr.as_mut_ptr(), index, src); let mut expected = [0i64; 128]; for i in 0..8 { expected[i * 16] = (i + 1) as i64; @@ -7713,7 +7713,7 @@ mod tests { let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm512_setr_epi64(1, 2, 3, 4, 5, 6, 7, 8); // A multiplier of 8 is word-addressing - _mm512_mask_i64scatter_epi64::<8>(arr.as_mut_ptr() as *mut u8, mask, index, src); + _mm512_mask_i64scatter_epi64::<8>(arr.as_mut_ptr(), mask, index, src); let mut expected = [0i64; 128]; for i in 0..4 { expected[i * 32 + 16] = 2 * (i + 1) as i64; @@ -7727,7 +7727,7 @@ mod tests { let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8); // A multiplier of 4 is word-addressing - _mm512_i64scatter_epi32::<4>(arr.as_mut_ptr() as *mut u8, index, src); + _mm512_i64scatter_epi32::<4>(arr.as_mut_ptr(), index, src); let mut expected = [0i32; 128]; for i in 0..8 { expected[i * 16] = (i + 1) as i32; @@ -7742,7 +7742,7 @@ mod tests { let index = _mm512_setr_epi64(0, 16, 32, 48, 64, 80, 96, 112); let src = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 8); // A multiplier of 4 is word-addressing - _mm512_mask_i64scatter_epi32::<4>(arr.as_mut_ptr() as *mut u8, mask, index, src); + _mm512_mask_i64scatter_epi32::<4>(arr.as_mut_ptr(), mask, index, src); let mut expected = [0i32; 128]; for i in 0..4 { expected[i * 32 + 16] = 2 * (i + 1) as i32; @@ -7754,7 +7754,7 @@ mod tests { unsafe fn test_mm512_i32logather_epi64() { let base_addr: [i64; 8] = [1, 2, 3, 4, 5, 6, 7, 8]; let vindex = _mm512_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0, -1, -1, -1, -1, -1, -1, -1, -1); - let r = _mm512_i32logather_epi64::<8>(vindex, base_addr.as_ptr().cast()); + let r = _mm512_i32logather_epi64::<8>(vindex, base_addr.as_ptr()); let expected = _mm512_setr_epi64(2, 3, 4, 5, 6, 7, 8, 1); assert_eq_m512i(expected, r); } @@ -7764,8 +7764,7 @@ mod tests { let base_addr: [i64; 8] = [1, 2, 3, 4, 5, 6, 7, 8]; let src = _mm512_setr_epi64(9, 10, 11, 12, 13, 14, 15, 16); let vindex = _mm512_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0, -1, -1, -1, -1, -1, -1, -1, -1); - let r = - _mm512_mask_i32logather_epi64::<8>(src, 0b01010101, vindex, base_addr.as_ptr().cast()); + let r = _mm512_mask_i32logather_epi64::<8>(src, 0b01010101, vindex, base_addr.as_ptr()); let expected = _mm512_setr_epi64(2, 10, 4, 12, 6, 14, 8, 16); assert_eq_m512i(expected, r); } @@ -7774,7 +7773,7 @@ mod tests { unsafe fn test_mm512_i32logather_pd() { let base_addr: [f64; 8] = [1., 2., 3., 4., 5., 6., 7., 8.]; let vindex = _mm512_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0, -1, -1, -1, -1, -1, -1, -1, -1); - let r = _mm512_i32logather_pd::<8>(vindex, base_addr.as_ptr().cast()); + let r = _mm512_i32logather_pd::<8>(vindex, base_addr.as_ptr()); let expected = _mm512_setr_pd(2., 3., 4., 5., 6., 7., 8., 1.); assert_eq_m512d(expected, r); } @@ -7784,7 +7783,7 @@ mod tests { let base_addr: [f64; 8] = [1., 2., 3., 4., 5., 6., 7., 8.]; let src = _mm512_setr_pd(9., 10., 11., 12., 13., 14., 15., 16.); let vindex = _mm512_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0, -1, -1, -1, -1, -1, -1, -1, -1); - let r = _mm512_mask_i32logather_pd::<8>(src, 0b01010101, vindex, base_addr.as_ptr().cast()); + let r = _mm512_mask_i32logather_pd::<8>(src, 0b01010101, vindex, base_addr.as_ptr()); let expected = _mm512_setr_pd(2., 10., 4., 12., 6., 14., 8., 16.); assert_eq_m512d(expected, r); } @@ -7794,7 +7793,7 @@ mod tests { let mut base_addr: [i64; 8] = [0; 8]; let vindex = _mm512_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0, -1, -1, -1, -1, -1, -1, -1, -1); let src = _mm512_setr_epi64(2, 3, 4, 5, 6, 7, 8, 1); - _mm512_i32loscatter_epi64::<8>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm512_i32loscatter_epi64::<8>(base_addr.as_mut_ptr(), vindex, src); let expected = [1, 2, 3, 4, 5, 6, 7, 8]; assert_eq!(expected, base_addr); } @@ -7804,7 +7803,7 @@ mod tests { let mut base_addr: [i64; 8] = [0; 8]; let vindex = _mm512_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0, -1, -1, -1, -1, -1, -1, -1, -1); let src = _mm512_setr_epi64(2, 3, 4, 5, 6, 7, 8, 1); - _mm512_mask_i32loscatter_epi64::<8>(base_addr.as_mut_ptr().cast(), 0b01010101, vindex, src); + _mm512_mask_i32loscatter_epi64::<8>(base_addr.as_mut_ptr(), 0b01010101, vindex, src); let expected = [0, 2, 0, 4, 0, 6, 0, 8]; assert_eq!(expected, base_addr); } @@ -7814,7 +7813,7 @@ mod tests { let mut base_addr: [f64; 8] = [0.; 8]; let vindex = _mm512_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0, -1, -1, -1, -1, -1, -1, -1, -1); let src = _mm512_setr_pd(2., 3., 4., 5., 6., 7., 8., 1.); - _mm512_i32loscatter_pd::<8>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm512_i32loscatter_pd::<8>(base_addr.as_mut_ptr(), vindex, src); let expected = [1., 2., 3., 4., 5., 6., 7., 8.]; assert_eq!(expected, base_addr); } @@ -7824,7 +7823,7 @@ mod tests { let mut base_addr: [f64; 8] = [0.; 8]; let vindex = _mm512_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0, -1, -1, -1, -1, -1, -1, -1, -1); let src = _mm512_setr_pd(2., 3., 4., 5., 6., 7., 8., 1.); - _mm512_mask_i32loscatter_pd::<8>(base_addr.as_mut_ptr().cast(), 0b01010101, vindex, src); + _mm512_mask_i32loscatter_pd::<8>(base_addr.as_mut_ptr(), 0b01010101, vindex, src); let expected = [0., 2., 0., 4., 0., 6., 0., 8.]; assert_eq!(expected, base_addr); } @@ -7834,7 +7833,7 @@ mod tests { let base_addr: [i32; 4] = [1, 2, 3, 4]; let src = _mm_setr_epi32(5, 6, 7, 8); let vindex = _mm_setr_epi32(1, 2, 3, 0); - let r = _mm_mmask_i32gather_epi32::<4>(src, 0b0101, vindex, base_addr.as_ptr().cast()); + let r = _mm_mmask_i32gather_epi32::<4>(src, 0b0101, vindex, base_addr.as_ptr()); let expected = _mm_setr_epi32(2, 6, 4, 8); assert_eq_m128i(expected, r); } @@ -7844,7 +7843,7 @@ mod tests { let base_addr: [i64; 2] = [1, 2]; let src = _mm_setr_epi64x(5, 6); let vindex = _mm_setr_epi32(1, 0, -1, -1); - let r = _mm_mmask_i32gather_epi64::<8>(src, 0b01, vindex, base_addr.as_ptr().cast()); + let r = _mm_mmask_i32gather_epi64::<8>(src, 0b01, vindex, base_addr.as_ptr()); let expected = _mm_setr_epi64x(2, 6); assert_eq_m128i(expected, r); } @@ -7854,7 +7853,7 @@ mod tests { let base_addr: [f64; 2] = [1., 2.]; let src = _mm_setr_pd(5., 6.); let vindex = _mm_setr_epi32(1, 0, -1, -1); - let r = _mm_mmask_i32gather_pd::<8>(src, 0b01, vindex, base_addr.as_ptr().cast()); + let r = _mm_mmask_i32gather_pd::<8>(src, 0b01, vindex, base_addr.as_ptr()); let expected = _mm_setr_pd(2., 6.); assert_eq_m128d(expected, r); } @@ -7864,7 +7863,7 @@ mod tests { let base_addr: [f32; 4] = [1., 2., 3., 4.]; let src = _mm_setr_ps(5., 6., 7., 8.); let vindex = _mm_setr_epi32(1, 2, 3, 0); - let r = _mm_mmask_i32gather_ps::<4>(src, 0b0101, vindex, base_addr.as_ptr().cast()); + let r = _mm_mmask_i32gather_ps::<4>(src, 0b0101, vindex, base_addr.as_ptr()); let expected = _mm_setr_ps(2., 6., 4., 8.); assert_eq_m128(expected, r); } @@ -7874,7 +7873,7 @@ mod tests { let base_addr: [i32; 2] = [1, 2]; let src = _mm_setr_epi32(5, 6, 7, 8); let vindex = _mm_setr_epi64x(1, 0); - let r = _mm_mmask_i64gather_epi32::<4>(src, 0b01, vindex, base_addr.as_ptr().cast()); + let r = _mm_mmask_i64gather_epi32::<4>(src, 0b01, vindex, base_addr.as_ptr()); let expected = _mm_setr_epi32(2, 6, 0, 0); assert_eq_m128i(expected, r); } @@ -7884,7 +7883,7 @@ mod tests { let base_addr: [i64; 2] = [1, 2]; let src = _mm_setr_epi64x(5, 6); let vindex = _mm_setr_epi64x(1, 0); - let r = _mm_mmask_i64gather_epi64::<8>(src, 0b01, vindex, base_addr.as_ptr().cast()); + let r = _mm_mmask_i64gather_epi64::<8>(src, 0b01, vindex, base_addr.as_ptr()); let expected = _mm_setr_epi64x(2, 6); assert_eq_m128i(expected, r); } @@ -7894,7 +7893,7 @@ mod tests { let base_addr: [f64; 2] = [1., 2.]; let src = _mm_setr_pd(5., 6.); let vindex = _mm_setr_epi64x(1, 0); - let r = _mm_mmask_i64gather_pd::<8>(src, 0b01, vindex, base_addr.as_ptr().cast()); + let r = _mm_mmask_i64gather_pd::<8>(src, 0b01, vindex, base_addr.as_ptr()); let expected = _mm_setr_pd(2., 6.); assert_eq_m128d(expected, r); } @@ -7904,7 +7903,7 @@ mod tests { let base_addr: [f32; 2] = [1., 2.]; let src = _mm_setr_ps(5., 6., 7., 8.); let vindex = _mm_setr_epi64x(1, 0); - let r = _mm_mmask_i64gather_ps::<4>(src, 0b01, vindex, base_addr.as_ptr().cast()); + let r = _mm_mmask_i64gather_ps::<4>(src, 0b01, vindex, base_addr.as_ptr()); let expected = _mm_setr_ps(2., 6., 0., 0.); assert_eq_m128(expected, r); } @@ -7914,8 +7913,7 @@ mod tests { let base_addr: [i32; 8] = [1, 2, 3, 4, 5, 6, 7, 8]; let src = _mm256_setr_epi32(9, 10, 11, 12, 13, 14, 15, 16); let vindex = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0); - let r = - _mm256_mmask_i32gather_epi32::<4>(src, 0b01010101, vindex, base_addr.as_ptr().cast()); + let r = _mm256_mmask_i32gather_epi32::<4>(src, 0b01010101, vindex, base_addr.as_ptr()); let expected = _mm256_setr_epi32(2, 10, 4, 12, 6, 14, 8, 16); assert_eq_m256i(expected, r); } @@ -7925,7 +7923,7 @@ mod tests { let base_addr: [i64; 4] = [1, 2, 3, 4]; let src = _mm256_setr_epi64x(9, 10, 11, 12); let vindex = _mm_setr_epi32(1, 2, 3, 4); - let r = _mm256_mmask_i32gather_epi64::<8>(src, 0b0101, vindex, base_addr.as_ptr().cast()); + let r = _mm256_mmask_i32gather_epi64::<8>(src, 0b0101, vindex, base_addr.as_ptr()); let expected = _mm256_setr_epi64x(2, 10, 4, 12); assert_eq_m256i(expected, r); } @@ -7935,7 +7933,7 @@ mod tests { let base_addr: [f64; 4] = [1., 2., 3., 4.]; let src = _mm256_setr_pd(9., 10., 11., 12.); let vindex = _mm_setr_epi32(1, 2, 3, 4); - let r = _mm256_mmask_i32gather_pd::<8>(src, 0b0101, vindex, base_addr.as_ptr().cast()); + let r = _mm256_mmask_i32gather_pd::<8>(src, 0b0101, vindex, base_addr.as_ptr()); let expected = _mm256_setr_pd(2., 10., 4., 12.); assert_eq_m256d(expected, r); } @@ -7945,7 +7943,7 @@ mod tests { let base_addr: [f32; 8] = [1., 2., 3., 4., 5., 6., 7., 8.]; let src = _mm256_setr_ps(9., 10., 11., 12., 13., 14., 15., 16.); let vindex = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0); - let r = _mm256_mmask_i32gather_ps::<4>(src, 0b01010101, vindex, base_addr.as_ptr().cast()); + let r = _mm256_mmask_i32gather_ps::<4>(src, 0b01010101, vindex, base_addr.as_ptr()); let expected = _mm256_setr_ps(2., 10., 4., 12., 6., 14., 8., 16.); assert_eq_m256(expected, r); } @@ -7955,7 +7953,7 @@ mod tests { let base_addr: [i32; 4] = [1, 2, 3, 4]; let src = _mm_setr_epi32(9, 10, 11, 12); let vindex = _mm256_setr_epi64x(1, 2, 3, 0); - let r = _mm256_mmask_i64gather_epi32::<4>(src, 0b0101, vindex, base_addr.as_ptr().cast()); + let r = _mm256_mmask_i64gather_epi32::<4>(src, 0b0101, vindex, base_addr.as_ptr()); let expected = _mm_setr_epi32(2, 10, 4, 12); assert_eq_m128i(expected, r); } @@ -7965,7 +7963,7 @@ mod tests { let base_addr: [i64; 4] = [1, 2, 3, 4]; let src = _mm256_setr_epi64x(9, 10, 11, 12); let vindex = _mm256_setr_epi64x(1, 2, 3, 0); - let r = _mm256_mmask_i64gather_epi64::<8>(src, 0b0101, vindex, base_addr.as_ptr().cast()); + let r = _mm256_mmask_i64gather_epi64::<8>(src, 0b0101, vindex, base_addr.as_ptr()); let expected = _mm256_setr_epi64x(2, 10, 4, 12); assert_eq_m256i(expected, r); } @@ -7975,7 +7973,7 @@ mod tests { let base_addr: [f64; 4] = [1., 2., 3., 4.]; let src = _mm256_setr_pd(9., 10., 11., 12.); let vindex = _mm256_setr_epi64x(1, 2, 3, 0); - let r = _mm256_mmask_i64gather_pd::<8>(src, 0b0101, vindex, base_addr.as_ptr().cast()); + let r = _mm256_mmask_i64gather_pd::<8>(src, 0b0101, vindex, base_addr.as_ptr()); let expected = _mm256_setr_pd(2., 10., 4., 12.); assert_eq_m256d(expected, r); } @@ -7985,7 +7983,7 @@ mod tests { let base_addr: [f32; 4] = [1., 2., 3., 4.]; let src = _mm_setr_ps(9., 10., 11., 12.); let vindex = _mm256_setr_epi64x(1, 2, 3, 0); - let r = _mm256_mmask_i64gather_ps::<4>(src, 0b0101, vindex, base_addr.as_ptr().cast()); + let r = _mm256_mmask_i64gather_ps::<4>(src, 0b0101, vindex, base_addr.as_ptr()); let expected = _mm_setr_ps(2., 10., 4., 12.); assert_eq_m128(expected, r); } @@ -7995,7 +7993,7 @@ mod tests { let mut base_addr: [i32; 4] = [0; 4]; let vindex = _mm_setr_epi32(1, 2, 3, 0); let src = _mm_setr_epi32(2, 3, 4, 1); - _mm_i32scatter_epi32::<4>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm_i32scatter_epi32::<4>(base_addr.as_mut_ptr(), vindex, src); let expected = [1, 2, 3, 4]; assert_eq!(expected, base_addr); } @@ -8005,7 +8003,7 @@ mod tests { let mut base_addr: [i32; 4] = [0; 4]; let vindex = _mm_setr_epi32(1, 2, 3, 0); let src = _mm_setr_epi32(2, 3, 4, 1); - _mm_mask_i32scatter_epi32::<4>(base_addr.as_mut_ptr().cast(), 0b0101, vindex, src); + _mm_mask_i32scatter_epi32::<4>(base_addr.as_mut_ptr(), 0b0101, vindex, src); let expected = [0, 2, 0, 4]; assert_eq!(expected, base_addr); } @@ -8015,7 +8013,7 @@ mod tests { let mut base_addr: [i64; 2] = [0; 2]; let vindex = _mm_setr_epi32(1, 0, -1, -1); let src = _mm_setr_epi64x(2, 1); - _mm_i32scatter_epi64::<8>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm_i32scatter_epi64::<8>(base_addr.as_mut_ptr(), vindex, src); let expected = [1, 2]; assert_eq!(expected, base_addr); } @@ -8025,7 +8023,7 @@ mod tests { let mut base_addr: [i64; 2] = [0; 2]; let vindex = _mm_setr_epi32(1, 0, -1, -1); let src = _mm_setr_epi64x(2, 1); - _mm_mask_i32scatter_epi64::<8>(base_addr.as_mut_ptr().cast(), 0b01, vindex, src); + _mm_mask_i32scatter_epi64::<8>(base_addr.as_mut_ptr(), 0b01, vindex, src); let expected = [0, 2]; assert_eq!(expected, base_addr); } @@ -8035,7 +8033,7 @@ mod tests { let mut base_addr: [f64; 2] = [0.; 2]; let vindex = _mm_setr_epi32(1, 0, -1, -1); let src = _mm_setr_pd(2., 1.); - _mm_i32scatter_pd::<8>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm_i32scatter_pd::<8>(base_addr.as_mut_ptr(), vindex, src); let expected = [1., 2.]; assert_eq!(expected, base_addr); } @@ -8045,7 +8043,7 @@ mod tests { let mut base_addr: [f64; 2] = [0.; 2]; let vindex = _mm_setr_epi32(1, 0, -1, -1); let src = _mm_setr_pd(2., 1.); - _mm_mask_i32scatter_pd::<8>(base_addr.as_mut_ptr().cast(), 0b01, vindex, src); + _mm_mask_i32scatter_pd::<8>(base_addr.as_mut_ptr(), 0b01, vindex, src); let expected = [0., 2.]; assert_eq!(expected, base_addr); } @@ -8055,7 +8053,7 @@ mod tests { let mut base_addr: [f32; 4] = [0.; 4]; let vindex = _mm_setr_epi32(1, 2, 3, 0); let src = _mm_setr_ps(2., 3., 4., 1.); - _mm_i32scatter_ps::<4>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm_i32scatter_ps::<4>(base_addr.as_mut_ptr(), vindex, src); let expected = [1., 2., 3., 4.]; assert_eq!(expected, base_addr); } @@ -8065,7 +8063,7 @@ mod tests { let mut base_addr: [f32; 4] = [0.; 4]; let vindex = _mm_setr_epi32(1, 2, 3, 0); let src = _mm_setr_ps(2., 3., 4., 1.); - _mm_mask_i32scatter_ps::<4>(base_addr.as_mut_ptr().cast(), 0b0101, vindex, src); + _mm_mask_i32scatter_ps::<4>(base_addr.as_mut_ptr(), 0b0101, vindex, src); let expected = [0., 2., 0., 4.]; assert_eq!(expected, base_addr); } @@ -8075,7 +8073,7 @@ mod tests { let mut base_addr: [i32; 2] = [0; 2]; let vindex = _mm_setr_epi64x(1, 0); let src = _mm_setr_epi32(2, 1, -1, -1); - _mm_i64scatter_epi32::<4>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm_i64scatter_epi32::<4>(base_addr.as_mut_ptr(), vindex, src); let expected = [1, 2]; assert_eq!(expected, base_addr); } @@ -8085,7 +8083,7 @@ mod tests { let mut base_addr: [i32; 2] = [0; 2]; let vindex = _mm_setr_epi64x(1, 0); let src = _mm_setr_epi32(2, 1, -1, -1); - _mm_mask_i64scatter_epi32::<4>(base_addr.as_mut_ptr().cast(), 0b01, vindex, src); + _mm_mask_i64scatter_epi32::<4>(base_addr.as_mut_ptr(), 0b01, vindex, src); let expected = [0, 2]; assert_eq!(expected, base_addr); } @@ -8095,7 +8093,7 @@ mod tests { let mut base_addr: [i64; 2] = [0; 2]; let vindex = _mm_setr_epi64x(1, 0); let src = _mm_setr_epi64x(2, 1); - _mm_i64scatter_epi64::<8>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm_i64scatter_epi64::<8>(base_addr.as_mut_ptr(), vindex, src); let expected = [1, 2]; assert_eq!(expected, base_addr); } @@ -8105,7 +8103,7 @@ mod tests { let mut base_addr: [i64; 2] = [0; 2]; let vindex = _mm_setr_epi64x(1, 0); let src = _mm_setr_epi64x(2, 1); - _mm_mask_i64scatter_epi64::<8>(base_addr.as_mut_ptr().cast(), 0b01, vindex, src); + _mm_mask_i64scatter_epi64::<8>(base_addr.as_mut_ptr(), 0b01, vindex, src); let expected = [0, 2]; assert_eq!(expected, base_addr); } @@ -8115,7 +8113,7 @@ mod tests { let mut base_addr: [f64; 2] = [0.; 2]; let vindex = _mm_setr_epi64x(1, 0); let src = _mm_setr_pd(2., 1.); - _mm_i64scatter_pd::<8>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm_i64scatter_pd::<8>(base_addr.as_mut_ptr(), vindex, src); let expected = [1., 2.]; assert_eq!(expected, base_addr); } @@ -8125,7 +8123,7 @@ mod tests { let mut base_addr: [f64; 2] = [0.; 2]; let vindex = _mm_setr_epi64x(1, 0); let src = _mm_setr_pd(2., 1.); - _mm_mask_i64scatter_pd::<8>(base_addr.as_mut_ptr().cast(), 0b01, vindex, src); + _mm_mask_i64scatter_pd::<8>(base_addr.as_mut_ptr(), 0b01, vindex, src); let expected = [0., 2.]; assert_eq!(expected, base_addr); } @@ -8135,7 +8133,7 @@ mod tests { let mut base_addr: [f32; 2] = [0.; 2]; let vindex = _mm_setr_epi64x(1, 0); let src = _mm_setr_ps(2., 1., -1., -1.); - _mm_i64scatter_ps::<4>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm_i64scatter_ps::<4>(base_addr.as_mut_ptr(), vindex, src); let expected = [1., 2.]; assert_eq!(expected, base_addr); } @@ -8145,7 +8143,7 @@ mod tests { let mut base_addr: [f32; 2] = [0.; 2]; let vindex = _mm_setr_epi64x(1, 0); let src = _mm_setr_ps(2., 1., -1., -1.); - _mm_mask_i64scatter_ps::<4>(base_addr.as_mut_ptr().cast(), 0b01, vindex, src); + _mm_mask_i64scatter_ps::<4>(base_addr.as_mut_ptr(), 0b01, vindex, src); let expected = [0., 2.]; assert_eq!(expected, base_addr); } @@ -8155,7 +8153,7 @@ mod tests { let mut base_addr: [i32; 8] = [0; 8]; let vindex = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0); let src = _mm256_setr_epi32(2, 3, 4, 5, 6, 7, 8, 1); - _mm256_i32scatter_epi32::<4>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm256_i32scatter_epi32::<4>(base_addr.as_mut_ptr(), vindex, src); let expected = [1, 2, 3, 4, 5, 6, 7, 8]; assert_eq!(expected, base_addr); } @@ -8165,7 +8163,7 @@ mod tests { let mut base_addr: [i32; 8] = [0; 8]; let vindex = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0); let src = _mm256_setr_epi32(2, 3, 4, 5, 6, 7, 8, 1); - _mm256_mask_i32scatter_epi32::<4>(base_addr.as_mut_ptr().cast(), 0b01010101, vindex, src); + _mm256_mask_i32scatter_epi32::<4>(base_addr.as_mut_ptr(), 0b01010101, vindex, src); let expected = [0, 2, 0, 4, 0, 6, 0, 8]; assert_eq!(expected, base_addr); } @@ -8175,7 +8173,7 @@ mod tests { let mut base_addr: [i64; 4] = [0; 4]; let vindex = _mm_setr_epi32(1, 2, 3, 0); let src = _mm256_setr_epi64x(2, 3, 4, 1); - _mm256_i32scatter_epi64::<8>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm256_i32scatter_epi64::<8>(base_addr.as_mut_ptr(), vindex, src); let expected = [1, 2, 3, 4]; assert_eq!(expected, base_addr); } @@ -8185,7 +8183,7 @@ mod tests { let mut base_addr: [i64; 4] = [0; 4]; let vindex = _mm_setr_epi32(1, 2, 3, 0); let src = _mm256_setr_epi64x(2, 3, 4, 1); - _mm256_mask_i32scatter_epi64::<8>(base_addr.as_mut_ptr().cast(), 0b0101, vindex, src); + _mm256_mask_i32scatter_epi64::<8>(base_addr.as_mut_ptr(), 0b0101, vindex, src); let expected = [0, 2, 0, 4]; assert_eq!(expected, base_addr); } @@ -8195,7 +8193,7 @@ mod tests { let mut base_addr: [f64; 4] = [0.; 4]; let vindex = _mm_setr_epi32(1, 2, 3, 0); let src = _mm256_setr_pd(2., 3., 4., 1.); - _mm256_i32scatter_pd::<8>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm256_i32scatter_pd::<8>(base_addr.as_mut_ptr(), vindex, src); let expected = [1., 2., 3., 4.]; assert_eq!(expected, base_addr); } @@ -8205,7 +8203,7 @@ mod tests { let mut base_addr: [f64; 4] = [0.; 4]; let vindex = _mm_setr_epi32(1, 2, 3, 0); let src = _mm256_setr_pd(2., 3., 4., 1.); - _mm256_mask_i32scatter_pd::<8>(base_addr.as_mut_ptr().cast(), 0b0101, vindex, src); + _mm256_mask_i32scatter_pd::<8>(base_addr.as_mut_ptr(), 0b0101, vindex, src); let expected = [0., 2., 0., 4.]; assert_eq!(expected, base_addr); } @@ -8215,7 +8213,7 @@ mod tests { let mut base_addr: [f32; 8] = [0.; 8]; let vindex = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0); let src = _mm256_setr_ps(2., 3., 4., 5., 6., 7., 8., 1.); - _mm256_i32scatter_ps::<4>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm256_i32scatter_ps::<4>(base_addr.as_mut_ptr(), vindex, src); let expected = [1., 2., 3., 4., 5., 6., 7., 8.]; assert_eq!(expected, base_addr); } @@ -8225,7 +8223,7 @@ mod tests { let mut base_addr: [f32; 8] = [0.; 8]; let vindex = _mm256_setr_epi32(1, 2, 3, 4, 5, 6, 7, 0); let src = _mm256_setr_ps(2., 3., 4., 5., 6., 7., 8., 1.); - _mm256_mask_i32scatter_ps::<4>(base_addr.as_mut_ptr().cast(), 0b01010101, vindex, src); + _mm256_mask_i32scatter_ps::<4>(base_addr.as_mut_ptr(), 0b01010101, vindex, src); let expected = [0., 2., 0., 4., 0., 6., 0., 8.]; assert_eq!(expected, base_addr); } @@ -8235,7 +8233,7 @@ mod tests { let mut base_addr: [i32; 4] = [0; 4]; let vindex = _mm256_setr_epi64x(1, 2, 3, 0); let src = _mm_setr_epi32(2, 3, 4, 1); - _mm256_i64scatter_epi32::<4>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm256_i64scatter_epi32::<4>(base_addr.as_mut_ptr(), vindex, src); let expected = [1, 2, 3, 4]; assert_eq!(expected, base_addr); } @@ -8245,7 +8243,7 @@ mod tests { let mut base_addr: [i32; 4] = [0; 4]; let vindex = _mm256_setr_epi64x(1, 2, 3, 0); let src = _mm_setr_epi32(2, 3, 4, 1); - _mm256_mask_i64scatter_epi32::<4>(base_addr.as_mut_ptr().cast(), 0b0101, vindex, src); + _mm256_mask_i64scatter_epi32::<4>(base_addr.as_mut_ptr(), 0b0101, vindex, src); let expected = [0, 2, 0, 4]; assert_eq!(expected, base_addr); } @@ -8255,7 +8253,7 @@ mod tests { let mut base_addr: [i64; 4] = [0; 4]; let vindex = _mm256_setr_epi64x(1, 2, 3, 0); let src = _mm256_setr_epi64x(2, 3, 4, 1); - _mm256_i64scatter_epi64::<8>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm256_i64scatter_epi64::<8>(base_addr.as_mut_ptr(), vindex, src); let expected = [1, 2, 3, 4]; assert_eq!(expected, base_addr); } @@ -8265,7 +8263,7 @@ mod tests { let mut base_addr: [i64; 4] = [0; 4]; let vindex = _mm256_setr_epi64x(1, 2, 3, 0); let src = _mm256_setr_epi64x(2, 3, 4, 1); - _mm256_mask_i64scatter_epi64::<8>(base_addr.as_mut_ptr().cast(), 0b0101, vindex, src); + _mm256_mask_i64scatter_epi64::<8>(base_addr.as_mut_ptr(), 0b0101, vindex, src); let expected = [0, 2, 0, 4]; assert_eq!(expected, base_addr); } @@ -8275,7 +8273,7 @@ mod tests { let mut base_addr: [f64; 4] = [0.; 4]; let vindex = _mm256_setr_epi64x(1, 2, 3, 0); let src = _mm256_setr_pd(2., 3., 4., 1.); - _mm256_i64scatter_pd::<8>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm256_i64scatter_pd::<8>(base_addr.as_mut_ptr(), vindex, src); let expected = [1., 2., 3., 4.]; assert_eq!(expected, base_addr); } @@ -8285,7 +8283,7 @@ mod tests { let mut base_addr: [f64; 4] = [0.; 4]; let vindex = _mm256_setr_epi64x(1, 2, 3, 0); let src = _mm256_setr_pd(2., 3., 4., 1.); - _mm256_mask_i64scatter_pd::<8>(base_addr.as_mut_ptr().cast(), 0b0101, vindex, src); + _mm256_mask_i64scatter_pd::<8>(base_addr.as_mut_ptr(), 0b0101, vindex, src); let expected = [0., 2., 0., 4.]; assert_eq!(expected, base_addr); } @@ -8295,7 +8293,7 @@ mod tests { let mut base_addr: [f32; 4] = [0.; 4]; let vindex = _mm256_setr_epi64x(1, 2, 3, 0); let src = _mm_setr_ps(2., 3., 4., 1.); - _mm256_i64scatter_ps::<4>(base_addr.as_mut_ptr().cast(), vindex, src); + _mm256_i64scatter_ps::<4>(base_addr.as_mut_ptr(), vindex, src); let expected = [1., 2., 3., 4.]; assert_eq!(expected, base_addr); } @@ -8305,7 +8303,7 @@ mod tests { let mut base_addr: [f32; 4] = [0.; 4]; let vindex = _mm256_setr_epi64x(1, 2, 3, 0); let src = _mm_setr_ps(2., 3., 4., 1.); - _mm256_mask_i64scatter_ps::<4>(base_addr.as_mut_ptr().cast(), 0b0101, vindex, src); + _mm256_mask_i64scatter_ps::<4>(base_addr.as_mut_ptr(), 0b0101, vindex, src); let expected = [0., 2., 0., 4.]; assert_eq!(expected, base_addr); }