所以说你加载了一个xmm1向量,它有4个单精度浮点{1.5,1.5,1.5,1.5}和xmm2,它们具有相同的点,所以xmm1 == xmm2。 现在你要比较它们,以便你在汇编中写:
movaps %xmm1, %xmm2
cmpeqps %xmm0, %xmm2
由于 cmpeqps 没有设置eflags,怎么能说:
jne somewhere
是否真的需要使用 ucomiss 来比较矢量的最右边部分,然后右移并重复3次?
由于
答案 0 :(得分:3)
你可以使用cmpeqps
,你只需要提取四个标志。例如(未测试)
cmpeqps xmm2, xmm1
movmskps eax, xmm2
cmp eax, 15
je somewhere
答案 1 :(得分:1)
矢量化算术的算法应设计成避免条件分支。相反,每个通道执行相同的指令。通常通过评估所有可能的结果并使用掩模选择正确来执行条件。