我有一个uint8x8
霓虹灯矢量,这是某些操作的结果。我需要对所有通道执行逻辑AND
操作以获得最终结果。每个元素都是0xff
(TRUE)或0x00
(FALSE)。如何在霓虹灯中执行它?
最佳答案
简单/显而易见的方法(伪代码):
v = VAND(v, v >> 8)
v = VAND(v, v >> 16)
v = VAND(v, v >> 32)
3次移位和3次按位与= 6条指令。
可能更有效的方法:对所有元素进行水平求和,如果为
TRUE
,则返回sum == -8
,否则返回FALSE
。可能更简单的方法:将向量与全1的向量进行比较。
return v == 0xffffffffffffffff;
对于读者来说,这是一个有效的练习(可能需要2 x 32位比较?)。