@@ -48,6 +48,24 @@ fn rotate() {
48
48
assert_eq ! ( a. rotate_elements_right:: <5 >( ) . to_array( ) , [ 4 , 1 , 2 , 3 ] ) ;
49
49
}
50
50
51
+ #[ test]
52
+ #[ cfg_attr( target_arch = "wasm32" , wasm_bindgen_test) ]
53
+ fn shift ( ) {
54
+ let a = Simd :: from_array ( [ 1 , 2 , 3 , 4 ] ) ;
55
+ assert_eq ! ( a. shift_elements_left:: <0 >( ) . to_array( ) , [ 1 , 2 , 3 , 4 ] ) ;
56
+ assert_eq ! ( a. shift_elements_left:: <1 >( ) . to_array( ) , [ 2 , 3 , 4 , 0 ] ) ;
57
+ assert_eq ! ( a. shift_elements_left:: <2 >( ) . to_array( ) , [ 3 , 4 , 0 , 0 ] ) ;
58
+ assert_eq ! ( a. shift_elements_left:: <3 >( ) . to_array( ) , [ 4 , 0 , 0 , 0 ] ) ;
59
+ assert_eq ! ( a. shift_elements_left:: <4 >( ) . to_array( ) , [ 0 , 0 , 0 , 0 ] ) ;
60
+ assert_eq ! ( a. shift_elements_left:: <5 >( ) . to_array( ) , [ 0 , 0 , 0 , 0 ] ) ;
61
+ assert_eq ! ( a. shift_elements_right:: <0 >( ) . to_array( ) , [ 1 , 2 , 3 , 4 ] ) ;
62
+ assert_eq ! ( a. shift_elements_right:: <1 >( ) . to_array( ) , [ 0 , 1 , 2 , 3 ] ) ;
63
+ assert_eq ! ( a. shift_elements_right:: <2 >( ) . to_array( ) , [ 0 , 0 , 1 , 2 ] ) ;
64
+ assert_eq ! ( a. shift_elements_right:: <3 >( ) . to_array( ) , [ 0 , 0 , 0 , 1 ] ) ;
65
+ assert_eq ! ( a. shift_elements_right:: <4 >( ) . to_array( ) , [ 0 , 0 , 0 , 0 ] ) ;
66
+ assert_eq ! ( a. shift_elements_right:: <5 >( ) . to_array( ) , [ 0 , 0 , 0 , 0 ] ) ;
67
+ }
68
+
51
69
#[ test]
52
70
#[ cfg_attr( target_arch = "wasm32" , wasm_bindgen_test) ]
53
71
fn interleave ( ) {
0 commit comments