我有一个关于使用 128 位寄存器来提高代码速度的问题。考虑以下 C/C++ 代码:我定义了两个unsigned long long int
sa
和b
,并给它们一些值。
unsigned long long int a = 4368, b = 56480;
然后,我想计算
a & b;
这里a
在计算机中表示为一个 64 位数字4369 = 100010001001
,对于b = 56481 = 1101110010100001
, 和 I 计算a & b
也是如此,它仍然是一个 64 位数字,由 a 和 b 之间的逐位逻辑 AND 给出:
a & b = 1000000000001
我的问题如下:计算机是否有一个 128 位寄存器,我可以在其中执行上述操作,但使用 128 位整数而不是 64 位整数,并且具有相同的计算机时间?更清楚地说:我想通过使用 128 位数而不是 64 位数在我的代码中获得两倍的速度,例如,我想计算 128 个 AND 而不是 64 个 AND(每个位一个 AND)电脑时间。如果这是可能的,你有一个代码示例吗?我听说 SSE 注册商可能会这样做,但我不确定。