@@ -515,7 +515,7 @@ pub unsafe fn _mm256_blend_ps<const IMM8: i32>(a: __m256, b: __m256) -> __m256 {
515
515
#[ cfg_attr( test, assert_instr( vblendvpd) ) ]
516
516
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
517
517
pub unsafe fn _mm256_blendv_pd ( a : __m256d , b : __m256d , c : __m256d ) -> __m256d {
518
- let mask: i64x4 = simd_lt ( transmute :: < _ , i64x4 > ( c) , i64x4:: splat ( 0 ) ) ;
518
+ let mask: i64x4 = simd_lt ( transmute :: < _ , i64x4 > ( c) , i64x4:: ZERO ) ;
519
519
transmute ( simd_select ( mask, b. as_f64x4 ( ) , a. as_f64x4 ( ) ) )
520
520
}
521
521
@@ -528,7 +528,7 @@ pub unsafe fn _mm256_blendv_pd(a: __m256d, b: __m256d, c: __m256d) -> __m256d {
528
528
#[ cfg_attr( test, assert_instr( vblendvps) ) ]
529
529
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
530
530
pub unsafe fn _mm256_blendv_ps ( a : __m256 , b : __m256 , c : __m256 ) -> __m256 {
531
- let mask: i32x8 = simd_lt ( transmute :: < _ , i32x8 > ( c) , i32x8:: splat ( 0 ) ) ;
531
+ let mask: i32x8 = simd_lt ( transmute :: < _ , i32x8 > ( c) , i32x8:: ZERO ) ;
532
532
transmute ( simd_select ( mask, b. as_f32x8 ( ) , a. as_f32x8 ( ) ) )
533
533
}
534
534
@@ -983,11 +983,7 @@ pub unsafe fn _mm256_extractf128_pd<const IMM1: i32>(a: __m256d) -> __m128d {
983
983
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
984
984
pub unsafe fn _mm256_extractf128_si256 < const IMM1 : i32 > ( a : __m256i ) -> __m128i {
985
985
static_assert_uimm_bits ! ( IMM1 , 1 ) ;
986
- let dst: i64x2 = simd_shuffle ! (
987
- a. as_i64x4( ) ,
988
- _mm256_undefined_si256( ) . as_i64x4( ) ,
989
- [ [ 0 , 1 ] , [ 2 , 3 ] ] [ IMM1 as usize ] ,
990
- ) ;
986
+ let dst: i64x2 = simd_shuffle ! ( a. as_i64x4( ) , i64x4:: ZERO , [ [ 0 , 1 ] , [ 2 , 3 ] ] [ IMM1 as usize ] , ) ;
991
987
transmute ( dst)
992
988
}
993
989
@@ -2139,7 +2135,7 @@ pub unsafe fn _mm_testnzc_ps(a: __m128, b: __m128) -> i32 {
2139
2135
pub unsafe fn _mm256_movemask_pd ( a : __m256d ) -> i32 {
2140
2136
// Propagate the highest bit to the rest, because simd_bitmask
2141
2137
// requires all-1 or all-0.
2142
- let mask: i64x4 = simd_lt ( transmute ( a) , i64x4:: splat ( 0 ) ) ;
2138
+ let mask: i64x4 = simd_lt ( transmute ( a) , i64x4:: ZERO ) ;
2143
2139
simd_bitmask :: < i64x4 , u8 > ( mask) . into ( )
2144
2140
}
2145
2141
@@ -2155,7 +2151,7 @@ pub unsafe fn _mm256_movemask_pd(a: __m256d) -> i32 {
2155
2151
pub unsafe fn _mm256_movemask_ps ( a : __m256 ) -> i32 {
2156
2152
// Propagate the highest bit to the rest, because simd_bitmask
2157
2153
// requires all-1 or all-0.
2158
- let mask: i32x8 = simd_lt ( transmute ( a) , i32x8:: splat ( 0 ) ) ;
2154
+ let mask: i32x8 = simd_lt ( transmute ( a) , i32x8:: ZERO ) ;
2159
2155
simd_bitmask :: < i32x8 , u8 > ( mask) . into ( )
2160
2156
}
2161
2157
@@ -2167,7 +2163,7 @@ pub unsafe fn _mm256_movemask_ps(a: __m256) -> i32 {
2167
2163
#[ cfg_attr( test, assert_instr( vxorp) ) ]
2168
2164
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
2169
2165
pub unsafe fn _mm256_setzero_pd ( ) -> __m256d {
2170
- _mm256_set1_pd ( 0.0 )
2166
+ const { mem :: zeroed ( ) }
2171
2167
}
2172
2168
2173
2169
/// Returns vector of type __m256 with all elements set to zero.
@@ -2178,7 +2174,7 @@ pub unsafe fn _mm256_setzero_pd() -> __m256d {
2178
2174
#[ cfg_attr( test, assert_instr( vxorps) ) ]
2179
2175
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
2180
2176
pub unsafe fn _mm256_setzero_ps ( ) -> __m256 {
2181
- _mm256_set1_ps ( 0.0 )
2177
+ const { mem :: zeroed ( ) }
2182
2178
}
2183
2179
2184
2180
/// Returns vector of type __m256i with all elements set to zero.
@@ -2189,7 +2185,7 @@ pub unsafe fn _mm256_setzero_ps() -> __m256 {
2189
2185
#[ cfg_attr( test, assert_instr( vxor) ) ]
2190
2186
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
2191
2187
pub unsafe fn _mm256_setzero_si256 ( ) -> __m256i {
2192
- _mm256_set1_epi8 ( 0 )
2188
+ const { mem :: zeroed ( ) }
2193
2189
}
2194
2190
2195
2191
/// Sets packed double-precision (64-bit) floating-point elements in returned
@@ -2722,7 +2718,7 @@ pub unsafe fn _mm256_castpd128_pd256(a: __m128d) -> __m256d {
2722
2718
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
2723
2719
pub unsafe fn _mm256_castsi128_si256 ( a : __m128i ) -> __m256i {
2724
2720
let a = a. as_i64x2 ( ) ;
2725
- let undefined = _mm_undefined_si128 ( ) . as_i64x2 ( ) ;
2721
+ let undefined = i64x2 :: ZERO ;
2726
2722
let dst: i64x4 = simd_shuffle ! ( a, undefined, [ 0 , 1 , 2 , 2 ] ) ;
2727
2723
transmute ( dst)
2728
2724
}
@@ -2752,7 +2748,7 @@ pub unsafe fn _mm256_zextps128_ps256(a: __m128) -> __m256 {
2752
2748
// instructions, thus it has zero latency.
2753
2749
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
2754
2750
pub unsafe fn _mm256_zextsi128_si256 ( a : __m128i ) -> __m256i {
2755
- let b = _mm_setzero_si128 ( ) . as_i64x2 ( ) ;
2751
+ let b = i64x2 :: ZERO ;
2756
2752
let dst: i64x4 = simd_shuffle ! ( a. as_i64x2( ) , b, [ 0 , 1 , 2 , 3 ] ) ;
2757
2753
transmute ( dst)
2758
2754
}
@@ -2782,7 +2778,7 @@ pub unsafe fn _mm256_zextpd128_pd256(a: __m128d) -> __m256d {
2782
2778
// This intrinsic has no corresponding instruction.
2783
2779
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
2784
2780
pub unsafe fn _mm256_undefined_ps ( ) -> __m256 {
2785
- _mm256_set1_ps ( 0.0 )
2781
+ const { mem :: zeroed ( ) }
2786
2782
}
2787
2783
2788
2784
/// Returns vector of type `__m256d` with indeterminate elements.
@@ -2795,7 +2791,7 @@ pub unsafe fn _mm256_undefined_ps() -> __m256 {
2795
2791
// This intrinsic has no corresponding instruction.
2796
2792
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
2797
2793
pub unsafe fn _mm256_undefined_pd ( ) -> __m256d {
2798
- _mm256_set1_pd ( 0.0 )
2794
+ const { mem :: zeroed ( ) }
2799
2795
}
2800
2796
2801
2797
/// Returns vector of type __m256i with with indeterminate elements.
@@ -2808,7 +2804,7 @@ pub unsafe fn _mm256_undefined_pd() -> __m256d {
2808
2804
// This intrinsic has no corresponding instruction.
2809
2805
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
2810
2806
pub unsafe fn _mm256_undefined_si256 ( ) -> __m256i {
2811
- __m256i ( [ 0 , 0 , 0 , 0 ] )
2807
+ const { mem :: zeroed ( ) }
2812
2808
}
2813
2809
2814
2810
/// Sets packed __m256 returned vector with the supplied values.
0 commit comments