C/C++使用特殊的CPU功能

B.G*_*ill 7 c++ sse mmx

我很好奇,新的编译器使用内置在新CPU中的一些额外功能,如MMX SSE,3DNow!所以?

我的意思是,在最初的8086中甚至没有FPU,所以旧的编译器甚至不能使用它,但是新的编译器可以,因为FPU是每个新CPU的一部分.那么,新的编译器是否使用了CPU的新功能?

或者,更新的问题是,新的C/C++标准库函数是否使用新功能?

谢谢你的回答.

编辑:

好的,所以,如果我能帮到你们所有人,即使是一些标准操作,特别是浮点数也可以使用SSE更快地完成.

为了使用它,我必须在我的编译器中启用此功能,如果它支持它.如果是这样,我必须确保目标平台支持该功能.

如果某些系统库需要最高性能,例如OpenGL,DirectX等,系统可能支持此支持.

默认情况下,出于兼容性原因,编译器不支持它,但您可以使用由Intel提供的特殊C函数来添加此支持.这应该是最好的方法,因为您可以直接控制天气以及何时使用所需平台的特殊功能来编写支持多CPU的应用程序.

Bri*_*new 4

gcc 将通过命令行参数支持更新的指令。请参阅此处了解更多信息。去引用:

GCC 可以利用最新 Intel 和 AMD 处理器的 MMX、SSE、SSE2、SSE3 和 3dnow 扩展中的附加指令。选项 -mmmx、-msse、-msse2、-msse3 和 -m3dnow 允许使用这些额外指令,从而允许并行处理多个数据字。生成的可执行文件将仅在支持适当扩展的处理器上运行 - 在其他系统上,它们将因非法指令错误(或类似错误)而崩溃