simdpp::move16_l, move8_l, move4_l, move2_l

From libsimdpp-docs
template<unsigned shift, unsigned N, class V1>
Ret<N, _DETAIL_> move16_l( const any_vec8<N,V1>& a );
template<unsigned shift, unsigned N, class V1>
Ret<N, _DETAIL_> move8_l( const any_vec16<N,V1>& a );
template<unsigned shift, unsigned N, class V1>
Ret<N, _DETAIL_> move4_l( const any_vec32<N,V1>& a );
template<unsigned shift, unsigned N, class V1>
Ret<N, _DETAIL_> move2_l( const any_vec64<N,V1>& a );

Moves elements within the vector to left (towards the 0-th element) shifting in zeros. Each 128-bit lane within vectors is processed separately.

The return vector type is governed by the expression promotion rules.

Parameters[edit]

a - source vector

Return value[edit]

A vector expression.

Equivalent operation[edit]

For the any_vec32 case:

shift: pos:  0  1  2  3
0      r = [ a0 a1 a2 a3 ]
1      r = [ a1 a2 a3 0  ]
2      r = [ a2 a3 0  0  ]
3      r = [ a3 0  0  0  ]
4      r = [ 0  0  0  0  ]

See also[edit]