Skip to content

Commit 34db275

Browse files
committed
convert _mm_srai_epi16 and _mm_srai_epi32 to const generics
1 parent 7228fea commit 34db275

File tree

3 files changed

+12
-24
lines changed

3 files changed

+12
-24
lines changed

crates/core_arch/src/x86/avx512bw.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5858,7 +5858,7 @@ pub unsafe fn _mm256_maskz_srai_epi16(k: __mmask16, a: __m256i, imm8: u32) -> __
58585858
pub unsafe fn _mm_mask_srai_epi16(src: __m128i, k: __mmask8, a: __m128i, imm8: u32) -> __m128i {
58595859
macro_rules! call {
58605860
($imm8:expr) => {
5861-
_mm_srai_epi16(a, $imm8)
5861+
_mm_srai_epi16::<$imm8>(a)
58625862
};
58635863
}
58645864
let shf = constify_imm8_sae!(imm8, call);
@@ -5875,7 +5875,7 @@ pub unsafe fn _mm_mask_srai_epi16(src: __m128i, k: __mmask8, a: __m128i, imm8: u
58755875
pub unsafe fn _mm_maskz_srai_epi16(k: __mmask8, a: __m128i, imm8: u32) -> __m128i {
58765876
macro_rules! call {
58775877
($imm8:expr) => {
5878-
_mm_srai_epi16(a, $imm8)
5878+
_mm_srai_epi16::<$imm8>(a)
58795879
};
58805880
}
58815881
let shf = constify_imm8_sae!(imm8, call);

crates/core_arch/src/x86/avx512f.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19238,7 +19238,7 @@ pub unsafe fn _mm256_maskz_srai_epi32(k: __mmask8, a: __m256i, imm8: u32) -> __m
1923819238
pub unsafe fn _mm_mask_srai_epi32(src: __m128i, k: __mmask8, a: __m128i, imm8: u32) -> __m128i {
1923919239
macro_rules! call {
1924019240
($imm8:expr) => {
19241-
_mm_srai_epi32(a, $imm8)
19241+
_mm_srai_epi32::<$imm8>(a)
1924219242
};
1924319243
}
1924419244
let shf = constify_imm8_sae!(imm8, call);
@@ -19255,7 +19255,7 @@ pub unsafe fn _mm_mask_srai_epi32(src: __m128i, k: __mmask8, a: __m128i, imm8: u
1925519255
pub unsafe fn _mm_maskz_srai_epi32(k: __mmask8, a: __m128i, imm8: u32) -> __m128i {
1925619256
macro_rules! call {
1925719257
($imm8:expr) => {
19258-
_mm_srai_epi32(a, $imm8)
19258+
_mm_srai_epi32::<$imm8>(a)
1925919259
};
1926019260
}
1926119261
let shf = constify_imm8_sae!(imm8, call);

crates/core_arch/src/x86/sse2.rs

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -594,16 +594,10 @@ pub unsafe fn _mm_sll_epi64(a: __m128i, count: __m128i) -> __m128i {
594594
#[inline]
595595
#[target_feature(enable = "sse2")]
596596
#[cfg_attr(test, assert_instr(psraw, imm8 = 1))]
597-
#[rustc_args_required_const(1)]
597+
#[rustc_legacy_const_generics(1)]
598598
#[stable(feature = "simd_x86", since = "1.27.0")]
599-
pub unsafe fn _mm_srai_epi16(a: __m128i, imm8: i32) -> __m128i {
600-
let a = a.as_i16x8();
601-
macro_rules! call {
602-
($imm8:expr) => {
603-
transmute(psraiw(a, $imm8))
604-
};
605-
}
606-
constify_imm8!(imm8, call)
599+
pub unsafe fn _mm_srai_epi16<const imm8: i32>(a: __m128i) -> __m128i {
600+
transmute(psraiw(a.as_i16x8(), imm8))
607601
}
608602

609603
/// Shifts packed 16-bit integers in `a` right by `count` while shifting in sign
@@ -625,16 +619,10 @@ pub unsafe fn _mm_sra_epi16(a: __m128i, count: __m128i) -> __m128i {
625619
#[inline]
626620
#[target_feature(enable = "sse2")]
627621
#[cfg_attr(test, assert_instr(psrad, imm8 = 1))]
628-
#[rustc_args_required_const(1)]
622+
#[rustc_legacy_const_generics(1)]
629623
#[stable(feature = "simd_x86", since = "1.27.0")]
630-
pub unsafe fn _mm_srai_epi32(a: __m128i, imm8: i32) -> __m128i {
631-
let a = a.as_i32x4();
632-
macro_rules! call {
633-
($imm8:expr) => {
634-
transmute(psraid(a, $imm8))
635-
};
636-
}
637-
constify_imm8!(imm8, call)
624+
pub unsafe fn _mm_srai_epi32<const imm8: i32>(a: __m128i) -> __m128i {
625+
transmute(psraid(a.as_i32x4(), imm8))
638626
}
639627

640628
/// Shifts packed 32-bit integers in `a` right by `count` while shifting in sign
@@ -3498,7 +3486,7 @@ mod tests {
34983486

34993487
#[simd_test(enable = "sse2")]
35003488
unsafe fn test_mm_srai_epi16() {
3501-
let r = _mm_srai_epi16(_mm_set1_epi16(-1), 1);
3489+
let r = _mm_srai_epi16::<1>(_mm_set1_epi16(-1));
35023490
assert_eq_m128i(r, _mm_set1_epi16(-1));
35033491
}
35043492

@@ -3512,7 +3500,7 @@ mod tests {
35123500

35133501
#[simd_test(enable = "sse2")]
35143502
unsafe fn test_mm_srai_epi32() {
3515-
let r = _mm_srai_epi32(_mm_set1_epi32(-1), 1);
3503+
let r = _mm_srai_epi32::<1>(_mm_set1_epi32(-1));
35163504
assert_eq_m128i(r, _mm_set1_epi32(-1));
35173505
}
35183506

0 commit comments

Comments
 (0)