3.18. __nv_byte_perm

原型:

i32 @__nv_byte_perm(i32 %x, i32 %y, i32 %z) 

描述:

__nv_byte_perm(x,y,s) 返回一个 32 位整数,该整数由两个输入整数提供的八个输入字节中的四个字节组成xy, 如选择器指定,s.

输入字节的索引如下

 input[0] = x<7:0>   input[1] = x<15:8>
 input[2] = x<23:16> input[3] = x<31:24>
 input[4] = y<7:0>   input[5] = y<15:8>
 input[6] = y<23:16> input[7] = y<31:24>
 

选择器索引如下(选择器的高 16 位未使用)

 selector[0] = s<2:0>  selector[1] = s<6:4>
 selector[2] = s<10:8> selector[3] = s<14:12>
 

返回值

返回值 r 的计算方式为result[n] := input[selector[n]]其中result[n]是 r 的第 n 个字节。

库可用性:

Compute 2.0:是

Compute 3.0:是

Compute 3.5:是