diff options
author | Steve MacLean <sdmaclea.qdt@qualcommdatacenter.com> | 2017-11-28 19:46:43 -0500 |
---|---|---|
committer | Steve MacLean <sdmaclea.qdt@qualcommdatacenter.com> | 2017-12-08 17:42:58 -0500 |
commit | 1c3336ef7c0d832f68922572a00901dba1d15bbb (patch) | |
tree | 6b648e9b3c593c8eb4a4b9f6a10bc9dbc8643a96 /src/jit/lowerarmarch.cpp | |
parent | 2005790ffddc6cab5c563d8c8ae564fdedac3c7b (diff) | |
download | coreclr-1c3336ef7c0d832f68922572a00901dba1d15bbb.tar.gz coreclr-1c3336ef7c0d832f68922572a00901dba1d15bbb.tar.bz2 coreclr-1c3336ef7c0d832f68922572a00901dba1d15bbb.zip |
[Arm64] SIMDIntrinsicGetItem contain mem op1
Diffstat (limited to 'src/jit/lowerarmarch.cpp')
-rw-r--r-- | src/jit/lowerarmarch.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/jit/lowerarmarch.cpp b/src/jit/lowerarmarch.cpp index 231650180a..5aa3ff1e6b 100644 --- a/src/jit/lowerarmarch.cpp +++ b/src/jit/lowerarmarch.cpp @@ -785,12 +785,11 @@ void Lowering::ContainCheckSIMD(GenTreeSIMD* simdNode) case SIMDIntrinsicGetItem: { - // TODO-ARM64-CQ Support containing op1 memory ops - // This implements get_Item method. The sources are: // - the source SIMD struct // - index (which element to get) // The result is baseType of SIMD struct. + op1 = simdNode->gtOp.gtOp1; op2 = simdNode->gtOp.gtOp2; // If the index is a constant, mark it as contained. @@ -798,6 +797,15 @@ void Lowering::ContainCheckSIMD(GenTreeSIMD* simdNode) { MakeSrcContained(simdNode, op2); } + + if (IsContainableMemoryOp(op1)) + { + MakeSrcContained(simdNode, op1); + if (op1->OperGet() == GT_IND) + { + op1->AsIndir()->Addr()->ClearContained(); + } + } break; } |