告诉GCC"我想使用SSE4.1,但仅限于我想要的地方!"

Mar*_* A. 3 c++ gcc sse

正如主题所说..如何告诉GCC允许我使用SSE4.1内在函数但不优化SSE4.1(例如通过SSE4.1字符串比较)在同一翻译单元的所有其余代码中?

pnd*_*ndc 5

您可以使用函数属性在每个函数的基础上更改编译目标选项.GCC手册给出了以下示例:

int core2_func (void) __attribute__ ((__target__ ("arch=core2")));
int sse3_func (void) __attribute__ ((__target__ ("sse3")));
Run Code Online (Sandbox Code Playgroud)

您还可以基于每个功能禁用,例如:

int no_sse3_func (void) __attribute__ ((__target__ ("no-sse3")));
Run Code Online (Sandbox Code Playgroud)