From a4c5ca3230488705da49a9626374ac3575357d8b Mon Sep 17 00:00:00 2001 From: Tanner Gooding Date: Mon, 26 Apr 2021 12:22:28 -0700 Subject: [PATCH] Mark SIMD assignments as related to SIMD intrinsics on x86 --- src/coreclr/jit/codegenxarch.cpp | 2 +- src/coreclr/jit/gentree.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/coreclr/jit/codegenxarch.cpp b/src/coreclr/jit/codegenxarch.cpp index b74d0a8c8f841..40890e6a5e38c 100644 --- a/src/coreclr/jit/codegenxarch.cpp +++ b/src/coreclr/jit/codegenxarch.cpp @@ -1980,7 +1980,7 @@ void CodeGen::genMultiRegStoreToSIMDLocal(GenTreeLclVar* lclNode) } genProduceReg(lclNode); #else // !UNIX_AMD64_ABI - assert(!"Multireg store to SIMD reg not supported on X64 Windows"); + assert(!"Multireg store to SIMD reg not supported on Windows"); #endif // !UNIX_AMD64_ABI } #endif // FEATURE_SIMD diff --git a/src/coreclr/jit/gentree.cpp b/src/coreclr/jit/gentree.cpp index ce1bb27cd849a..a466ede272039 100644 --- a/src/coreclr/jit/gentree.cpp +++ b/src/coreclr/jit/gentree.cpp @@ -6759,9 +6759,9 @@ GenTreeOp* Compiler::gtNewAssignNode(GenTree* dst, GenTree* src) } dst->gtFlags |= GTF_DONT_CSE; -/* Create the assignment node */ +#if defined(FEATURE_SIMD) && !defined(TARGET_X86) + // TODO-CQ: x86 Windows supports multi-reg returns but not SIMD multi-reg returns -#if FEATURE_SIMD if (varTypeIsSIMD(dst->gtType)) { // We want to track SIMD assignments as being intrinsics since they @@ -6773,6 +6773,8 @@ GenTreeOp* Compiler::gtNewAssignNode(GenTree* dst, GenTree* src) } #endif // FEATURE_SIMD + /* Create the assignment node */ + GenTreeOp* asg = gtNewOperNode(GT_ASG, dst->TypeGet(), dst, src)->AsOp(); /* Mark the expression as containing an assignment */