@@ -9131,21 +9131,16 @@ pub unsafe fn _mm256_maskz_alignr_epi8<const IMM8: i32>(
91319131/// [Intel's documentation](https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_mask_alignr_epi8&expand=258)
91329132#[inline]
91339133#[target_feature(enable = "avx512bw,avx512vl")]
9134- #[rustc_args_required_const (4)]
9135- #[cfg_attr(test, assert_instr(vpalignr, imm8 = 5))]
9136- pub unsafe fn _mm_mask_alignr_epi8(
9134+ #[rustc_legacy_const_generics (4)]
9135+ #[cfg_attr(test, assert_instr(vpalignr, IMM8 = 5))]
9136+ pub unsafe fn _mm_mask_alignr_epi8<const IMM8: i32> (
91379137 src: __m128i,
91389138 k: __mmask16,
91399139 a: __m128i,
91409140 b: __m128i,
9141- imm8: i32,
91429141) -> __m128i {
9143- macro_rules! call {
9144- ($imm8:expr) => {
9145- _mm_alignr_epi8(a, b, $imm8)
9146- };
9147- }
9148- let r = constify_imm8_sae!(imm8, call);
9142+ static_assert_imm8!(IMM8);
9143+ let r = _mm_alignr_epi8(a, b, IMM8);
91499144 transmute(simd_select_bitmask(k, r.as_i8x16(), src.as_i8x16()))
91509145}
91519146
@@ -17782,9 +17777,9 @@ mod tests {
1778217777 unsafe fn test_mm_mask_alignr_epi8() {
1778317778 let a = _mm_set_epi8(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0);
1778417779 let b = _mm_set1_epi8(1);
17785- let r = _mm_mask_alignr_epi8(a, 0, a, b, 14 );
17780+ let r = _mm_mask_alignr_epi8::<14> (a, 0, a, b);
1778617781 assert_eq_m128i(r, a);
17787- let r = _mm_mask_alignr_epi8(a, 0b11111111_11111111, a, b, 14 );
17782+ let r = _mm_mask_alignr_epi8::<14> (a, 0b11111111_11111111, a, b);
1778817783 let e = _mm_set_epi8(0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1);
1778917784 assert_eq_m128i(r, e);
1779017785 }
0 commit comments