我试图通过阅读Intel Intrinsics Guide来开始使用AVX512内部函数,但到目前为止,我发现它没有定义用于解释的命名数据类型或伪代码语法。如果没有这样的定义,所谓的指南根本就不是我的指南。
例如,如果我查找函数_mm512_slli_epi32 (__m512i a, unsigned int imm8),该函数接受打包的32位整数的向量a并对其执行某些操作,则指南说明结果存储在名为dst (未定义)的内容中,操作如下所示。
FOR j := 0 to 15
i := j*32
IF imm8[7:0] > 31
dst[i+31:i] := 0
ELSE
dst[i+31:i] := ZeroExtend32(a[i+31:i] << imm8[7:0])
FI
ENDFOR
dst[MAX:512] := 0没有适当的文档,我到底应该从这件事中得到什么?甚至没有指向所使用语法的文档的链接。
请帮帮忙。我在找一本"Intel Intrinsics Guide“指南。或者,我也希望能有任何关于英特尔内部结构的教学介绍。This answer帮不上忙。谢谢!
发布于 2020-07-01 01:39:28
英特尔调用dst作为指令的返回值。总的来说,该指令是这样做的:
inline std::array<int, 16> slli( std::array<int, 16> a, int imm )
{
for( int& tmp : a )
tmp = ( imm > 31 ) ? 0 : tmp << imm;
return a;
}这是我的文章:http://const.me/articles/simd/simd.pdf,我希望有一个很好的介绍。
https://stackoverflow.com/questions/62349373
复制相似问题