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.

Note: You cannot specify an all-zero mask.

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.



Voice your opinion on getting help information Ask IBM compiler experts a technical question in the IBM XL compilers forum Reach out to us