Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ILCompiler.Compiler/src/Compiler/SimdHelper.cs')
-rw-r--r--src/ILCompiler.Compiler/src/Compiler/SimdHelper.cs16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/ILCompiler.Compiler/src/Compiler/SimdHelper.cs b/src/ILCompiler.Compiler/src/Compiler/SimdHelper.cs
index 3f523b18d..53f606c57 100644
--- a/src/ILCompiler.Compiler/src/Compiler/SimdHelper.cs
+++ b/src/ILCompiler.Compiler/src/Compiler/SimdHelper.cs
@@ -17,19 +17,27 @@ namespace ILCompiler
{
private ModuleDesc[] _simdModulesCached;
- public bool IsInSimdModule(TypeDesc type)
+ public bool IsSimdType(TypeDesc type)
{
- if (type is MetadataType)
+ if (type is MetadataType metadataType)
{
if (_simdModulesCached == null)
{
InitializeSimdModules(type);
}
- ModuleDesc typeModule = ((MetadataType)type).Module;
+ ModuleDesc typeModule = metadataType.Module;
foreach (ModuleDesc simdModule in _simdModulesCached)
if (typeModule == simdModule)
return true;
+
+ if (metadataType.IsIntrinsic)
+ {
+ string name = metadataType.Name;
+ if ((name == "Vector`1" || name == "Vector") &&
+ metadataType.Namespace == "System.Numerics")
+ return true;
+ }
}
return false;
@@ -54,7 +62,7 @@ namespace ILCompiler
public bool IsVectorOfT(TypeDesc type)
{
- return IsInSimdModule(type)
+ return IsSimdType(type)
&& ((MetadataType)type).Name == "Vector`1"
&& ((MetadataType)type).Namespace == "System.Numerics";
}