VEC_BPERM (ARG1, ARG2)

用途

按指定顺序从四字或每个双字元素中收集多达 16 个 1 位值,并根据元素类型将它们按指定顺序放置在结果向量寄存器的最左侧双字的最右侧 16 位中,或者放置在结果向量寄存器的每个双字的最右侧 8 位中,结果的其余部分设置为 0。

元素函数

参数类型和属性

ARG1
INTENT(IN) UNSIGNED(1)UNSIGNED(8) 向量
ARG2
INTENT(IN) UNSIGNED(1) 向量

结果类型和属性

下表描述了结果的类型和函数自变量。

表 1. 返回值和函数参数的类型
结果 ARG1 ARG2
UNSIGNED(1) 向量 INTENT(IN) UNSIGNED(1) 向量1 INTENT(IN) UNSIGNED(1) 向量1
UNSIGNED(8) 向量 INTENT(IN) UNSIGNED(8) 向量2 INTENT(IN) UNSIGNED(1) 向量2
备注信息:
  1. 仅当以下情况时, 内部过程 的自变量的数据类型组合才有效:-qarch将目标设置为 POWER8 或更高处理器
  2. 仅当以下情况时, 内部过程 的自变量的数据类型组合才有效:-qarch将目标设置为 POWER9 或更高处理器

结果值

  • ARG1 的数据类型为 UNSIGNED(1) vector时,仅当 -qarch 设置为目标 POWER8 或更高级别的处理器时才有效:
    Suppose (0<=<16) and J. 让 i 表示 ARG2的元素索引,让 j 表示 ARG2的元素 i 的字节值:
    • 如果 j> =128 ,那么 doubleword 0 的位 48+i 设置为 0。
    • If J<128, bit 48+i of the result is set to the value of bit J of ARG1.
    • 所有其他位都设置为 0。
  • ARG1 的数据类型为 UNSIGNED(8) vector时,仅当 -qarch 设置为目标 POWER9 或更高版本的处理器时才有效:
    Suppose (0<=<2), J(0<=J<8) and . 让 i 表示 ARG1的双字元素索引; 让 j 表示 ARG2的元素索引; 让 k 表示 ARG2的元素 j 的字节值:
    • 如果 k> =64 ,那么元素 i 的位 56+j 设置为 0。
    • If <64, bit 56+j of element is set to the value of bit of element of ARG1.
    • 所有其他位都设置为 0。