Skip to content

Commit 37bd99e

Browse files
committed
Add const to avx512bw intrinsics
1 parent 4f881c4 commit 37bd99e

1 file changed

Lines changed: 64 additions & 32 deletions

File tree

library/stdarch/crates/core_arch/src/x86/avx512bw.rs

Lines changed: 64 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6523,10 +6523,11 @@ pub fn _mm_maskz_maddubs_epi16(k: __mmask8, a: __m128i, b: __m128i) -> __m128i {
65236523
#[target_feature(enable = "avx512bw")]
65246524
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
65256525
#[cfg_attr(test, assert_instr(vpackssdw))]
6526-
pub fn _mm512_packs_epi32(a: __m512i, b: __m512i) -> __m512i {
6526+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6527+
pub const fn _mm512_packs_epi32(a: __m512i, b: __m512i) -> __m512i {
65276528
unsafe {
6528-
let max = simd_splat(i32::from(i16::MAX));
6529-
let min = simd_splat(i32::from(i16::MIN));
6529+
let max = simd_splat(i16::MAX as i32);
6530+
let min = simd_splat(i16::MIN as i32);
65306531

65316532
let clamped_a = simd_imax(simd_imin(a.as_i32x16(), max), min)
65326533
.as_m512i()
@@ -6559,7 +6560,13 @@ pub fn _mm512_packs_epi32(a: __m512i, b: __m512i) -> __m512i {
65596560
#[target_feature(enable = "avx512bw")]
65606561
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
65616562
#[cfg_attr(test, assert_instr(vpackssdw))]
6562-
pub fn _mm512_mask_packs_epi32(src: __m512i, k: __mmask32, a: __m512i, b: __m512i) -> __m512i {
6563+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6564+
pub const fn _mm512_mask_packs_epi32(
6565+
src: __m512i,
6566+
k: __mmask32,
6567+
a: __m512i,
6568+
b: __m512i,
6569+
) -> __m512i {
65636570
unsafe {
65646571
let pack = _mm512_packs_epi32(a, b).as_i16x32();
65656572
transmute(simd_select_bitmask(k, pack, src.as_i16x32()))
@@ -6573,7 +6580,8 @@ pub fn _mm512_mask_packs_epi32(src: __m512i, k: __mmask32, a: __m512i, b: __m512
65736580
#[target_feature(enable = "avx512bw")]
65746581
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
65756582
#[cfg_attr(test, assert_instr(vpackssdw))]
6576-
pub fn _mm512_maskz_packs_epi32(k: __mmask32, a: __m512i, b: __m512i) -> __m512i {
6583+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6584+
pub const fn _mm512_maskz_packs_epi32(k: __mmask32, a: __m512i, b: __m512i) -> __m512i {
65776585
unsafe {
65786586
let pack = _mm512_packs_epi32(a, b).as_i16x32();
65796587
transmute(simd_select_bitmask(k, pack, i16x32::ZERO))
@@ -6651,10 +6659,11 @@ pub const fn _mm_maskz_packs_epi32(k: __mmask8, a: __m128i, b: __m128i) -> __m12
66516659
#[target_feature(enable = "avx512bw")]
66526660
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
66536661
#[cfg_attr(test, assert_instr(vpacksswb))]
6654-
pub fn _mm512_packs_epi16(a: __m512i, b: __m512i) -> __m512i {
6662+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6663+
pub const fn _mm512_packs_epi16(a: __m512i, b: __m512i) -> __m512i {
66556664
unsafe {
6656-
let max = simd_splat(i16::from(i8::MAX));
6657-
let min = simd_splat(i16::from(i8::MIN));
6665+
let max = simd_splat(i8::MAX as i16);
6666+
let min = simd_splat(i8::MIN as i16);
66586667

66596668
let clamped_a = simd_imax(simd_imin(a.as_i16x32(), max), min)
66606669
.as_m512i()
@@ -6687,7 +6696,13 @@ pub fn _mm512_packs_epi16(a: __m512i, b: __m512i) -> __m512i {
66876696
#[target_feature(enable = "avx512bw")]
66886697
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
66896698
#[cfg_attr(test, assert_instr(vpacksswb))]
6690-
pub fn _mm512_mask_packs_epi16(src: __m512i, k: __mmask64, a: __m512i, b: __m512i) -> __m512i {
6699+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6700+
pub const fn _mm512_mask_packs_epi16(
6701+
src: __m512i,
6702+
k: __mmask64,
6703+
a: __m512i,
6704+
b: __m512i,
6705+
) -> __m512i {
66916706
unsafe {
66926707
let pack = _mm512_packs_epi16(a, b).as_i8x64();
66936708
transmute(simd_select_bitmask(k, pack, src.as_i8x64()))
@@ -6701,7 +6716,8 @@ pub fn _mm512_mask_packs_epi16(src: __m512i, k: __mmask64, a: __m512i, b: __m512
67016716
#[target_feature(enable = "avx512bw")]
67026717
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
67036718
#[cfg_attr(test, assert_instr(vpacksswb))]
6704-
pub fn _mm512_maskz_packs_epi16(k: __mmask64, a: __m512i, b: __m512i) -> __m512i {
6719+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6720+
pub const fn _mm512_maskz_packs_epi16(k: __mmask64, a: __m512i, b: __m512i) -> __m512i {
67056721
unsafe {
67066722
let pack = _mm512_packs_epi16(a, b).as_i8x64();
67076723
transmute(simd_select_bitmask(k, pack, i8x64::ZERO))
@@ -6780,10 +6796,11 @@ pub const fn _mm_maskz_packs_epi16(k: __mmask16, a: __m128i, b: __m128i) -> __m1
67806796
#[target_feature(enable = "avx512bw")]
67816797
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
67826798
#[cfg_attr(test, assert_instr(vpackusdw))]
6783-
pub fn _mm512_packus_epi32(a: __m512i, b: __m512i) -> __m512i {
6799+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6800+
pub const fn _mm512_packus_epi32(a: __m512i, b: __m512i) -> __m512i {
67846801
unsafe {
6785-
let max = simd_splat(i32::from(u16::MAX));
6786-
let min = simd_splat(i32::from(u16::MIN));
6802+
let max = simd_splat(u16::MAX as i32);
6803+
let min = simd_splat(u16::MIN as i32);
67876804

67886805
let clamped_a = simd_imax(simd_imin(a.as_i32x16(), max), min)
67896806
.as_m512i()
@@ -6816,7 +6833,13 @@ pub fn _mm512_packus_epi32(a: __m512i, b: __m512i) -> __m512i {
68166833
#[target_feature(enable = "avx512bw")]
68176834
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
68186835
#[cfg_attr(test, assert_instr(vpackusdw))]
6819-
pub fn _mm512_mask_packus_epi32(src: __m512i, k: __mmask32, a: __m512i, b: __m512i) -> __m512i {
6836+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6837+
pub const fn _mm512_mask_packus_epi32(
6838+
src: __m512i,
6839+
k: __mmask32,
6840+
a: __m512i,
6841+
b: __m512i,
6842+
) -> __m512i {
68206843
unsafe {
68216844
let pack = _mm512_packus_epi32(a, b).as_i16x32();
68226845
transmute(simd_select_bitmask(k, pack, src.as_i16x32()))
@@ -6830,7 +6853,8 @@ pub fn _mm512_mask_packus_epi32(src: __m512i, k: __mmask32, a: __m512i, b: __m51
68306853
#[target_feature(enable = "avx512bw")]
68316854
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
68326855
#[cfg_attr(test, assert_instr(vpackusdw))]
6833-
pub fn _mm512_maskz_packus_epi32(k: __mmask32, a: __m512i, b: __m512i) -> __m512i {
6856+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6857+
pub const fn _mm512_maskz_packus_epi32(k: __mmask32, a: __m512i, b: __m512i) -> __m512i {
68346858
unsafe {
68356859
let pack = _mm512_packus_epi32(a, b).as_i16x32();
68366860
transmute(simd_select_bitmask(k, pack, i16x32::ZERO))
@@ -6909,10 +6933,11 @@ pub const fn _mm_maskz_packus_epi32(k: __mmask8, a: __m128i, b: __m128i) -> __m1
69096933
#[target_feature(enable = "avx512bw")]
69106934
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
69116935
#[cfg_attr(test, assert_instr(vpackuswb))]
6912-
pub fn _mm512_packus_epi16(a: __m512i, b: __m512i) -> __m512i {
6936+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6937+
pub const fn _mm512_packus_epi16(a: __m512i, b: __m512i) -> __m512i {
69136938
unsafe {
6914-
let max = simd_splat(i16::from(u8::MAX));
6915-
let min = simd_splat(i16::from(u8::MIN));
6939+
let max = simd_splat(u8::MAX as i16);
6940+
let min = simd_splat(u8::MIN as i16);
69166941

69176942
let clamped_a = simd_imax(simd_imin(a.as_i16x32(), max), min)
69186943
.as_m512i()
@@ -6945,7 +6970,13 @@ pub fn _mm512_packus_epi16(a: __m512i, b: __m512i) -> __m512i {
69456970
#[target_feature(enable = "avx512bw")]
69466971
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
69476972
#[cfg_attr(test, assert_instr(vpackuswb))]
6948-
pub fn _mm512_mask_packus_epi16(src: __m512i, k: __mmask64, a: __m512i, b: __m512i) -> __m512i {
6973+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6974+
pub const fn _mm512_mask_packus_epi16(
6975+
src: __m512i,
6976+
k: __mmask64,
6977+
a: __m512i,
6978+
b: __m512i,
6979+
) -> __m512i {
69496980
unsafe {
69506981
let pack = _mm512_packus_epi16(a, b).as_i8x64();
69516982
transmute(simd_select_bitmask(k, pack, src.as_i8x64()))
@@ -6959,7 +6990,8 @@ pub fn _mm512_mask_packus_epi16(src: __m512i, k: __mmask64, a: __m512i, b: __m51
69596990
#[target_feature(enable = "avx512bw")]
69606991
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
69616992
#[cfg_attr(test, assert_instr(vpackuswb))]
6962-
pub fn _mm512_maskz_packus_epi16(k: __mmask64, a: __m512i, b: __m512i) -> __m512i {
6993+
#[rustc_const_unstable(feature = "stdarch_const_x86", issue = "149298")]
6994+
pub const fn _mm512_maskz_packus_epi16(k: __mmask64, a: __m512i, b: __m512i) -> __m512i {
69636995
unsafe {
69646996
let pack = _mm512_packus_epi16(a, b).as_i8x64();
69656997
transmute(simd_select_bitmask(k, pack, i8x64::ZERO))
@@ -17828,7 +17860,7 @@ mod tests {
1782817860
}
1782917861

1783017862
#[simd_test(enable = "avx512bw")]
17831-
fn test_mm512_packs_epi32() {
17863+
const fn test_mm512_packs_epi32() {
1783217864
let a = _mm512_set1_epi32(i32::MAX);
1783317865
let b = _mm512_set1_epi32(1);
1783417866
let r = _mm512_packs_epi32(a, b);
@@ -17839,7 +17871,7 @@ mod tests {
1783917871
}
1784017872

1784117873
#[simd_test(enable = "avx512bw")]
17842-
fn test_mm512_mask_packs_epi32() {
17874+
const fn test_mm512_mask_packs_epi32() {
1784317875
let a = _mm512_set1_epi32(i32::MAX);
1784417876
let b = _mm512_set1_epi32(1 << 16 | 1);
1784517877
let r = _mm512_mask_packs_epi32(a, 0, a, b);
@@ -17852,7 +17884,7 @@ mod tests {
1785217884
}
1785317885

1785417886
#[simd_test(enable = "avx512bw")]
17855-
fn test_mm512_maskz_packs_epi32() {
17887+
const fn test_mm512_maskz_packs_epi32() {
1785617888
let a = _mm512_set1_epi32(i32::MAX);
1785717889
let b = _mm512_set1_epi32(1);
1785817890
let r = _mm512_maskz_packs_epi32(0, a, b);
@@ -17911,7 +17943,7 @@ mod tests {
1791117943
}
1791217944

1791317945
#[simd_test(enable = "avx512bw")]
17914-
fn test_mm512_packs_epi16() {
17946+
const fn test_mm512_packs_epi16() {
1791517947
let a = _mm512_set1_epi16(i16::MAX);
1791617948
let b = _mm512_set1_epi16(1);
1791717949
let r = _mm512_packs_epi16(a, b);
@@ -17924,7 +17956,7 @@ mod tests {
1792417956
}
1792517957

1792617958
#[simd_test(enable = "avx512bw")]
17927-
fn test_mm512_mask_packs_epi16() {
17959+
const fn test_mm512_mask_packs_epi16() {
1792817960
let a = _mm512_set1_epi16(i16::MAX);
1792917961
let b = _mm512_set1_epi16(1 << 8 | 1);
1793017962
let r = _mm512_mask_packs_epi16(a, 0, a, b);
@@ -17944,7 +17976,7 @@ mod tests {
1794417976
}
1794517977

1794617978
#[simd_test(enable = "avx512bw")]
17947-
fn test_mm512_maskz_packs_epi16() {
17979+
const fn test_mm512_maskz_packs_epi16() {
1794817980
let a = _mm512_set1_epi16(i16::MAX);
1794917981
let b = _mm512_set1_epi16(1);
1795017982
let r = _mm512_maskz_packs_epi16(0, a, b);
@@ -18013,7 +18045,7 @@ mod tests {
1801318045
}
1801418046

1801518047
#[simd_test(enable = "avx512bw")]
18016-
fn test_mm512_packus_epi32() {
18048+
const fn test_mm512_packus_epi32() {
1801718049
let a = _mm512_set1_epi32(-1);
1801818050
let b = _mm512_set1_epi32(1);
1801918051
let r = _mm512_packus_epi32(a, b);
@@ -18024,7 +18056,7 @@ mod tests {
1802418056
}
1802518057

1802618058
#[simd_test(enable = "avx512bw")]
18027-
fn test_mm512_mask_packus_epi32() {
18059+
const fn test_mm512_mask_packus_epi32() {
1802818060
let a = _mm512_set1_epi32(-1);
1802918061
let b = _mm512_set1_epi32(1 << 16 | 1);
1803018062
let r = _mm512_mask_packus_epi32(a, 0, a, b);
@@ -18037,7 +18069,7 @@ mod tests {
1803718069
}
1803818070

1803918071
#[simd_test(enable = "avx512bw")]
18040-
fn test_mm512_maskz_packus_epi32() {
18072+
const fn test_mm512_maskz_packus_epi32() {
1804118073
let a = _mm512_set1_epi32(-1);
1804218074
let b = _mm512_set1_epi32(1);
1804318075
let r = _mm512_maskz_packus_epi32(0, a, b);
@@ -18094,7 +18126,7 @@ mod tests {
1809418126
}
1809518127

1809618128
#[simd_test(enable = "avx512bw")]
18097-
fn test_mm512_packus_epi16() {
18129+
const fn test_mm512_packus_epi16() {
1809818130
let a = _mm512_set1_epi16(-1);
1809918131
let b = _mm512_set1_epi16(1);
1810018132
let r = _mm512_packus_epi16(a, b);
@@ -18107,7 +18139,7 @@ mod tests {
1810718139
}
1810818140

1810918141
#[simd_test(enable = "avx512bw")]
18110-
fn test_mm512_mask_packus_epi16() {
18142+
const fn test_mm512_mask_packus_epi16() {
1811118143
let a = _mm512_set1_epi16(-1);
1811218144
let b = _mm512_set1_epi16(1 << 8 | 1);
1811318145
let r = _mm512_mask_packus_epi16(a, 0, a, b);
@@ -18127,7 +18159,7 @@ mod tests {
1812718159
}
1812818160

1812918161
#[simd_test(enable = "avx512bw")]
18130-
fn test_mm512_maskz_packus_epi16() {
18162+
const fn test_mm512_maskz_packus_epi16() {
1813118163
let a = _mm512_set1_epi16(-1);
1813218164
let b = _mm512_set1_epi16(1);
1813318165
let r = _mm512_maskz_packus_epi16(0, a, b);

0 commit comments

Comments
 (0)