对于b ^= (t << j),我希望t是一个512bit的大整数,左移j位后,再和b做异或。
整个项目我想支持大整数位运算和移位操作,不关心代数运算。__m512i看起来是最近接的native类型。
其他位运算都是直接对应的接口,但是移位没有。
我看INTEL的文档里面的异或都是对8个64bit的正数分别移位,或者_mm512_alignr_epi64之类的整体做rotate。我需要支持的j位数是固定的:256,128,64,32,16,8,4,2,1。
请问基于这些INTEL提供的restricted移位或者alignr函数,如何实现shift操作呢?
【 在 libgcc 的大作中提到: 】
: 没看懂你的意思
: 你把一个m512i当成一个512bit的大整数,那simd怎么做向量化?
: 就拿b ^= (t << j)来说,b是m512i,你想得到b的结果是什么?是一堆整数还是一个512bi
: ...................
--
FROM 158.140.1.*