@@ -111,7 +111,7 @@ pub unsafe fn _mm256_add_epi8(a: __m256i, b: __m256i) -> __m256i {
111
111
#[ cfg_attr( test, assert_instr( vpaddsb) ) ]
112
112
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
113
113
pub unsafe fn _mm256_adds_epi8 ( a : __m256i , b : __m256i ) -> __m256i {
114
- transmute ( paddsb ( a. as_i8x32 ( ) , b. as_i8x32 ( ) ) )
114
+ transmute ( simd_saturating_add ( a. as_i8x32 ( ) , b. as_i8x32 ( ) ) )
115
115
}
116
116
117
117
/// Adds packed 16-bit integers in `a` and `b` using saturation.
@@ -122,7 +122,7 @@ pub unsafe fn _mm256_adds_epi8(a: __m256i, b: __m256i) -> __m256i {
122
122
#[ cfg_attr( test, assert_instr( vpaddsw) ) ]
123
123
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
124
124
pub unsafe fn _mm256_adds_epi16 ( a : __m256i , b : __m256i ) -> __m256i {
125
- transmute ( paddsw ( a. as_i16x16 ( ) , b. as_i16x16 ( ) ) )
125
+ transmute ( simd_saturating_add ( a. as_i16x16 ( ) , b. as_i16x16 ( ) ) )
126
126
}
127
127
128
128
/// Adds packed unsigned 8-bit integers in `a` and `b` using saturation.
@@ -133,7 +133,7 @@ pub unsafe fn _mm256_adds_epi16(a: __m256i, b: __m256i) -> __m256i {
133
133
#[ cfg_attr( test, assert_instr( vpaddusb) ) ]
134
134
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
135
135
pub unsafe fn _mm256_adds_epu8 ( a : __m256i , b : __m256i ) -> __m256i {
136
- transmute ( paddusb ( a. as_u8x32 ( ) , b. as_u8x32 ( ) ) )
136
+ transmute ( simd_saturating_add ( a. as_u8x32 ( ) , b. as_u8x32 ( ) ) )
137
137
}
138
138
139
139
/// Adds packed unsigned 16-bit integers in `a` and `b` using saturation.
@@ -144,7 +144,7 @@ pub unsafe fn _mm256_adds_epu8(a: __m256i, b: __m256i) -> __m256i {
144
144
#[ cfg_attr( test, assert_instr( vpaddusw) ) ]
145
145
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
146
146
pub unsafe fn _mm256_adds_epu16 ( a : __m256i , b : __m256i ) -> __m256i {
147
- transmute ( paddusw ( a. as_u16x16 ( ) , b. as_u16x16 ( ) ) )
147
+ transmute ( simd_saturating_add ( a. as_u16x16 ( ) , b. as_u16x16 ( ) ) )
148
148
}
149
149
150
150
/// Concatenates pairs of 16-byte blocks in `a` and `b` into a 32-byte temporary
@@ -3331,7 +3331,7 @@ pub unsafe fn _mm256_sub_epi8(a: __m256i, b: __m256i) -> __m256i {
3331
3331
#[ cfg_attr( test, assert_instr( vpsubsw) ) ]
3332
3332
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
3333
3333
pub unsafe fn _mm256_subs_epi16 ( a : __m256i , b : __m256i ) -> __m256i {
3334
- transmute ( psubsw ( a. as_i16x16 ( ) , b. as_i16x16 ( ) ) )
3334
+ transmute ( simd_saturating_sub ( a. as_i16x16 ( ) , b. as_i16x16 ( ) ) )
3335
3335
}
3336
3336
3337
3337
/// Subtract packed 8-bit integers in `b` from packed 8-bit integers in
@@ -3343,7 +3343,7 @@ pub unsafe fn _mm256_subs_epi16(a: __m256i, b: __m256i) -> __m256i {
3343
3343
#[ cfg_attr( test, assert_instr( vpsubsb) ) ]
3344
3344
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
3345
3345
pub unsafe fn _mm256_subs_epi8 ( a : __m256i , b : __m256i ) -> __m256i {
3346
- transmute ( psubsb ( a. as_i8x32 ( ) , b. as_i8x32 ( ) ) )
3346
+ transmute ( simd_saturating_sub ( a. as_i8x32 ( ) , b. as_i8x32 ( ) ) )
3347
3347
}
3348
3348
3349
3349
/// Subtract packed unsigned 16-bit integers in `b` from packed 16-bit
@@ -3355,7 +3355,7 @@ pub unsafe fn _mm256_subs_epi8(a: __m256i, b: __m256i) -> __m256i {
3355
3355
#[ cfg_attr( test, assert_instr( vpsubusw) ) ]
3356
3356
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
3357
3357
pub unsafe fn _mm256_subs_epu16 ( a : __m256i , b : __m256i ) -> __m256i {
3358
- transmute ( psubusw ( a. as_u16x16 ( ) , b. as_u16x16 ( ) ) )
3358
+ transmute ( simd_saturating_sub ( a. as_u16x16 ( ) , b. as_u16x16 ( ) ) )
3359
3359
}
3360
3360
3361
3361
/// Subtract packed unsigned 8-bit integers in `b` from packed 8-bit
@@ -3367,7 +3367,7 @@ pub unsafe fn _mm256_subs_epu16(a: __m256i, b: __m256i) -> __m256i {
3367
3367
#[ cfg_attr( test, assert_instr( vpsubusb) ) ]
3368
3368
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
3369
3369
pub unsafe fn _mm256_subs_epu8 ( a : __m256i , b : __m256i ) -> __m256i {
3370
- transmute ( psubusb ( a. as_u8x32 ( ) , b. as_u8x32 ( ) ) )
3370
+ transmute ( simd_saturating_sub ( a. as_u8x32 ( ) , b. as_u8x32 ( ) ) )
3371
3371
}
3372
3372
3373
3373
/// Unpacks and interleave 8-bit integers from the high half of each
@@ -3807,14 +3807,6 @@ extern "C" {
3807
3807
fn pabsw ( a : i16x16 ) -> u16x16 ;
3808
3808
#[ link_name = "llvm.x86.avx2.pabs.d" ]
3809
3809
fn pabsd ( a : i32x8 ) -> u32x8 ;
3810
- #[ link_name = "llvm.x86.avx2.padds.b" ]
3811
- fn paddsb ( a : i8x32 , b : i8x32 ) -> i8x32 ;
3812
- #[ link_name = "llvm.x86.avx2.padds.w" ]
3813
- fn paddsw ( a : i16x16 , b : i16x16 ) -> i16x16 ;
3814
- #[ link_name = "llvm.x86.avx2.paddus.b" ]
3815
- fn paddusb ( a : u8x32 , b : u8x32 ) -> u8x32 ;
3816
- #[ link_name = "llvm.x86.avx2.paddus.w" ]
3817
- fn paddusw ( a : u16x16 , b : u16x16 ) -> u16x16 ;
3818
3810
#[ link_name = "llvm.x86.avx2.pavg.b" ]
3819
3811
fn pavgb ( a : u8x32 , b : u8x32 ) -> u8x32 ;
3820
3812
#[ link_name = "llvm.x86.avx2.pavg.w" ]
@@ -3959,14 +3951,6 @@ extern "C" {
3959
3951
fn psrlvq ( a : i64x2 , count : i64x2 ) -> i64x2 ;
3960
3952
#[ link_name = "llvm.x86.avx2.psrlv.q.256" ]
3961
3953
fn psrlvq256 ( a : i64x4 , count : i64x4 ) -> i64x4 ;
3962
- #[ link_name = "llvm.x86.avx2.psubs.b" ]
3963
- fn psubsb ( a : i8x32 , b : i8x32 ) -> i8x32 ;
3964
- #[ link_name = "llvm.x86.avx2.psubs.w" ]
3965
- fn psubsw ( a : i16x16 , b : i16x16 ) -> i16x16 ;
3966
- #[ link_name = "llvm.x86.avx2.psubus.b" ]
3967
- fn psubusb ( a : u8x32 , b : u8x32 ) -> u8x32 ;
3968
- #[ link_name = "llvm.x86.avx2.psubus.w" ]
3969
- fn psubusw ( a : u16x16 , b : u16x16 ) -> u16x16 ;
3970
3954
#[ link_name = "llvm.x86.avx2.pshuf.b" ]
3971
3955
fn pshufb ( a : u8x32 , b : u8x32 ) -> u8x32 ;
3972
3956
#[ link_name = "llvm.x86.avx2.permd" ]
0 commit comments