summaryrefslogtreecommitdiff
path: root/src/zap/zapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zap/zapper.cpp')
-rw-r--r--src/zap/zapper.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/zap/zapper.cpp b/src/zap/zapper.cpp
index 26d9c4e2cf..5e5d190346 100644
--- a/src/zap/zapper.cpp
+++ b/src/zap/zapper.cpp
@@ -1188,6 +1188,15 @@ void Zapper::InitializeCompilerFlags(CORCOMPILE_VERSION_INFO * pVersionInfo)
#endif // _TARGET_X86_
+#if defined(_TARGET_X86_) || defined(_TARGET_AMD64_) || defined(_TARGET_ARM64_)
+ // If we're compiling CoreLib, allow RyuJIT to generate SIMD code so that we can expand some
+ // of the hardware intrinsics.
+ if (m_pEECompileInfo->GetAssemblyModule(m_hAssembly) == m_pEECompileInfo->GetLoaderModuleForMscorlib())
+ {
+ m_pOpt->m_compilerFlags.Set(CORJIT_FLAGS::CORJIT_FLAG_FEATURE_SIMD);
+ }
+#endif // defined(_TARGET_X86_) || defined(_TARGET_AMD64_) || defined(_TARGET_ARM64_)
+
if ( m_pOpt->m_compilerFlags.IsSet(CORJIT_FLAGS::CORJIT_FLAG_DEBUG_INFO)
&& m_pOpt->m_compilerFlags.IsSet(CORJIT_FLAGS::CORJIT_FLAG_DEBUG_CODE)
&& m_pOpt->m_compilerFlags.IsSet(CORJIT_FLAGS::CORJIT_FLAG_PROF_ENTERLEAVE))