是否可以控制MS C运行时库使用哪些CPU指令集(Visual Studio 2013,2015)?如果我进入反汇编,例如cos(),则代码将与预先计算的一组CPU功能进行比较,然后使用“最佳”功能执行该功能。 CPU上可用的功能。问题是不同的指令集产生不同的结果,因此结果因CPU架构而异。
例如,构建一个64位可执行文件:
if(convertView == null){
vi.setTag(p);
}
On Haswell / Broadwell及以后返回0.81743370050726594(与x86相同)。在较旧的CPU上返回0.81743370050726583。
运行时库使用FMA instruction set(如果可用),执行不同的实现并产生不同的结果。请注意,这不受应用程序中选择的编译器选项的影响,因为运行时库是预编译的。还要注意浮点精度控制函数_controlfp()cannot control 64位运行时的精度。
是否可以控制运行时库使用哪些指令集,以便结果更具确定性?