VEC_RLNM(ARG1, ARG2, ARG3)
Purpose
Returns a vector that contains each element of the given vector rotated left and intersected with a mask.
This intrinsic procedure is valid only when -qarch is set to utilize the POWER9™ technology.
Class
Elemental function
Argument type and attributes
- ARG1
- An INTENT(IN) UNSIGNED(4) or UNSIGNED(8) vector
- ARG2
- An INTENT(IN) vector of the same type as ARG1
- ARG3
- An INTENT(IN) vector of the same type as ARG1
Result type and attributes
The result is a vector of the same type as ARG1.
Result value
When VEC_RLNM(ARG1, ARG2, ARG3) is called, each element of ARG1 is rotated left and intersected with a mask.
Each element of ARG2 contains the rotation count for the corresponding element of ARG1. The low-order byte of each element is used, and you need to set other bytes to zero.
Each element of ARG3 contains the mask beginning and the mask end for the corresponding element of ARG1. The mask end is in the low-order byte, the mask beginning is in the next higher byte, and you need to set other bytes to zero.
When the data type of the arguments is UNSIGNED(4) vector, no more than 5 bits of each byte should be set for the rotation or the mask beginning and the end; when the data type is UNSIGNED(8) vector, no more than 6 bits of each byte should be set.