summaryrefslogtreecommitdiff
path: root/src/jit
diff options
context:
space:
mode:
authorCarol Eidt <carol.eidt@microsoft.com>2018-04-04 10:40:03 -0700
committerCarol Eidt <carol.eidt@microsoft.com>2018-04-04 13:55:50 -0700
commit22b2d86b276d78794c1e102b0d10b2cf039a90e4 (patch)
tree608f32a0d0c9fe08f8b320a6b8fa95baaf857179 /src/jit
parent757cb82a5800fd043713d7ee40feba1dd2c89793 (diff)
downloadcoreclr-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.cpp12
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: