我真的不能使用编译器/ sse,但出于某种目的,我需要检查非正规数是否被停用(用于优化性能)。
如何检查我的编译器是否具有开启/关闭这些标志(FTZ
和DMZ
)?我在Visual Studio 2015和Windows 10 Professional上。
理论上是在x86intrin.h
?我无法找到它。
编辑
在C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\linkopts\loosefpmath.cpp
内,我有以下代码:
//
// loosefpmath.cpp
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// A link option that sets the DAZ and FTZ bits for SSE2 architectures.
//
#include <float.h>
extern "C" void __CRTDECL _initialize_denormal_control()
{
_controlfp_s(nullptr, _DN_FLUSH, _MCW_DN);
}