@@ -503,16 +503,11 @@ pub unsafe fn _mm_bsrli_si128(a: __m128i, imm8: i32) -> __m128i {
503503#[ inline]
504504#[ target_feature( enable = "sse2" ) ]
505505#[ cfg_attr( test, assert_instr( psllw, imm8 = 7 ) ) ]
506- #[ rustc_args_required_const ( 1 ) ]
506+ #[ rustc_legacy_const_generics ( 1 ) ]
507507#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
508- pub unsafe fn _mm_slli_epi16 ( a : __m128i , imm8 : i32 ) -> __m128i {
509- let a = a. as_i16x8 ( ) ;
510- macro_rules! call {
511- ( $imm8: expr) => {
512- transmute( pslliw( a, $imm8) )
513- } ;
514- }
515- constify_imm8 ! ( imm8, call)
508+ pub unsafe fn _mm_slli_epi16 < const imm8: i32 > ( a : __m128i ) -> __m128i {
509+ static_assert_imm8 ! ( imm8) ;
510+ transmute ( pslliw ( a. as_i16x8 ( ) , imm8) )
516511}
517512
518513/// Shifts packed 16-bit integers in `a` left by `count` while shifting in
@@ -533,16 +528,11 @@ pub unsafe fn _mm_sll_epi16(a: __m128i, count: __m128i) -> __m128i {
533528#[ inline]
534529#[ target_feature( enable = "sse2" ) ]
535530#[ cfg_attr( test, assert_instr( pslld, imm8 = 7 ) ) ]
536- #[ rustc_args_required_const ( 1 ) ]
531+ #[ rustc_legacy_const_generics ( 1 ) ]
537532#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
538- pub unsafe fn _mm_slli_epi32 ( a : __m128i , imm8 : i32 ) -> __m128i {
539- let a = a. as_i32x4 ( ) ;
540- macro_rules! call {
541- ( $imm8: expr) => {
542- transmute( psllid( a, $imm8) )
543- } ;
544- }
545- constify_imm8 ! ( imm8, call)
533+ pub unsafe fn _mm_slli_epi32 < const imm8: i32 > ( a : __m128i ) -> __m128i {
534+ static_assert_imm8 ! ( imm8) ;
535+ transmute ( psllid ( a. as_i32x4 ( ) , imm8) )
546536}
547537
548538/// Shifts packed 32-bit integers in `a` left by `count` while shifting in
@@ -563,16 +553,11 @@ pub unsafe fn _mm_sll_epi32(a: __m128i, count: __m128i) -> __m128i {
563553#[ inline]
564554#[ target_feature( enable = "sse2" ) ]
565555#[ cfg_attr( test, assert_instr( psllq, imm8 = 7 ) ) ]
566- #[ rustc_args_required_const ( 1 ) ]
556+ #[ rustc_legacy_const_generics ( 1 ) ]
567557#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
568- pub unsafe fn _mm_slli_epi64 ( a : __m128i , imm8 : i32 ) -> __m128i {
569- let a = a. as_i64x2 ( ) ;
570- macro_rules! call {
571- ( $imm8: expr) => {
572- transmute( pslliq( a, $imm8) )
573- } ;
574- }
575- constify_imm8 ! ( imm8, call)
558+ pub unsafe fn _mm_slli_epi64 < const imm8: i32 > ( a : __m128i ) -> __m128i {
559+ static_assert_imm8 ! ( imm8) ;
560+ transmute ( pslliq ( a. as_i64x2 ( ) , imm8) )
576561}
577562
578563/// Shifts packed 64-bit integers in `a` left by `count` while shifting in
@@ -713,16 +698,11 @@ unsafe fn _mm_srli_si128_impl(a: __m128i, imm8: i32) -> __m128i {
713698#[ inline]
714699#[ target_feature( enable = "sse2" ) ]
715700#[ cfg_attr( test, assert_instr( psrlw, imm8 = 1 ) ) ]
716- #[ rustc_args_required_const ( 1 ) ]
701+ #[ rustc_legacy_const_generics ( 1 ) ]
717702#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
718- pub unsafe fn _mm_srli_epi16 ( a : __m128i , imm8 : i32 ) -> __m128i {
719- let a = a. as_i16x8 ( ) ;
720- macro_rules! call {
721- ( $imm8: expr) => {
722- transmute( psrliw( a, $imm8) )
723- } ;
724- }
725- constify_imm8 ! ( imm8, call)
703+ pub unsafe fn _mm_srli_epi16 < const imm8: i32 > ( a : __m128i ) -> __m128i {
704+ static_assert_imm8 ! ( imm8) ;
705+ transmute ( psrliw ( a. as_i16x8 ( ) , imm8) )
726706}
727707
728708/// Shifts packed 16-bit integers in `a` right by `count` while shifting in
@@ -744,16 +724,11 @@ pub unsafe fn _mm_srl_epi16(a: __m128i, count: __m128i) -> __m128i {
744724#[ inline]
745725#[ target_feature( enable = "sse2" ) ]
746726#[ cfg_attr( test, assert_instr( psrld, imm8 = 8 ) ) ]
747- #[ rustc_args_required_const ( 1 ) ]
727+ #[ rustc_legacy_const_generics ( 1 ) ]
748728#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
749- pub unsafe fn _mm_srli_epi32 ( a : __m128i , imm8 : i32 ) -> __m128i {
750- let a = a. as_i32x4 ( ) ;
751- macro_rules! call {
752- ( $imm8: expr) => {
753- transmute( psrlid( a, $imm8) )
754- } ;
755- }
756- constify_imm8 ! ( imm8, call)
729+ pub unsafe fn _mm_srli_epi32 < const imm8: i32 > ( a : __m128i ) -> __m128i {
730+ static_assert_imm8 ! ( imm8) ;
731+ transmute ( psrlid ( a. as_i32x4 ( ) , imm8) )
757732}
758733
759734/// Shifts packed 32-bit integers in `a` right by `count` while shifting in
@@ -775,9 +750,10 @@ pub unsafe fn _mm_srl_epi32(a: __m128i, count: __m128i) -> __m128i {
775750#[ inline]
776751#[ target_feature( enable = "sse2" ) ]
777752#[ cfg_attr( test, assert_instr( psrlq, imm8 = 1 ) ) ]
778- #[ rustc_args_required_const ( 1 ) ]
753+ #[ rustc_legacy_const_generics ( 1 ) ]
779754#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
780- pub unsafe fn _mm_srli_epi64 ( a : __m128i , imm8 : i32 ) -> __m128i {
755+ pub unsafe fn _mm_srli_epi64 < const imm8: i32 > ( a : __m128i ) -> __m128i {
756+ static_assert_imm8 ! ( imm8) ;
781757 transmute ( psrliq ( a. as_i64x2 ( ) , imm8) )
782758}
783759
@@ -3439,7 +3415,7 @@ mod tests {
34393415 let a = _mm_setr_epi16 (
34403416 0xFFFF as u16 as i16 , 0x0FFF , 0x00FF , 0x000F , 0 , 0 , 0 , 0 ,
34413417 ) ;
3442- let r = _mm_slli_epi16 ( a , 4 ) ;
3418+ let r = _mm_slli_epi16 :: < 4 > ( a ) ;
34433419
34443420 #[ rustfmt:: skip]
34453421 let e = _mm_setr_epi16 (
@@ -3460,7 +3436,7 @@ mod tests {
34603436
34613437 #[ simd_test( enable = "sse2" ) ]
34623438 unsafe fn test_mm_slli_epi32 ( ) {
3463- let r = _mm_slli_epi32 ( _mm_set1_epi32 ( 0xFFFF ) , 4 ) ;
3439+ let r = _mm_slli_epi32 :: < 4 > ( _mm_set1_epi32 ( 0xFFFF ) ) ;
34643440 assert_eq_m128i ( r, _mm_set1_epi32 ( 0xFFFF0 ) ) ;
34653441 }
34663442
@@ -3474,7 +3450,7 @@ mod tests {
34743450
34753451 #[ simd_test( enable = "sse2" ) ]
34763452 unsafe fn test_mm_slli_epi64 ( ) {
3477- let r = _mm_slli_epi64 ( _mm_set1_epi64x ( 0xFFFFFFFF ) , 4 ) ;
3453+ let r = _mm_slli_epi64 :: < 4 > ( _mm_set1_epi64x ( 0xFFFFFFFF ) ) ;
34783454 assert_eq_m128i ( r, _mm_set1_epi64x ( 0xFFFFFFFF0 ) ) ;
34793455 }
34803456
@@ -3563,7 +3539,7 @@ mod tests {
35633539 let a = _mm_setr_epi16 (
35643540 0xFFFF as u16 as i16 , 0x0FFF , 0x00FF , 0x000F , 0 , 0 , 0 , 0 ,
35653541 ) ;
3566- let r = _mm_srli_epi16 ( a , 4 ) ;
3542+ let r = _mm_srli_epi16 :: < 4 > ( a ) ;
35673543 #[ rustfmt:: skip]
35683544 let e = _mm_setr_epi16 (
35693545 0xFFF as u16 as i16 , 0xFF as u16 as i16 , 0xF , 0 , 0 , 0 , 0 , 0 ,
@@ -3582,7 +3558,7 @@ mod tests {
35823558
35833559 #[ simd_test( enable = "sse2" ) ]
35843560 unsafe fn test_mm_srli_epi32 ( ) {
3585- let r = _mm_srli_epi32 ( _mm_set1_epi32 ( 0xFFFF ) , 4 ) ;
3561+ let r = _mm_srli_epi32 :: < 4 > ( _mm_set1_epi32 ( 0xFFFF ) ) ;
35863562 assert_eq_m128i ( r, _mm_set1_epi32 ( 0xFFF ) ) ;
35873563 }
35883564
@@ -3596,7 +3572,7 @@ mod tests {
35963572
35973573 #[ simd_test( enable = "sse2" ) ]
35983574 unsafe fn test_mm_srli_epi64 ( ) {
3599- let r = _mm_srli_epi64 ( _mm_set1_epi64x ( 0xFFFFFFFF ) , 4 ) ;
3575+ let r = _mm_srli_epi64 :: < 4 > ( _mm_set1_epi64x ( 0xFFFFFFFF ) ) ;
36003576 assert_eq_m128i ( r, _mm_set1_epi64x ( 0xFFFFFFF ) ) ;
36013577 }
36023578
0 commit comments