You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

优化后的memcpy@plt调用是否遵守指令集限制?-mno-avx编译时的疑问

关于GCC指令集选项对memcpy运行时选择的疑问

我在C++中编写了如下代码,该代码经汇编优化后会调用memcpy:

void do_something(big_struct& a, const big_struct& b)
{
   a = b;
}

对应的汇编代码为:

lea    rdi,[rsi+0x4]
 mov    edx,0x220
 lea    rsi,[rbx+0x18]
 call   7ead40 <memcpy@plt>

观察memcpy的实现可知,libstdc++提供了多个基于不同指令集限制的版本,具体实现会在运行时选择。

现疑问:若使用GCC编译并链接时指定指令集限制选项(如-mno-avx),即使运行该二进制文件的CPU支持AVX,所选的memcpy实现是否仍会遵守该编译决策?

内容的提问来源于stack exchange,提问作者Chuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 13:37:08