【摘要】:目前,SSE指令的编程主要是采用在高级语言中,通过内嵌汇编的方法来实现,其目的是提高程序的并行数据处理性能,如3D图像处理、快速数据变换等。目前,Intel C++ Compiler 5.0和Microsoft Visual C++ 6.0 Processor Pack的内嵌式汇编语言都支持 SSE 指令集,它们也都支持SSE指令集的intrinsics。使用intrinsics可增加程序的可读性和易用性,但产生的程序代码的效率,会随着compiler的不同而有改变。
2.9.2 SSE指令程序设计
目前,SSE指令的编程主要是采用在高级语言(如Visual C++)中,通过内嵌汇编的方法来实现,其目的是提高程序的并行数据处理性能,如3D图像处理、快速数据变换等。当然,在用SSE指令优化计算之前需使用CPUID指令测试处理器是否支持SSE指令集,若返回EDX的D25=1说明CPU支持SSE指令集。目前,Intel C++ Compiler 5.0和Microsoft Visual C++ 6.0 Processor Pack的内嵌式汇编语言都支持 SSE 指令集,它们也都支持SSE指令集的intrinsics。intrinsics是一种外表类似一般的函数,但是实际上能被compiler直接编译成汇编语言的封装代码。
MMX指令和SSE指令的内嵌式汇编语言形式如下:
也可使用intrinsics来编程,如:
使用intrinsics可增加程序的可读性和易用性,但产生的程序代码的效率,会随着compiler的不同而有改变。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。