我知道有这种类似的问题,但在编译不同的文件以不同的标志是不是在这里接受的解决办法,因为这将复杂的代码库真正的快.回答"不,这是不可能的"将会做到.
在任何版本的Clang OR GCC中,是否可以为SSE 2/3/3S/4.1编译内在函数,同时只允许编译器使用SSE指令集进行优化?
编辑:例如,我想编译器转_mm_load_si128()
来movdqa
,但在任何其他地方比这内在功能,类似于MSVC编译器是如何工作的编译器不可以做发射该指令.
EDIT2:我有动态调度程序和几个版本的单个函数,使用内在函数编写不同的指令集.使用多个文件会使维护更加困难,因为相同版本的代码将跨越多个文件,并且有很多这种类型的函数.
EDIT3:请求的示例源代码:https://github.com/AviSynth/AviSynthPlus/blob/master/avs_core/filters/resample.cpp或该文件夹中的大多数文件.