Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/coreclr/jit/lclmorph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1209,6 +1209,14 @@ class LocalAddressVisitor final : public GenTreeVisitor<LocalAddressVisitor>
assert(elementType == TYP_SIMD12);
assert(varDsc->TypeGet() == TYP_SIMD16);

// If we are not doing struct promotion and we have zero-initialization,
// then we need to produce a VecCon(0).
if (elementNode->IsIntegralConst(0))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just wanted to note that we looked at fixing CEE_INITOBJ to do have TYP_SIMD be an ASG of ZeroConNode like it is for primitives

But, it still asserted so there are likely other places also introducing the ASG = 0 that would also need to be fixed first.

{
DEBUG_DESTROY_NODE(elementNode);
elementNode = m_compiler->gtNewZeroConNode(TYP_SIMD12);
}

// We inverse the operands here and take elementNode as the main value and simdLclNode[3] as the
// new value. This gives us a new TYP_SIMD16 with all elements in the right spots

Expand Down