@@ -48,6 +48,24 @@ fn rotate() {
4848 assert_eq ! ( a. rotate_elements_right:: <5 >( ) . to_array( ) , [ 4 , 1 , 2 , 3 ] ) ;
4949}
5050
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+
5169#[ test]
5270#[ cfg_attr( target_arch = "wasm32" , wasm_bindgen_test) ]
5371fn interleave ( ) {
0 commit comments