英特尔在其Sunny Cove和Tremont内核中添加了伽罗瓦域指令集(GFNI)扩展。特别有趣的是,GFNI是SSE和VEX/AVX编码附带的唯一新的SIMD扩展(除了EVEX/AVX512),以允许它在所有未来的Intel内核上得到支持,包括那些不支持AVX512的内核(如Atom系列,以及赛扬/奔腾品牌的“大”内核)。
我怀疑GFNI旨在加速SM4加密,然而,其中一条指令可以用于许多其他目的。该扩展包括三条指令,但这里特别感兴趣的是仿射变换(GF2P8AFFINEQB),也称为位矩阵乘法指令。
已经有不同的文章讨论了可以使用指令的带外用例,但是,它们在某种程度上是分散的,所以不是全部重新解释,而是列出这些用例。
GF2P8AFFINEQB指令的“带外”用法列表(我在其他地方没有见过)计数前导/尾随零位、任意模数GF(2w)乘法、修复的2位压缩算术、按位变量移位