summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jit/codegenarm64.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/jit/codegenarm64.cpp b/src/jit/codegenarm64.cpp
index efbb59007c..da678dc17b 100644
--- a/src/jit/codegenarm64.cpp
+++ b/src/jit/codegenarm64.cpp
@@ -3875,7 +3875,14 @@ void CodeGen::genSIMDIntrinsic(GenTreeSIMD* simdNode)
simdNode->gtSIMDBaseType != TYP_SHORT && simdNode->gtSIMDBaseType != TYP_BYTE &&
simdNode->gtSIMDBaseType != TYP_UINT && simdNode->gtSIMDBaseType != TYP_ULONG)
{
- noway_assert(!"SIMD intrinsic with unsupported base type.");
+ // We don't need a base type for the Upper Save & Restore intrinsics, and we may find
+ // these implemented over lclVars created by CSE without full handle information (and
+ // therefore potentially without a base type).
+ if ((simdNode->gtSIMDIntrinsicID != SIMDIntrinsicUpperSave) &&
+ (simdNode->gtSIMDIntrinsicID != SIMDIntrinsicUpperRestore))
+ {
+ noway_assert(!"SIMD intrinsic with unsupported base type.");
+ }
}
switch (simdNode->gtSIMDIntrinsicID)