@@ -769,10 +769,27 @@ pub unsafe fn i8x16_shuffle<
769
769
static_assert ! ( I13 : usize where I13 < 32 ) ;
770
770
static_assert ! ( I14 : usize where I14 < 32 ) ;
771
771
static_assert ! ( I15 : usize where I15 < 32 ) ;
772
- let shuf = simd_shuffle16 :: < simd :: u8x16 , simd:: u8x16 > (
772
+ let shuf: simd:: u8x16 = simd_shuffle16 ! (
773
773
a. as_u8x16( ) ,
774
774
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
+ > [
776
793
I0 as u32 , I1 as u32 , I2 as u32 , I3 as u32 , I4 as u32 , I5 as u32 , I6 as u32 , I7 as u32 ,
777
794
I8 as u32 , I9 as u32 , I10 as u32 , I11 as u32 , I12 as u32 , I13 as u32 , I14 as u32 ,
778
795
I15 as u32 ,
@@ -825,10 +842,19 @@ pub unsafe fn i16x8_shuffle<
825
842
static_assert ! ( I5 : usize where I5 < 16 ) ;
826
843
static_assert ! ( I6 : usize where I6 < 16 ) ;
827
844
static_assert ! ( I7 : usize where I7 < 16 ) ;
828
- let shuf = simd_shuffle8 :: < simd :: u16x8 , simd:: u16x8 > (
845
+ let shuf: simd:: u16x8 = simd_shuffle8 ! (
829
846
a. as_u16x8( ) ,
830
847
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
+ > [
832
858
I0 as u32 , I1 as u32 , I2 as u32 , I3 as u32 , I4 as u32 , I5 as u32 , I6 as u32 , I7 as u32 ,
833
859
] ,
834
860
) ;
@@ -854,10 +880,10 @@ pub unsafe fn i32x4_shuffle<const I0: usize, const I1: usize, const I2: usize, c
854
880
static_assert ! ( I1 : usize where I1 < 8 ) ;
855
881
static_assert ! ( I2 : usize where I2 < 8 ) ;
856
882
static_assert ! ( I3 : usize where I3 < 8 ) ;
857
- let shuf = simd_shuffle4 :: < simd :: u32x4 , simd:: u32x4 > (
883
+ let shuf: simd:: u32x4 = simd_shuffle4 ! (
858
884
a. as_u32x4( ) ,
859
885
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 ] ,
861
887
) ;
862
888
transmute ( shuf)
863
889
}
@@ -876,10 +902,10 @@ pub unsafe fn i32x4_shuffle<const I0: usize, const I1: usize, const I2: usize, c
876
902
pub unsafe fn i64x2_shuffle < const I0 : usize , const I1 : usize > ( a : v128 , b : v128 ) -> v128 {
877
903
static_assert ! ( I0 : usize where I0 < 4 ) ;
878
904
static_assert ! ( I1 : usize where I1 < 4 ) ;
879
- let shuf = simd_shuffle2 :: < simd :: u64x2 , simd:: u64x2 > (
905
+ let shuf: simd:: u64x2 = simd_shuffle2 ! (
880
906
a. as_u64x2( ) ,
881
907
b. as_u64x2( ) ,
882
- [ I0 as u32 , I1 as u32 ] ,
908
+ < const I0 : usize , const I1 : usize > [ I0 as u32 , I1 as u32 ] ,
883
909
) ;
884
910
transmute ( shuf)
885
911
}
@@ -2288,7 +2314,7 @@ pub unsafe fn u16x8_narrow_i32x4(a: v128, b: v128) -> v128 {
2288
2314
#[ target_feature( enable = "simd128" ) ]
2289
2315
#[ doc( alias( "i16x8.extend_low_i8x16_s" ) ) ]
2290
2316
pub 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 ! (
2292
2318
a. as_i8x16( ) ,
2293
2319
a. as_i8x16( ) ,
2294
2320
[ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ,
@@ -2302,7 +2328,7 @@ pub unsafe fn i16x8_extend_low_i8x16(a: v128) -> v128 {
2302
2328
#[ target_feature( enable = "simd128" ) ]
2303
2329
#[ doc( alias( "i16x8.extend_high_i8x16_s" ) ) ]
2304
2330
pub 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 ! (
2306
2332
a. as_i8x16( ) ,
2307
2333
a. as_i8x16( ) ,
2308
2334
[ 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ] ,
@@ -2316,7 +2342,7 @@ pub unsafe fn i16x8_extend_high_i8x16(a: v128) -> v128 {
2316
2342
#[ target_feature( enable = "simd128" ) ]
2317
2343
#[ doc( alias( "i16x8.extend_low_i8x16_u" ) ) ]
2318
2344
pub 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 ! (
2320
2346
a. as_u8x16( ) ,
2321
2347
a. as_u8x16( ) ,
2322
2348
[ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ,
@@ -2330,7 +2356,7 @@ pub unsafe fn i16x8_extend_low_u8x16(a: v128) -> v128 {
2330
2356
#[ target_feature( enable = "simd128" ) ]
2331
2357
#[ doc( alias( "i16x8.extend_high_i8x16_u" ) ) ]
2332
2358
pub 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 ! (
2334
2360
a. as_u8x16( ) ,
2335
2361
a. as_u8x16( ) ,
2336
2362
[ 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ] ,
@@ -2618,9 +2644,11 @@ pub unsafe fn i32x4_bitmask(a: v128) -> i32 {
2618
2644
#[ target_feature( enable = "simd128" ) ]
2619
2645
#[ doc( alias( "i32x4.extend_low_i16x8_s" ) ) ]
2620
2646
pub 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_shuffle ! (
2648
+ a. as_i16x8( ) ,
2649
+ a. as_i16x8( ) ,
2650
+ [ 0 , 1 , 2 , 3 ]
2651
+ ) ) )
2624
2652
}
2625
2653
2626
2654
/// 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 {
2630
2658
#[ target_feature( enable = "simd128" ) ]
2631
2659
#[ doc( alias( "i32x4.extend_high_i16x8_s" ) ) ]
2632
2660
pub 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
+ ) ) )
2636
2666
}
2637
2667
2638
2668
/// 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 {
2642
2672
#[ target_feature( enable = "simd128" ) ]
2643
2673
#[ doc( alias( "i32x4.extend_low_i16x8_u" ) ) ]
2644
2674
pub 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
+ ) ) )
2648
2680
}
2649
2681
2650
2682
/// 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 {
2654
2686
#[ target_feature( enable = "simd128" ) ]
2655
2687
#[ doc( alias( "i32x4.extend_high_i16x8_u" ) ) ]
2656
2688
pub 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
+ ) ) )
2660
2694
}
2661
2695
2662
2696
/// Shifts each lane to the left by the specified number of bits.
@@ -2881,9 +2915,11 @@ pub unsafe fn i64x2_bitmask(a: v128) -> i32 {
2881
2915
#[ target_feature( enable = "simd128" ) ]
2882
2916
#[ doc( alias( "i64x2.extend_low_i32x4_s" ) ) ]
2883
2917
pub 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
+ ) ) )
2887
2923
}
2888
2924
2889
2925
/// 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 {
2893
2929
#[ target_feature( enable = "simd128" ) ]
2894
2930
#[ doc( alias( "i64x2.extend_high_i32x4_s" ) ) ]
2895
2931
pub 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
+ ) ) )
2899
2937
}
2900
2938
2901
2939
/// 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 {
2905
2943
#[ target_feature( enable = "simd128" ) ]
2906
2944
#[ doc( alias( "i64x2.extend_low_i32x4_u" ) ) ]
2907
2945
pub 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
+ ) ) )
2911
2951
}
2912
2952
2913
2953
/// 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 {
2917
2957
#[ target_feature( enable = "simd128" ) ]
2918
2958
#[ doc( alias( "i64x2.extend_high_i32x4_u" ) ) ]
2919
2959
pub 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
+ ) ) )
2923
2965
}
2924
2966
2925
2967
/// 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 {
3386
3428
#[ target_feature( enable = "simd128" ) ]
3387
3429
#[ doc( alias( "i32x4.trunc_sat_f64x2_s_zero" ) ) ]
3388
3430
pub 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 ! (
3390
3432
llvm_i32x2_trunc_sat_f64x2_s( a. as_f64x2( ) ) ,
3391
3433
simd:: i32x2:: splat( 0 ) ,
3392
3434
[ 0 , 1 , 2 , 3 ] ,
@@ -3406,7 +3448,7 @@ pub unsafe fn i32x4_trunc_sat_f64x2_zero(a: v128) -> v128 {
3406
3448
#[ target_feature( enable = "simd128" ) ]
3407
3449
#[ doc( alias( "i32x4.trunc_sat_f64x2_u_zero" ) ) ]
3408
3450
pub 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 ! (
3410
3452
llvm_i32x2_trunc_sat_f64x2_u( a. as_f64x2( ) ) ,
3411
3453
simd:: i32x2:: splat( 0 ) ,
3412
3454
[ 0 , 1 , 2 , 3 ] ,
@@ -3419,10 +3461,7 @@ pub unsafe fn u32x4_trunc_sat_f64x2_zero(a: v128) -> v128 {
3419
3461
#[ target_feature( enable = "simd128" ) ]
3420
3462
#[ doc( alias( "f64x2.convert_low_i32x4_s" ) ) ]
3421
3463
pub 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 ! (
3426
3465
a. as_i32x4( ) ,
3427
3466
a. as_i32x4( ) ,
3428
3467
[ 0 , 1 ] ,
@@ -3435,10 +3474,7 @@ pub unsafe fn f64x2_convert_low_i32x4(a: v128) -> v128 {
3435
3474
#[ target_feature( enable = "simd128" ) ]
3436
3475
#[ doc( alias( "f64x2.convert_low_i32x4_u" ) ) ]
3437
3476
pub 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 ! (
3442
3478
a. as_u32x4( ) ,
3443
3479
a. as_u32x4( ) ,
3444
3480
[ 0 , 1 ] ,
0 commit comments