@@ -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
@@ -3334,7 +3334,7 @@ pub unsafe fn _mm256_sub_epi8(a: __m256i, b: __m256i) -> __m256i {
3334
3334
#[ cfg_attr( test, assert_instr( vpsubsw) ) ]
3335
3335
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
3336
3336
pub unsafe fn _mm256_subs_epi16 ( a : __m256i , b : __m256i ) -> __m256i {
3337
- transmute ( psubsw ( a. as_i16x16 ( ) , b. as_i16x16 ( ) ) )
3337
+ transmute ( simd_saturating_sub ( a. as_i16x16 ( ) , b. as_i16x16 ( ) ) )
3338
3338
}
3339
3339
3340
3340
/// Subtract packed 8-bit integers in `b` from packed 8-bit integers in
@@ -3346,7 +3346,7 @@ pub unsafe fn _mm256_subs_epi16(a: __m256i, b: __m256i) -> __m256i {
3346
3346
#[ cfg_attr( test, assert_instr( vpsubsb) ) ]
3347
3347
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
3348
3348
pub unsafe fn _mm256_subs_epi8 ( a : __m256i , b : __m256i ) -> __m256i {
3349
- transmute ( psubsb ( a. as_i8x32 ( ) , b. as_i8x32 ( ) ) )
3349
+ transmute ( simd_saturating_sub ( a. as_i8x32 ( ) , b. as_i8x32 ( ) ) )
3350
3350
}
3351
3351
3352
3352
/// Subtract packed unsigned 16-bit integers in `b` from packed 16-bit
@@ -3358,7 +3358,7 @@ pub unsafe fn _mm256_subs_epi8(a: __m256i, b: __m256i) -> __m256i {
3358
3358
#[ cfg_attr( test, assert_instr( vpsubusw) ) ]
3359
3359
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
3360
3360
pub unsafe fn _mm256_subs_epu16 ( a : __m256i , b : __m256i ) -> __m256i {
3361
- transmute ( psubusw ( a. as_u16x16 ( ) , b. as_u16x16 ( ) ) )
3361
+ transmute ( simd_saturating_sub ( a. as_u16x16 ( ) , b. as_u16x16 ( ) ) )
3362
3362
}
3363
3363
3364
3364
/// Subtract packed unsigned 8-bit integers in `b` from packed 8-bit
@@ -3370,7 +3370,7 @@ pub unsafe fn _mm256_subs_epu16(a: __m256i, b: __m256i) -> __m256i {
3370
3370
#[ cfg_attr( test, assert_instr( vpsubusb) ) ]
3371
3371
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
3372
3372
pub unsafe fn _mm256_subs_epu8 ( a : __m256i , b : __m256i ) -> __m256i {
3373
- transmute ( psubusb ( a. as_u8x32 ( ) , b. as_u8x32 ( ) ) )
3373
+ transmute ( simd_saturating_sub ( a. as_u8x32 ( ) , b. as_u8x32 ( ) ) )
3374
3374
}
3375
3375
3376
3376
/// Unpacks and interleave 8-bit integers from the high half of each
@@ -3810,14 +3810,6 @@ extern "C" {
3810
3810
fn pabsw ( a : i16x16 ) -> u16x16 ;
3811
3811
#[ link_name = "llvm.x86.avx2.pabs.d" ]
3812
3812
fn pabsd ( a : i32x8 ) -> u32x8 ;
3813
- #[ link_name = "llvm.x86.avx2.padds.b" ]
3814
- fn paddsb ( a : i8x32 , b : i8x32 ) -> i8x32 ;
3815
- #[ link_name = "llvm.x86.avx2.padds.w" ]
3816
- fn paddsw ( a : i16x16 , b : i16x16 ) -> i16x16 ;
3817
- #[ link_name = "llvm.x86.avx2.paddus.b" ]
3818
- fn paddusb ( a : u8x32 , b : u8x32 ) -> u8x32 ;
3819
- #[ link_name = "llvm.x86.avx2.paddus.w" ]
3820
- fn paddusw ( a : u16x16 , b : u16x16 ) -> u16x16 ;
3821
3813
#[ link_name = "llvm.x86.avx2.pavg.b" ]
3822
3814
fn pavgb ( a : u8x32 , b : u8x32 ) -> u8x32 ;
3823
3815
#[ link_name = "llvm.x86.avx2.pavg.w" ]
@@ -3962,14 +3954,6 @@ extern "C" {
3962
3954
fn psrlvq ( a : i64x2 , count : i64x2 ) -> i64x2 ;
3963
3955
#[ link_name = "llvm.x86.avx2.psrlv.q.256" ]
3964
3956
fn psrlvq256 ( a : i64x4 , count : i64x4 ) -> i64x4 ;
3965
- #[ link_name = "llvm.x86.avx2.psubs.b" ]
3966
- fn psubsb ( a : i8x32 , b : i8x32 ) -> i8x32 ;
3967
- #[ link_name = "llvm.x86.avx2.psubs.w" ]
3968
- fn psubsw ( a : i16x16 , b : i16x16 ) -> i16x16 ;
3969
- #[ link_name = "llvm.x86.avx2.psubus.b" ]
3970
- fn psubusb ( a : u8x32 , b : u8x32 ) -> u8x32 ;
3971
- #[ link_name = "llvm.x86.avx2.psubus.w" ]
3972
- fn psubusw ( a : u16x16 , b : u16x16 ) -> u16x16 ;
3973
3957
#[ link_name = "llvm.x86.avx2.pshuf.b" ]
3974
3958
fn pshufb ( a : u8x32 , b : u8x32 ) -> u8x32 ;
3975
3959
#[ link_name = "llvm.x86.avx2.permd" ]
0 commit comments