Pentium III处理器的单指令多数据流扩展指令(2)
2010-10-15 09:08:11 来源:Web开发网核心提示:3.3 分支移除通常,在程序中我们喜欢用下面的条件语句.a =(a < b) ? c :d;在上面的代码中,比较操作影响着后面代码的执行路径.如果我们能够移除条件判断,程序将能执行的更快.下面的这段汇编代码将比上面的代码执行得更快,这不仅仅是因为下面的代码是用汇编语言写的,更重要的是这里的分支判断已经被移除了.;
3.3 分支移除
通常,在程序中我们喜欢用下面的条件语句.
a =(a < b) ? c :d;
在上面的代码中,比较操作影响着后面代码的执行路径.如果我们能够移除条件判断,程序将能执行的更快.下面的这段汇编代码将比上面的代码执行得更快,这不仅仅是因为下面的代码是用汇编语言写的,更重要的是这里的分支判断已经被移除了.
; assume that xmm0 stores a, xmm1 stores b
; assume that xmm3 stores c and xmm4 stores d
cmpps xmm0, xmm1, 1;
movaps xmm2, xmm0;
andps xmm0, xmm3;
andnps xmm2, xmm4;
orps xmm0, xmm2;
; xmm0 contains the result, which is either c or d
更多精彩
赞助商链接