@@ -769,10 +769,27 @@ pub unsafe fn i8x16_shuffle<
769769 static_assert ! ( I13 : usize where I13 < 32 ) ;
770770 static_assert ! ( I14 : usize where I14 < 32 ) ;
771771 static_assert ! ( I15 : usize where I15 < 32 ) ;
772- let shuf = simd_shuffle16 :: < simd :: u8x16 , simd:: u8x16 > (
772+ let shuf: simd:: u8x16 = simd_shuffle16 ! (
773773 a. as_u8x16( ) ,
774774 b. as_u8x16( ) ,
775- [
775+ <
776+ const I0 : usize ,
777+ const I1 : usize ,
778+ const I2 : usize ,
779+ const I3 : usize ,
780+ const I4 : usize ,
781+ const I5 : usize ,
782+ const I6 : usize ,
783+ const I7 : usize ,
784+ const I8 : usize ,
785+ const I9 : usize ,
786+ const I10 : usize ,
787+ const I11 : usize ,
788+ const I12 : usize ,
789+ const I13 : usize ,
790+ const I14 : usize ,
791+ const I15 : usize ,
792+ > [
776793 I0 as u32 , I1 as u32 , I2 as u32 , I3 as u32 , I4 as u32 , I5 as u32 , I6 as u32 , I7 as u32 ,
777794 I8 as u32 , I9 as u32 , I10 as u32 , I11 as u32 , I12 as u32 , I13 as u32 , I14 as u32 ,
778795 I15 as u32 ,
@@ -825,10 +842,19 @@ pub unsafe fn i16x8_shuffle<
825842 static_assert ! ( I5 : usize where I5 < 16 ) ;
826843 static_assert ! ( I6 : usize where I6 < 16 ) ;
827844 static_assert ! ( I7 : usize where I7 < 16 ) ;
828- let shuf = simd_shuffle8 :: < simd :: u16x8 , simd:: u16x8 > (
845+ let shuf: simd:: u16x8 = simd_shuffle8 ! (
829846 a. as_u16x8( ) ,
830847 b. as_u16x8( ) ,
831- [
848+ <
849+ const I0 : usize ,
850+ const I1 : usize ,
851+ const I2 : usize ,
852+ const I3 : usize ,
853+ const I4 : usize ,
854+ const I5 : usize ,
855+ const I6 : usize ,
856+ const I7 : usize ,
857+ > [
832858 I0 as u32 , I1 as u32 , I2 as u32 , I3 as u32 , I4 as u32 , I5 as u32 , I6 as u32 , I7 as u32 ,
833859 ] ,
834860 ) ;
@@ -854,10 +880,10 @@ pub unsafe fn i32x4_shuffle<const I0: usize, const I1: usize, const I2: usize, c
854880 static_assert ! ( I1 : usize where I1 < 8 ) ;
855881 static_assert ! ( I2 : usize where I2 < 8 ) ;
856882 static_assert ! ( I3 : usize where I3 < 8 ) ;
857- let shuf = simd_shuffle4 :: < simd :: u32x4 , simd:: u32x4 > (
883+ let shuf: simd:: u32x4 = simd_shuffle4 ! (
858884 a. as_u32x4( ) ,
859885 b. as_u32x4( ) ,
860- [ I0 as u32 , I1 as u32 , I2 as u32 , I3 as u32 ] ,
886+ < const I0 : usize , const I1 : usize , const I2 : usize , const I3 : usize > [ I0 as u32 , I1 as u32 , I2 as u32 , I3 as u32 ] ,
861887 ) ;
862888 transmute ( shuf)
863889}
@@ -876,10 +902,10 @@ pub unsafe fn i32x4_shuffle<const I0: usize, const I1: usize, const I2: usize, c
876902pub unsafe fn i64x2_shuffle < const I0 : usize , const I1 : usize > ( a : v128 , b : v128 ) -> v128 {
877903 static_assert ! ( I0 : usize where I0 < 4 ) ;
878904 static_assert ! ( I1 : usize where I1 < 4 ) ;
879- let shuf = simd_shuffle2 :: < simd :: u64x2 , simd:: u64x2 > (
905+ let shuf: simd:: u64x2 = simd_shuffle2 ! (
880906 a. as_u64x2( ) ,
881907 b. as_u64x2( ) ,
882- [ I0 as u32 , I1 as u32 ] ,
908+ < const I0 : usize , const I1 : usize > [ I0 as u32 , I1 as u32 ] ,
883909 ) ;
884910 transmute ( shuf)
885911}
@@ -2288,7 +2314,7 @@ pub unsafe fn u16x8_narrow_i32x4(a: v128, b: v128) -> v128 {
22882314#[ target_feature( enable = "simd128" ) ]
22892315#[ doc( alias( "i16x8.extend_low_i8x16_s" ) ) ]
22902316pub unsafe fn i16x8_extend_low_i8x16 ( a : v128 ) -> v128 {
2291- transmute ( simd_cast :: < _ , simd:: i16x8 > ( simd_shuffle8 :: < _ , simd:: i8x8 > (
2317+ transmute ( simd_cast :: < simd:: i8x8 , simd:: i16x8 > ( simd_shuffle8 ! (
22922318 a. as_i8x16( ) ,
22932319 a. as_i8x16( ) ,
22942320 [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ,
@@ -2302,7 +2328,7 @@ pub unsafe fn i16x8_extend_low_i8x16(a: v128) -> v128 {
23022328#[ target_feature( enable = "simd128" ) ]
23032329#[ doc( alias( "i16x8.extend_high_i8x16_s" ) ) ]
23042330pub unsafe fn i16x8_extend_high_i8x16 ( a : v128 ) -> v128 {
2305- transmute ( simd_cast :: < _ , simd:: i16x8 > ( simd_shuffle8 :: < _ , simd:: i8x8 > (
2331+ transmute ( simd_cast :: < simd:: i8x8 , simd:: i16x8 > ( simd_shuffle8 ! (
23062332 a. as_i8x16( ) ,
23072333 a. as_i8x16( ) ,
23082334 [ 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ] ,
@@ -2316,7 +2342,7 @@ pub unsafe fn i16x8_extend_high_i8x16(a: v128) -> v128 {
23162342#[ target_feature( enable = "simd128" ) ]
23172343#[ doc( alias( "i16x8.extend_low_i8x16_u" ) ) ]
23182344pub unsafe fn i16x8_extend_low_u8x16 ( a : v128 ) -> v128 {
2319- transmute ( simd_cast :: < _ , simd:: u16x8 > ( simd_shuffle8 :: < _ , simd:: u8x8 > (
2345+ transmute ( simd_cast :: < simd:: u8x8 , simd:: u16x8 > ( simd_shuffle8 ! (
23202346 a. as_u8x16( ) ,
23212347 a. as_u8x16( ) ,
23222348 [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ,
@@ -2330,7 +2356,7 @@ pub unsafe fn i16x8_extend_low_u8x16(a: v128) -> v128 {
23302356#[ target_feature( enable = "simd128" ) ]
23312357#[ doc( alias( "i16x8.extend_high_i8x16_u" ) ) ]
23322358pub unsafe fn i16x8_extend_high_u8x16 ( a : v128 ) -> v128 {
2333- transmute ( simd_cast :: < _ , simd:: u16x8 > ( simd_shuffle8 :: < _ , simd:: u8x8 > (
2359+ transmute ( simd_cast :: < simd:: u8x8 , simd:: u16x8 > ( simd_shuffle8 ! (
23342360 a. as_u8x16( ) ,
23352361 a. as_u8x16( ) ,
23362362 [ 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ] ,
@@ -2618,9 +2644,11 @@ pub unsafe fn i32x4_bitmask(a: v128) -> i32 {
26182644#[ target_feature( enable = "simd128" ) ]
26192645#[ doc( alias( "i32x4.extend_low_i16x8_s" ) ) ]
26202646pub unsafe fn i32x4_extend_low_i16x8 ( a : v128 ) -> v128 {
2621- transmute ( simd_cast :: < _ , simd:: i32x4 > (
2622- simd_shuffle4 :: < _ , simd:: i16x4 > ( a. as_i16x8 ( ) , a. as_i16x8 ( ) , [ 0 , 1 , 2 , 3 ] ) ,
2623- ) )
2647+ transmute ( simd_cast :: < simd:: i16x4 , simd:: i32x4 > ( simd_shuffle4 ! (
2648+ a. as_i16x8( ) ,
2649+ a. as_i16x8( ) ,
2650+ [ 0 , 1 , 2 , 3 ]
2651+ ) ) )
26242652}
26252653
26262654/// Converts high half of the smaller lane vector to a larger lane
@@ -2630,9 +2658,11 @@ pub unsafe fn i32x4_extend_low_i16x8(a: v128) -> v128 {
26302658#[ target_feature( enable = "simd128" ) ]
26312659#[ doc( alias( "i32x4.extend_high_i16x8_s" ) ) ]
26322660pub unsafe fn i32x4_extend_high_i16x8 ( a : v128 ) -> v128 {
2633- transmute ( simd_cast :: < _ , simd:: i32x4 > (
2634- simd_shuffle4 :: < _ , simd:: i16x4 > ( a. as_i16x8 ( ) , a. as_i16x8 ( ) , [ 4 , 5 , 6 , 7 ] ) ,
2635- ) )
2661+ transmute ( simd_cast :: < simd:: i16x4 , simd:: i32x4 > ( simd_shuffle4 ! (
2662+ a. as_i16x8( ) ,
2663+ a. as_i16x8( ) ,
2664+ [ 4 , 5 , 6 , 7 ]
2665+ ) ) )
26362666}
26372667
26382668/// Converts low half of the smaller lane vector to a larger lane
@@ -2642,9 +2672,11 @@ pub unsafe fn i32x4_extend_high_i16x8(a: v128) -> v128 {
26422672#[ target_feature( enable = "simd128" ) ]
26432673#[ doc( alias( "i32x4.extend_low_i16x8_u" ) ) ]
26442674pub unsafe fn i32x4_extend_low_u16x8 ( a : v128 ) -> v128 {
2645- transmute ( simd_cast :: < _ , simd:: u32x4 > (
2646- simd_shuffle4 :: < _ , simd:: u16x4 > ( a. as_u16x8 ( ) , a. as_u16x8 ( ) , [ 0 , 1 , 2 , 3 ] ) ,
2647- ) )
2675+ transmute ( simd_cast :: < simd:: u16x4 , simd:: u32x4 > ( simd_shuffle4 ! (
2676+ a. as_u16x8( ) ,
2677+ a. as_u16x8( ) ,
2678+ [ 0 , 1 , 2 , 3 ]
2679+ ) ) )
26482680}
26492681
26502682/// Converts high half of the smaller lane vector to a larger lane
@@ -2654,9 +2686,11 @@ pub unsafe fn i32x4_extend_low_u16x8(a: v128) -> v128 {
26542686#[ target_feature( enable = "simd128" ) ]
26552687#[ doc( alias( "i32x4.extend_high_i16x8_u" ) ) ]
26562688pub unsafe fn i32x4_extend_high_u16x8 ( a : v128 ) -> v128 {
2657- transmute ( simd_cast :: < _ , simd:: u32x4 > (
2658- simd_shuffle4 :: < _ , simd:: u16x4 > ( a. as_u16x8 ( ) , a. as_u16x8 ( ) , [ 4 , 5 , 6 , 7 ] ) ,
2659- ) )
2689+ transmute ( simd_cast :: < simd:: u16x4 , simd:: u32x4 > ( simd_shuffle4 ! (
2690+ a. as_u16x8( ) ,
2691+ a. as_u16x8( ) ,
2692+ [ 4 , 5 , 6 , 7 ]
2693+ ) ) )
26602694}
26612695
26622696/// Shifts each lane to the left by the specified number of bits.
@@ -2881,9 +2915,11 @@ pub unsafe fn i64x2_bitmask(a: v128) -> i32 {
28812915#[ target_feature( enable = "simd128" ) ]
28822916#[ doc( alias( "i64x2.extend_low_i32x4_s" ) ) ]
28832917pub unsafe fn i64x2_extend_low_i32x4 ( a : v128 ) -> v128 {
2884- transmute ( simd_cast :: < _ , simd:: i64x2 > (
2885- simd_shuffle2 :: < _ , simd:: i32x2 > ( a. as_i32x4 ( ) , a. as_i32x4 ( ) , [ 0 , 1 ] ) ,
2886- ) )
2918+ transmute ( simd_cast :: < simd:: i32x2 , simd:: i64x2 > ( simd_shuffle2 ! (
2919+ a. as_i32x4( ) ,
2920+ a. as_i32x4( ) ,
2921+ [ 0 , 1 ]
2922+ ) ) )
28872923}
28882924
28892925/// Converts high half of the smaller lane vector to a larger lane
@@ -2893,9 +2929,11 @@ pub unsafe fn i64x2_extend_low_i32x4(a: v128) -> v128 {
28932929#[ target_feature( enable = "simd128" ) ]
28942930#[ doc( alias( "i64x2.extend_high_i32x4_s" ) ) ]
28952931pub unsafe fn i64x2_extend_high_i32x4 ( a : v128 ) -> v128 {
2896- transmute ( simd_cast :: < _ , simd:: i64x2 > (
2897- simd_shuffle2 :: < _ , simd:: i32x2 > ( a. as_i32x4 ( ) , a. as_i32x4 ( ) , [ 2 , 3 ] ) ,
2898- ) )
2932+ transmute ( simd_cast :: < simd:: i32x2 , simd:: i64x2 > ( simd_shuffle2 ! (
2933+ a. as_i32x4( ) ,
2934+ a. as_i32x4( ) ,
2935+ [ 2 , 3 ]
2936+ ) ) )
28992937}
29002938
29012939/// Converts low half of the smaller lane vector to a larger lane
@@ -2905,9 +2943,11 @@ pub unsafe fn i64x2_extend_high_i32x4(a: v128) -> v128 {
29052943#[ target_feature( enable = "simd128" ) ]
29062944#[ doc( alias( "i64x2.extend_low_i32x4_u" ) ) ]
29072945pub unsafe fn i64x2_extend_low_u32x4 ( a : v128 ) -> v128 {
2908- transmute ( simd_cast :: < _ , simd:: i64x2 > (
2909- simd_shuffle2 :: < _ , simd:: u32x2 > ( a. as_u32x4 ( ) , a. as_u32x4 ( ) , [ 0 , 1 ] ) ,
2910- ) )
2946+ transmute ( simd_cast :: < simd:: u32x2 , simd:: i64x2 > ( simd_shuffle2 ! (
2947+ a. as_u32x4( ) ,
2948+ a. as_u32x4( ) ,
2949+ [ 0 , 1 ]
2950+ ) ) )
29112951}
29122952
29132953/// Converts high half of the smaller lane vector to a larger lane
@@ -2917,9 +2957,11 @@ pub unsafe fn i64x2_extend_low_u32x4(a: v128) -> v128 {
29172957#[ target_feature( enable = "simd128" ) ]
29182958#[ doc( alias( "i64x2.extend_high_i32x4_u" ) ) ]
29192959pub unsafe fn i64x2_extend_high_u32x4 ( a : v128 ) -> v128 {
2920- transmute ( simd_cast :: < _ , simd:: i64x2 > (
2921- simd_shuffle2 :: < _ , simd:: u32x2 > ( a. as_u32x4 ( ) , a. as_u32x4 ( ) , [ 2 , 3 ] ) ,
2922- ) )
2960+ transmute ( simd_cast :: < simd:: u32x2 , simd:: i64x2 > ( simd_shuffle2 ! (
2961+ a. as_u32x4( ) ,
2962+ a. as_u32x4( ) ,
2963+ [ 2 , 3 ]
2964+ ) ) )
29232965}
29242966
29252967/// Shifts each lane to the left by the specified number of bits.
@@ -3386,7 +3428,7 @@ pub unsafe fn f32x4_convert_u32x4(a: v128) -> v128 {
33863428#[ target_feature( enable = "simd128" ) ]
33873429#[ doc( alias( "i32x4.trunc_sat_f64x2_s_zero" ) ) ]
33883430pub unsafe fn i32x4_trunc_sat_f64x2_zero ( a : v128 ) -> v128 {
3389- transmute ( simd_shuffle4 :: < simd:: i32x2 , simd :: i32x4 > (
3431+ transmute :: < simd:: i32x4 , v128 > ( simd_shuffle4 ! (
33903432 llvm_i32x2_trunc_sat_f64x2_s( a. as_f64x2( ) ) ,
33913433 simd:: i32x2:: splat( 0 ) ,
33923434 [ 0 , 1 , 2 , 3 ] ,
@@ -3406,7 +3448,7 @@ pub unsafe fn i32x4_trunc_sat_f64x2_zero(a: v128) -> v128 {
34063448#[ target_feature( enable = "simd128" ) ]
34073449#[ doc( alias( "i32x4.trunc_sat_f64x2_u_zero" ) ) ]
34083450pub unsafe fn u32x4_trunc_sat_f64x2_zero ( a : v128 ) -> v128 {
3409- transmute ( simd_shuffle4 :: < simd:: i32x2 , simd :: i32x4 > (
3451+ transmute :: < simd:: i32x4 , v128 > ( simd_shuffle4 ! (
34103452 llvm_i32x2_trunc_sat_f64x2_u( a. as_f64x2( ) ) ,
34113453 simd:: i32x2:: splat( 0 ) ,
34123454 [ 0 , 1 , 2 , 3 ] ,
@@ -3419,10 +3461,7 @@ pub unsafe fn u32x4_trunc_sat_f64x2_zero(a: v128) -> v128 {
34193461#[ target_feature( enable = "simd128" ) ]
34203462#[ doc( alias( "f64x2.convert_low_i32x4_s" ) ) ]
34213463pub unsafe fn f64x2_convert_low_i32x4 ( a : v128 ) -> v128 {
3422- transmute ( simd_cast :: < _ , simd:: f64x2 > ( simd_shuffle2 :: <
3423- simd:: i32x4 ,
3424- simd:: i32x2 ,
3425- > (
3464+ transmute ( simd_cast :: < simd:: i32x2 , simd:: f64x2 > ( simd_shuffle2 ! (
34263465 a. as_i32x4( ) ,
34273466 a. as_i32x4( ) ,
34283467 [ 0 , 1 ] ,
@@ -3435,10 +3474,7 @@ pub unsafe fn f64x2_convert_low_i32x4(a: v128) -> v128 {
34353474#[ target_feature( enable = "simd128" ) ]
34363475#[ doc( alias( "f64x2.convert_low_i32x4_u" ) ) ]
34373476pub unsafe fn f64x2_convert_low_u32x4 ( a : v128 ) -> v128 {
3438- transmute ( simd_cast :: < _ , simd:: f64x2 > ( simd_shuffle2 :: <
3439- simd:: u32x4 ,
3440- simd:: u32x2 ,
3441- > (
3477+ transmute ( simd_cast :: < simd:: u32x2 , simd:: f64x2 > ( simd_shuffle2 ! (
34423478 a. as_u32x4( ) ,
34433479 a. as_u32x4( ) ,
34443480 [ 0 , 1 ] ,
0 commit comments