summaryrefslogtreecommitdiff
path: root/src/jit/simd.cpp
diff options
context:
space:
mode:
authorTanner Gooding <tagoo@outlook.com>2018-11-26 11:44:51 -0800
committerGitHub <noreply@github.com>2018-11-26 11:44:51 -0800
commit570bda3870a8c3b479384b21e1e1bdd427fdd3a1 (patch)
tree24ea886db934e32ea834dfdf74c8f02c04955b31 /src/jit/simd.cpp
parente7d079a2533d226b1fad301a0fbf7ba3ab25d0de (diff)
downloadcoreclr-570bda3870a8c3b479384b21e1e1bdd427fdd3a1.tar.gz
coreclr-570bda3870a8c3b479384b21e1e1bdd427fdd3a1.tar.bz2
coreclr-570bda3870a8c3b479384b21e1e1bdd427fdd3a1.zip
Fixing a few small issues with the SIMD vs SIMD HWIntrinsics (#21097)
* Fixing the simdHandleCache to add entries for Vector64FloatHandle and Vector128FloatHandle * Fixing two places that were calling just OperIsSIMD() rather than OperIsSIMDorSimdHWintrinsic()
Diffstat (limited to 'src/jit/simd.cpp')
-rw-r--r--src/jit/simd.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/jit/simd.cpp b/src/jit/simd.cpp
index 1f735a1dca..ccebc785f1 100644
--- a/src/jit/simd.cpp
+++ b/src/jit/simd.cpp
@@ -437,15 +437,15 @@ var_types Compiler::getBaseTypeAndSizeOfSIMDType(CORINFO_CLASS_HANDLE typeHnd, u
size = Vector256SizeBytes;
JITDUMP(" Known type Vector256<ulong>\n");
}
- else if (typeHnd == m_simdHandleCache->Vector256FloatHandle)
+ else
+#endif // defined(_TARGET_XARCH)
+ if (typeHnd == m_simdHandleCache->Vector128FloatHandle)
{
simdBaseType = TYP_FLOAT;
- size = Vector256SizeBytes;
- JITDUMP(" Known type Vector256<float>\n");
+ size = Vector128SizeBytes;
+ JITDUMP(" Known type Vector128<float>\n");
}
- else
-#endif // defined(_TARGET_XARCH)
- if (typeHnd == m_simdHandleCache->Vector128DoubleHandle)
+ else if (typeHnd == m_simdHandleCache->Vector128DoubleHandle)
{
simdBaseType = TYP_DOUBLE;
size = Vector128SizeBytes;
@@ -499,7 +499,14 @@ var_types Compiler::getBaseTypeAndSizeOfSIMDType(CORINFO_CLASS_HANDLE typeHnd, u
size = Vector128SizeBytes;
JITDUMP(" Known type Vector128<ulong>\n");
}
+ else
#if defined(_TARGET_ARM64_)
+ if (typeHnd == m_simdHandleCache->Vector64FloatHandle)
+ {
+ simdBaseType = TYP_FLOAT;
+ size = Vector64SizeBytes;
+ JITDUMP(" Known type Vector64<float>\n");
+ }
else if (typeHnd == m_simdHandleCache->Vector64IntHandle)
{
simdBaseType = TYP_INT;