From 9398c0aa54a2a8207e3cf76e839979f6bb30daa7 Mon Sep 17 00:00:00 2001 From: Katelyn Gadd Date: Thu, 21 May 2026 21:49:54 -0700 Subject: [PATCH 1/2] Implement contained bitcast operands --- src/coreclr/jit/codegenwasm.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/coreclr/jit/codegenwasm.cpp b/src/coreclr/jit/codegenwasm.cpp index 650e27db737fee..1810eacd781547 100644 --- a/src/coreclr/jit/codegenwasm.cpp +++ b/src/coreclr/jit/codegenwasm.cpp @@ -1810,7 +1810,8 @@ void CodeGen::genCodeForBitCast(GenTreeOp* tree) if (tree->gtGetOp1()->isContained()) { - NYI_WASM("Contained bitcast operands"); + assert(tree->gtGetOp1()->OperIs(GT_LCL_VAR)); + genCodeForLclVar(tree->gtGetOp1()->AsLclVar()); } var_types toType = tree->TypeGet(); From ac882dde1c016734c9f242a249708c47986ae410 Mon Sep 17 00:00:00 2001 From: Katelyn Gadd Date: Fri, 22 May 2026 00:45:20 -0700 Subject: [PATCH 2/2] Conditional consume --- src/coreclr/jit/codegenwasm.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/coreclr/jit/codegenwasm.cpp b/src/coreclr/jit/codegenwasm.cpp index 1810eacd781547..305d27dd2890ba 100644 --- a/src/coreclr/jit/codegenwasm.cpp +++ b/src/coreclr/jit/codegenwasm.cpp @@ -1806,13 +1806,16 @@ void CodeGen::genCodeForShift(GenTree* tree) void CodeGen::genCodeForBitCast(GenTreeOp* tree) { assert(tree->OperIs(GT_BITCAST)); - genConsumeOperands(tree); if (tree->gtGetOp1()->isContained()) { assert(tree->gtGetOp1()->OperIs(GT_LCL_VAR)); genCodeForLclVar(tree->gtGetOp1()->AsLclVar()); } + else + { + genConsumeOperands(tree); + } var_types toType = tree->TypeGet(); var_types fromType = genActualType(tree->gtGetOp1()->TypeGet());