我正在尝试通过阅读《英特尔Intrinsics指南》来开始使用AVX512内部函数,但是到目前为止,我发现它没有定义命名数据类型或用于解释的伪代码语法。没有这样的定义,所谓的指南至少不会指导我。
例如,如果我查找一个函数_mm512_slli_epi32 (__m512i a, unsigned int imm8)
,该函数采用一个a
打包的32位整数的向量并对它执行某些操作,则指南说结果存储在称为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调用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我希望能有个不错的介绍。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句