diff options
author | Carol Eidt <carol.eidt@microsoft.com> | 2018-04-04 10:40:03 -0700 |
---|---|---|
committer | Carol Eidt <carol.eidt@microsoft.com> | 2018-04-04 13:55:50 -0700 |
commit | 22b2d86b276d78794c1e102b0d10b2cf039a90e4 (patch) | |
tree | 608f32a0d0c9fe08f8b320a6b8fa95baaf857179 /src/jit | |
parent | 757cb82a5800fd043713d7ee40feba1dd2c89793 (diff) | |
download | coreclr-22b2d86b276d78794c1e102b0d10b2cf039a90e4.tar.gz coreclr-22b2d86b276d78794c1e102b0d10b2cf039a90e4.tar.bz2 coreclr-22b2d86b276d78794c1e102b0d10b2cf039a90e4.zip |
Handle SIMD8/LONG recasts for LCL_FLD
Lowering needs to insert a `BITCAST` in the case of a `STORE_LCL_FLD` with mismatched `TYP_SIMD8`/`TYP_LONG` operands, just as for `STORE_LCL_VAR`.
Diffstat (limited to 'src/jit')
-rw-r--r-- | src/jit/lower.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/jit/lower.cpp b/src/jit/lower.cpp index dbac32d2c5..8d2f799e8b 100644 --- a/src/jit/lower.cpp +++ b/src/jit/lower.cpp @@ -276,8 +276,12 @@ GenTree* Lowering::LowerNode(GenTree* node) break; case GT_STORE_LCL_VAR: -#if defined(_TARGET_AMD64_) && defined(FEATURE_SIMD) + WidenSIMD12IfNecessary(node->AsLclVarCommon()); + __fallthrough; + + case GT_STORE_LCL_FLD: { +#if defined(_TARGET_AMD64_) && defined(FEATURE_SIMD) GenTreeLclVarCommon* const store = node->AsLclVarCommon(); if ((store->TypeGet() == TYP_SIMD8) != (store->gtOp1->TypeGet() == TYP_SIMD8)) { @@ -286,12 +290,7 @@ GenTree* Lowering::LowerNode(GenTree* node) store->gtOp1 = bitcast; BlockRange().InsertBefore(store, bitcast); } - } #endif // _TARGET_AMD64_ - WidenSIMD12IfNecessary(node->AsLclVarCommon()); - __fallthrough; - - case GT_STORE_LCL_FLD: // TODO-1stClassStructs: Once we remove the requirement that all struct stores // are block stores (GT_STORE_BLK or GT_STORE_OBJ), here is where we would put the local // store under a block store if codegen will require it. @@ -306,6 +305,7 @@ GenTree* Lowering::LowerNode(GenTree* node) } LowerStoreLoc(node->AsLclVarCommon()); break; + } #ifdef _TARGET_ARM64_ case GT_CMPXCHG: |