[Wasm RyuJIT] Packed Simd Encodings - #128229

Merged
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings
May 22, 2026
Merged

[Wasm RyuJIT] Packed Simd Encodings#128229
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings

Conversation

@adamperlin

Copy link
Copy Markdown
Contributor

This PR adds emitter support for the Wasm Packed Simd v128 extension, including new instruction formats and instrDesc definitions. It also enables basic emitter unit testing support for these SIMD instructions, since we are not yet utilizing these instructions in codegen and so we aren't exercising the encoding paths.

Adam Perlinand others added 6 commits May 8, 2026 16:10
Add instruction definitions and emitter infrastructure for the WebAssembly
packed SIMD (128-bit) instruction set:
- Add ~200 INST2 entries in instrswasm.h for all SIMD opcodes (0xFD prefix)
- Add 4 new instruction formats: IF_V128_CONST, IF_LANE, IF_MEMARG_LANE,
IF_SHUFFLE in emitfmtswasm.h
- Add instrDesc subclasses in emit.h for SIMD-specific payloads:
instrDescV128Const, instrDescShuffle, instrDescLane, instrDescMemargLane
- Increase TARGET_WASM instruction bit-field to 9 bits (512 max) in emit.h
- Add emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) with size calculation and output encoding in emitwasm.cpp
- Declare new emit functions in emitwasm.h
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add genWasmEmitterUnitTestsSimd() to exercise the new SIMD instruction
emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) and representative plain-opcode SIMD instructions.
Activated via DOTNET_JitEmitUnitTests=* and
DOTNET_JitEmitUnitTestsSections=simd (or all).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update emitDispIns to support new SIMD instructions
Properly emit block ... end in emitter unit tests for Wasm
CopilotAI review requested due to automatic review settings May 14, 2026 21:32
@github-actionsgithub-actionsBot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 14, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR wires up emitter-level support for the WebAssembly Packed SIMD (v128 / 0xFD-prefix) instruction set in the experimental Wasm RyuJIT back end. It adds the full SIMD instruction table, new instrDesc shapes and insFormats for the encodings that don't fit existing categories (v128 immediate, lane index, memarg+lane), and a debug-only emitter unit test that exercises the new encoding paths since no real codegen consumes them yet.

Changes:

  • Add the SIMD opcode table (instrswasm.h) and new IF_V128 / IF_LANE / IF_MEMARG_LANE formats with corresponding instrDescV128Imm and instrDescMemargLane descriptor types.
  • Implement emitIns_V128Imm, emitIns_Lane, emitIns_MemargLane, plus matching size/encode/display paths in emitwasm.cpp, and expand _idIns to 9 bits on WASM to fit the larger instruction count.
  • Add genWasmEmitterUnitTestsSimd (DEBUG-only) and hook the Wasm simd test section into genEmitterUnitTests, including a Wasm-specific skip-label scheme using INS_block / INS_br.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/coreclr/jit/instrswasm.hAdds full v128 SIMD instruction list with IF_OPCODE/IF_MEMARG/IF_V128/IF_LANE/IF_MEMARG_LANE formats and 0xFD prefix.
src/coreclr/jit/emitfmtswasm.hDefines the three new SIMD encoding formats.
src/coreclr/jit/emit.hWidens _idIns to 9 bits on Wasm; adds idIsV128Imm/idIsMemargLaneImm; declares instrDescV128Imm/instrDescMemargLane.
src/coreclr/jit/emitwasm.hDeclares new emit helpers and accessors for the SIMD descriptors.
src/coreclr/jit/emitwasm.cppImplements emit/size/output/display paths for the new formats; also disables IF_CODE_SIZE display with #if FALSE (unrelated to SIMD).
src/coreclr/jit/codegen.hDeclares genWasmEmitterUnitTestsSimd.
src/coreclr/jit/codegenwasm.cppAdds the SIMD emitter unit test with representative coverage across all new formats.
src/coreclr/jit/codegenlinear.cppRoutes the simd unit-test section on Wasm and uses block/br instead of a direct jump to skip over the tests.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 14, 2026 21:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/instrswasm.h
@am11am11 added the arch-wasm WebAssembly architecture label May 14, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.

CopilotAI review requested due to automatic review settings May 20, 2026 21:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
kg
kg approved these changes May 21, 2026

@kgkg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, comments and copilot feedback aside

CopilotAI review requested due to automatic review settings May 21, 2026 21:21

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/codegeninterface.h Outdated
Comment threadsrc/coreclr/jit/instr.cpp
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 21, 2026 22:07

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegeninterface.h
Comment threadsrc/coreclr/jit/instr.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Comment threadsrc/coreclr/jit/codegenwasm.cpp
CopilotAI review requested due to automatic review settings May 21, 2026 22:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
CopilotAI review requested due to automatic review settings May 22, 2026 00:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
@adamperlin
adamperlin merged commit 18c8c26 into dotnet:mainMay 22, 2026
137 of 139 checks passed
@adamperlin
adamperlin deleted the adamperlin/wasm-simd-encodings branch May 22, 2026 21:06
@dotnet-milestone-botdotnet-milestone-botBot added this to the 11.0-preview6 milestone May 23, 2026
@adamperlinadamperlin mentioned this pull request May 29, 2026
16 tasks
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jun 23, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-wasmWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@adamperlin@kg@am11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[Wasm RyuJIT] Packed Simd Encodings - #128229

Merged
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings
May 22, 2026
Merged

[Wasm RyuJIT] Packed Simd Encodings#128229
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings

Conversation

@adamperlin

Copy link
Copy Markdown
Contributor

This PR adds emitter support for the Wasm Packed Simd v128 extension, including new instruction formats and instrDesc definitions. It also enables basic emitter unit testing support for these SIMD instructions, since we are not yet utilizing these instructions in codegen and so we aren't exercising the encoding paths.

Adam Perlinand others added 6 commits May 8, 2026 16:10
Add instruction definitions and emitter infrastructure for the WebAssembly
packed SIMD (128-bit) instruction set:
- Add ~200 INST2 entries in instrswasm.h for all SIMD opcodes (0xFD prefix)
- Add 4 new instruction formats: IF_V128_CONST, IF_LANE, IF_MEMARG_LANE,
IF_SHUFFLE in emitfmtswasm.h
- Add instrDesc subclasses in emit.h for SIMD-specific payloads:
instrDescV128Const, instrDescShuffle, instrDescLane, instrDescMemargLane
- Increase TARGET_WASM instruction bit-field to 9 bits (512 max) in emit.h
- Add emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) with size calculation and output encoding in emitwasm.cpp
- Declare new emit functions in emitwasm.h
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add genWasmEmitterUnitTestsSimd() to exercise the new SIMD instruction
emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) and representative plain-opcode SIMD instructions.
Activated via DOTNET_JitEmitUnitTests=* and
DOTNET_JitEmitUnitTestsSections=simd (or all).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update emitDispIns to support new SIMD instructions
Properly emit block ... end in emitter unit tests for Wasm
CopilotAI review requested due to automatic review settings May 14, 2026 21:32
@github-actionsgithub-actionsBot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 14, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR wires up emitter-level support for the WebAssembly Packed SIMD (v128 / 0xFD-prefix) instruction set in the experimental Wasm RyuJIT back end. It adds the full SIMD instruction table, new instrDesc shapes and insFormats for the encodings that don't fit existing categories (v128 immediate, lane index, memarg+lane), and a debug-only emitter unit test that exercises the new encoding paths since no real codegen consumes them yet.

Changes:

  • Add the SIMD opcode table (instrswasm.h) and new IF_V128 / IF_LANE / IF_MEMARG_LANE formats with corresponding instrDescV128Imm and instrDescMemargLane descriptor types.
  • Implement emitIns_V128Imm, emitIns_Lane, emitIns_MemargLane, plus matching size/encode/display paths in emitwasm.cpp, and expand _idIns to 9 bits on WASM to fit the larger instruction count.
  • Add genWasmEmitterUnitTestsSimd (DEBUG-only) and hook the Wasm simd test section into genEmitterUnitTests, including a Wasm-specific skip-label scheme using INS_block / INS_br.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/coreclr/jit/instrswasm.hAdds full v128 SIMD instruction list with IF_OPCODE/IF_MEMARG/IF_V128/IF_LANE/IF_MEMARG_LANE formats and 0xFD prefix.
src/coreclr/jit/emitfmtswasm.hDefines the three new SIMD encoding formats.
src/coreclr/jit/emit.hWidens _idIns to 9 bits on Wasm; adds idIsV128Imm/idIsMemargLaneImm; declares instrDescV128Imm/instrDescMemargLane.
src/coreclr/jit/emitwasm.hDeclares new emit helpers and accessors for the SIMD descriptors.
src/coreclr/jit/emitwasm.cppImplements emit/size/output/display paths for the new formats; also disables IF_CODE_SIZE display with #if FALSE (unrelated to SIMD).
src/coreclr/jit/codegen.hDeclares genWasmEmitterUnitTestsSimd.
src/coreclr/jit/codegenwasm.cppAdds the SIMD emitter unit test with representative coverage across all new formats.
src/coreclr/jit/codegenlinear.cppRoutes the simd unit-test section on Wasm and uses block/br instead of a direct jump to skip over the tests.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 14, 2026 21:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/instrswasm.h
@am11am11 added the arch-wasm WebAssembly architecture label May 14, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.

CopilotAI review requested due to automatic review settings May 20, 2026 21:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
kg
kg approved these changes May 21, 2026

@kgkg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, comments and copilot feedback aside

CopilotAI review requested due to automatic review settings May 21, 2026 21:21

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/codegeninterface.h Outdated
Comment threadsrc/coreclr/jit/instr.cpp
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 21, 2026 22:07

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegeninterface.h
Comment threadsrc/coreclr/jit/instr.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Comment threadsrc/coreclr/jit/codegenwasm.cpp
CopilotAI review requested due to automatic review settings May 21, 2026 22:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
CopilotAI review requested due to automatic review settings May 22, 2026 00:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
@adamperlin
adamperlin merged commit 18c8c26 into dotnet:mainMay 22, 2026
137 of 139 checks passed
@adamperlin
adamperlin deleted the adamperlin/wasm-simd-encodings branch May 22, 2026 21:06
@dotnet-milestone-botdotnet-milestone-botBot added this to the 11.0-preview6 milestone May 23, 2026
@adamperlinadamperlin mentioned this pull request May 29, 2026
16 tasks
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jun 23, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-wasmWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@adamperlin@kg@am11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Wasm RyuJIT] Packed Simd Encodings - #128229

Merged
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings
May 22, 2026
Merged

[Wasm RyuJIT] Packed Simd Encodings#128229
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings

Conversation

@adamperlin

Copy link
Copy Markdown
Contributor

This PR adds emitter support for the Wasm Packed Simd v128 extension, including new instruction formats and instrDesc definitions. It also enables basic emitter unit testing support for these SIMD instructions, since we are not yet utilizing these instructions in codegen and so we aren't exercising the encoding paths.

Adam Perlinand others added 6 commits May 8, 2026 16:10
Add instruction definitions and emitter infrastructure for the WebAssembly
packed SIMD (128-bit) instruction set:
- Add ~200 INST2 entries in instrswasm.h for all SIMD opcodes (0xFD prefix)
- Add 4 new instruction formats: IF_V128_CONST, IF_LANE, IF_MEMARG_LANE,
IF_SHUFFLE in emitfmtswasm.h
- Add instrDesc subclasses in emit.h for SIMD-specific payloads:
instrDescV128Const, instrDescShuffle, instrDescLane, instrDescMemargLane
- Increase TARGET_WASM instruction bit-field to 9 bits (512 max) in emit.h
- Add emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) with size calculation and output encoding in emitwasm.cpp
- Declare new emit functions in emitwasm.h
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add genWasmEmitterUnitTestsSimd() to exercise the new SIMD instruction
emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) and representative plain-opcode SIMD instructions.
Activated via DOTNET_JitEmitUnitTests=* and
DOTNET_JitEmitUnitTestsSections=simd (or all).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update emitDispIns to support new SIMD instructions
Properly emit block ... end in emitter unit tests for Wasm
CopilotAI review requested due to automatic review settings May 14, 2026 21:32
@github-actionsgithub-actionsBot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 14, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR wires up emitter-level support for the WebAssembly Packed SIMD (v128 / 0xFD-prefix) instruction set in the experimental Wasm RyuJIT back end. It adds the full SIMD instruction table, new instrDesc shapes and insFormats for the encodings that don't fit existing categories (v128 immediate, lane index, memarg+lane), and a debug-only emitter unit test that exercises the new encoding paths since no real codegen consumes them yet.

Changes:

  • Add the SIMD opcode table (instrswasm.h) and new IF_V128 / IF_LANE / IF_MEMARG_LANE formats with corresponding instrDescV128Imm and instrDescMemargLane descriptor types.
  • Implement emitIns_V128Imm, emitIns_Lane, emitIns_MemargLane, plus matching size/encode/display paths in emitwasm.cpp, and expand _idIns to 9 bits on WASM to fit the larger instruction count.
  • Add genWasmEmitterUnitTestsSimd (DEBUG-only) and hook the Wasm simd test section into genEmitterUnitTests, including a Wasm-specific skip-label scheme using INS_block / INS_br.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/coreclr/jit/instrswasm.hAdds full v128 SIMD instruction list with IF_OPCODE/IF_MEMARG/IF_V128/IF_LANE/IF_MEMARG_LANE formats and 0xFD prefix.
src/coreclr/jit/emitfmtswasm.hDefines the three new SIMD encoding formats.
src/coreclr/jit/emit.hWidens _idIns to 9 bits on Wasm; adds idIsV128Imm/idIsMemargLaneImm; declares instrDescV128Imm/instrDescMemargLane.
src/coreclr/jit/emitwasm.hDeclares new emit helpers and accessors for the SIMD descriptors.
src/coreclr/jit/emitwasm.cppImplements emit/size/output/display paths for the new formats; also disables IF_CODE_SIZE display with #if FALSE (unrelated to SIMD).
src/coreclr/jit/codegen.hDeclares genWasmEmitterUnitTestsSimd.
src/coreclr/jit/codegenwasm.cppAdds the SIMD emitter unit test with representative coverage across all new formats.
src/coreclr/jit/codegenlinear.cppRoutes the simd unit-test section on Wasm and uses block/br instead of a direct jump to skip over the tests.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 14, 2026 21:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/instrswasm.h
@am11am11 added the arch-wasm WebAssembly architecture label May 14, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.

CopilotAI review requested due to automatic review settings May 20, 2026 21:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
kg
kg approved these changes May 21, 2026

@kgkg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, comments and copilot feedback aside

CopilotAI review requested due to automatic review settings May 21, 2026 21:21

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/codegeninterface.h Outdated
Comment threadsrc/coreclr/jit/instr.cpp
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 21, 2026 22:07

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegeninterface.h
Comment threadsrc/coreclr/jit/instr.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Comment threadsrc/coreclr/jit/codegenwasm.cpp
CopilotAI review requested due to automatic review settings May 21, 2026 22:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
CopilotAI review requested due to automatic review settings May 22, 2026 00:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
@adamperlin
adamperlin merged commit 18c8c26 into dotnet:mainMay 22, 2026
137 of 139 checks passed
@adamperlin
adamperlin deleted the adamperlin/wasm-simd-encodings branch May 22, 2026 21:06
@dotnet-milestone-botdotnet-milestone-botBot added this to the 11.0-preview6 milestone May 23, 2026
@adamperlinadamperlin mentioned this pull request May 29, 2026
16 tasks
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jun 23, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-wasmWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@adamperlin@kg@am11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Wasm RyuJIT] Packed Simd Encodings - #128229

Merged
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings
May 22, 2026
Merged

[Wasm RyuJIT] Packed Simd Encodings#128229
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings

Conversation

@adamperlin

Copy link
Copy Markdown
Contributor

This PR adds emitter support for the Wasm Packed Simd v128 extension, including new instruction formats and instrDesc definitions. It also enables basic emitter unit testing support for these SIMD instructions, since we are not yet utilizing these instructions in codegen and so we aren't exercising the encoding paths.

Adam Perlinand others added 6 commits May 8, 2026 16:10
Add instruction definitions and emitter infrastructure for the WebAssembly
packed SIMD (128-bit) instruction set:
- Add ~200 INST2 entries in instrswasm.h for all SIMD opcodes (0xFD prefix)
- Add 4 new instruction formats: IF_V128_CONST, IF_LANE, IF_MEMARG_LANE,
IF_SHUFFLE in emitfmtswasm.h
- Add instrDesc subclasses in emit.h for SIMD-specific payloads:
instrDescV128Const, instrDescShuffle, instrDescLane, instrDescMemargLane
- Increase TARGET_WASM instruction bit-field to 9 bits (512 max) in emit.h
- Add emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) with size calculation and output encoding in emitwasm.cpp
- Declare new emit functions in emitwasm.h
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add genWasmEmitterUnitTestsSimd() to exercise the new SIMD instruction
emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) and representative plain-opcode SIMD instructions.
Activated via DOTNET_JitEmitUnitTests=* and
DOTNET_JitEmitUnitTestsSections=simd (or all).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update emitDispIns to support new SIMD instructions
Properly emit block ... end in emitter unit tests for Wasm
CopilotAI review requested due to automatic review settings May 14, 2026 21:32
@github-actionsgithub-actionsBot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 14, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR wires up emitter-level support for the WebAssembly Packed SIMD (v128 / 0xFD-prefix) instruction set in the experimental Wasm RyuJIT back end. It adds the full SIMD instruction table, new instrDesc shapes and insFormats for the encodings that don't fit existing categories (v128 immediate, lane index, memarg+lane), and a debug-only emitter unit test that exercises the new encoding paths since no real codegen consumes them yet.

Changes:

  • Add the SIMD opcode table (instrswasm.h) and new IF_V128 / IF_LANE / IF_MEMARG_LANE formats with corresponding instrDescV128Imm and instrDescMemargLane descriptor types.
  • Implement emitIns_V128Imm, emitIns_Lane, emitIns_MemargLane, plus matching size/encode/display paths in emitwasm.cpp, and expand _idIns to 9 bits on WASM to fit the larger instruction count.
  • Add genWasmEmitterUnitTestsSimd (DEBUG-only) and hook the Wasm simd test section into genEmitterUnitTests, including a Wasm-specific skip-label scheme using INS_block / INS_br.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/coreclr/jit/instrswasm.hAdds full v128 SIMD instruction list with IF_OPCODE/IF_MEMARG/IF_V128/IF_LANE/IF_MEMARG_LANE formats and 0xFD prefix.
src/coreclr/jit/emitfmtswasm.hDefines the three new SIMD encoding formats.
src/coreclr/jit/emit.hWidens _idIns to 9 bits on Wasm; adds idIsV128Imm/idIsMemargLaneImm; declares instrDescV128Imm/instrDescMemargLane.
src/coreclr/jit/emitwasm.hDeclares new emit helpers and accessors for the SIMD descriptors.
src/coreclr/jit/emitwasm.cppImplements emit/size/output/display paths for the new formats; also disables IF_CODE_SIZE display with #if FALSE (unrelated to SIMD).
src/coreclr/jit/codegen.hDeclares genWasmEmitterUnitTestsSimd.
src/coreclr/jit/codegenwasm.cppAdds the SIMD emitter unit test with representative coverage across all new formats.
src/coreclr/jit/codegenlinear.cppRoutes the simd unit-test section on Wasm and uses block/br instead of a direct jump to skip over the tests.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 14, 2026 21:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/instrswasm.h
@am11am11 added the arch-wasm WebAssembly architecture label May 14, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.

CopilotAI review requested due to automatic review settings May 20, 2026 21:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
kg
kg approved these changes May 21, 2026

@kgkg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, comments and copilot feedback aside

CopilotAI review requested due to automatic review settings May 21, 2026 21:21

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/codegeninterface.h Outdated
Comment threadsrc/coreclr/jit/instr.cpp
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 21, 2026 22:07

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegeninterface.h
Comment threadsrc/coreclr/jit/instr.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Comment threadsrc/coreclr/jit/codegenwasm.cpp
CopilotAI review requested due to automatic review settings May 21, 2026 22:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
CopilotAI review requested due to automatic review settings May 22, 2026 00:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
@adamperlin
adamperlin merged commit 18c8c26 into dotnet:mainMay 22, 2026
137 of 139 checks passed
@adamperlin
adamperlin deleted the adamperlin/wasm-simd-encodings branch May 22, 2026 21:06
@dotnet-milestone-botdotnet-milestone-botBot added this to the 11.0-preview6 milestone May 23, 2026
@adamperlinadamperlin mentioned this pull request May 29, 2026
16 tasks
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jun 23, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-wasmWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@adamperlin@kg@am11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[Wasm RyuJIT] Packed Simd Encodings - #128229

Merged
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings
May 22, 2026
Merged

[Wasm RyuJIT] Packed Simd Encodings#128229
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings

Conversation

@adamperlin

Copy link
Copy Markdown
Contributor

This PR adds emitter support for the Wasm Packed Simd v128 extension, including new instruction formats and instrDesc definitions. It also enables basic emitter unit testing support for these SIMD instructions, since we are not yet utilizing these instructions in codegen and so we aren't exercising the encoding paths.

Adam Perlinand others added 6 commits May 8, 2026 16:10
Add instruction definitions and emitter infrastructure for the WebAssembly
packed SIMD (128-bit) instruction set:
- Add ~200 INST2 entries in instrswasm.h for all SIMD opcodes (0xFD prefix)
- Add 4 new instruction formats: IF_V128_CONST, IF_LANE, IF_MEMARG_LANE,
IF_SHUFFLE in emitfmtswasm.h
- Add instrDesc subclasses in emit.h for SIMD-specific payloads:
instrDescV128Const, instrDescShuffle, instrDescLane, instrDescMemargLane
- Increase TARGET_WASM instruction bit-field to 9 bits (512 max) in emit.h
- Add emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) with size calculation and output encoding in emitwasm.cpp
- Declare new emit functions in emitwasm.h
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add genWasmEmitterUnitTestsSimd() to exercise the new SIMD instruction
emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) and representative plain-opcode SIMD instructions.
Activated via DOTNET_JitEmitUnitTests=* and
DOTNET_JitEmitUnitTestsSections=simd (or all).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update emitDispIns to support new SIMD instructions
Properly emit block ... end in emitter unit tests for Wasm
CopilotAI review requested due to automatic review settings May 14, 2026 21:32
@github-actionsgithub-actionsBot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 14, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR wires up emitter-level support for the WebAssembly Packed SIMD (v128 / 0xFD-prefix) instruction set in the experimental Wasm RyuJIT back end. It adds the full SIMD instruction table, new instrDesc shapes and insFormats for the encodings that don't fit existing categories (v128 immediate, lane index, memarg+lane), and a debug-only emitter unit test that exercises the new encoding paths since no real codegen consumes them yet.

Changes:

  • Add the SIMD opcode table (instrswasm.h) and new IF_V128 / IF_LANE / IF_MEMARG_LANE formats with corresponding instrDescV128Imm and instrDescMemargLane descriptor types.
  • Implement emitIns_V128Imm, emitIns_Lane, emitIns_MemargLane, plus matching size/encode/display paths in emitwasm.cpp, and expand _idIns to 9 bits on WASM to fit the larger instruction count.
  • Add genWasmEmitterUnitTestsSimd (DEBUG-only) and hook the Wasm simd test section into genEmitterUnitTests, including a Wasm-specific skip-label scheme using INS_block / INS_br.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/coreclr/jit/instrswasm.hAdds full v128 SIMD instruction list with IF_OPCODE/IF_MEMARG/IF_V128/IF_LANE/IF_MEMARG_LANE formats and 0xFD prefix.
src/coreclr/jit/emitfmtswasm.hDefines the three new SIMD encoding formats.
src/coreclr/jit/emit.hWidens _idIns to 9 bits on Wasm; adds idIsV128Imm/idIsMemargLaneImm; declares instrDescV128Imm/instrDescMemargLane.
src/coreclr/jit/emitwasm.hDeclares new emit helpers and accessors for the SIMD descriptors.
src/coreclr/jit/emitwasm.cppImplements emit/size/output/display paths for the new formats; also disables IF_CODE_SIZE display with #if FALSE (unrelated to SIMD).
src/coreclr/jit/codegen.hDeclares genWasmEmitterUnitTestsSimd.
src/coreclr/jit/codegenwasm.cppAdds the SIMD emitter unit test with representative coverage across all new formats.
src/coreclr/jit/codegenlinear.cppRoutes the simd unit-test section on Wasm and uses block/br instead of a direct jump to skip over the tests.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 14, 2026 21:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/instrswasm.h
@am11am11 added the arch-wasm WebAssembly architecture label May 14, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.

CopilotAI review requested due to automatic review settings May 20, 2026 21:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
kg
kg approved these changes May 21, 2026

@kgkg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, comments and copilot feedback aside

CopilotAI review requested due to automatic review settings May 21, 2026 21:21

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/codegeninterface.h Outdated
Comment threadsrc/coreclr/jit/instr.cpp
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 21, 2026 22:07

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegeninterface.h
Comment threadsrc/coreclr/jit/instr.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Comment threadsrc/coreclr/jit/codegenwasm.cpp
CopilotAI review requested due to automatic review settings May 21, 2026 22:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
CopilotAI review requested due to automatic review settings May 22, 2026 00:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
@adamperlin
adamperlin merged commit 18c8c26 into dotnet:mainMay 22, 2026
137 of 139 checks passed
@adamperlin
adamperlin deleted the adamperlin/wasm-simd-encodings branch May 22, 2026 21:06
@dotnet-milestone-botdotnet-milestone-botBot added this to the 11.0-preview6 milestone May 23, 2026
@adamperlinadamperlin mentioned this pull request May 29, 2026
16 tasks
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jun 23, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-wasmWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@adamperlin@kg@am11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Wasm RyuJIT] Packed Simd Encodings - #128229

Merged
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings
May 22, 2026
Merged

[Wasm RyuJIT] Packed Simd Encodings#128229
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings

Conversation

@adamperlin

Copy link
Copy Markdown
Contributor

This PR adds emitter support for the Wasm Packed Simd v128 extension, including new instruction formats and instrDesc definitions. It also enables basic emitter unit testing support for these SIMD instructions, since we are not yet utilizing these instructions in codegen and so we aren't exercising the encoding paths.

Adam Perlinand others added 6 commits May 8, 2026 16:10
Add instruction definitions and emitter infrastructure for the WebAssembly
packed SIMD (128-bit) instruction set:
- Add ~200 INST2 entries in instrswasm.h for all SIMD opcodes (0xFD prefix)
- Add 4 new instruction formats: IF_V128_CONST, IF_LANE, IF_MEMARG_LANE,
IF_SHUFFLE in emitfmtswasm.h
- Add instrDesc subclasses in emit.h for SIMD-specific payloads:
instrDescV128Const, instrDescShuffle, instrDescLane, instrDescMemargLane
- Increase TARGET_WASM instruction bit-field to 9 bits (512 max) in emit.h
- Add emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) with size calculation and output encoding in emitwasm.cpp
- Declare new emit functions in emitwasm.h
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add genWasmEmitterUnitTestsSimd() to exercise the new SIMD instruction
emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) and representative plain-opcode SIMD instructions.
Activated via DOTNET_JitEmitUnitTests=* and
DOTNET_JitEmitUnitTestsSections=simd (or all).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update emitDispIns to support new SIMD instructions
Properly emit block ... end in emitter unit tests for Wasm
CopilotAI review requested due to automatic review settings May 14, 2026 21:32
@github-actionsgithub-actionsBot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 14, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR wires up emitter-level support for the WebAssembly Packed SIMD (v128 / 0xFD-prefix) instruction set in the experimental Wasm RyuJIT back end. It adds the full SIMD instruction table, new instrDesc shapes and insFormats for the encodings that don't fit existing categories (v128 immediate, lane index, memarg+lane), and a debug-only emitter unit test that exercises the new encoding paths since no real codegen consumes them yet.

Changes:

  • Add the SIMD opcode table (instrswasm.h) and new IF_V128 / IF_LANE / IF_MEMARG_LANE formats with corresponding instrDescV128Imm and instrDescMemargLane descriptor types.
  • Implement emitIns_V128Imm, emitIns_Lane, emitIns_MemargLane, plus matching size/encode/display paths in emitwasm.cpp, and expand _idIns to 9 bits on WASM to fit the larger instruction count.
  • Add genWasmEmitterUnitTestsSimd (DEBUG-only) and hook the Wasm simd test section into genEmitterUnitTests, including a Wasm-specific skip-label scheme using INS_block / INS_br.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/coreclr/jit/instrswasm.hAdds full v128 SIMD instruction list with IF_OPCODE/IF_MEMARG/IF_V128/IF_LANE/IF_MEMARG_LANE formats and 0xFD prefix.
src/coreclr/jit/emitfmtswasm.hDefines the three new SIMD encoding formats.
src/coreclr/jit/emit.hWidens _idIns to 9 bits on Wasm; adds idIsV128Imm/idIsMemargLaneImm; declares instrDescV128Imm/instrDescMemargLane.
src/coreclr/jit/emitwasm.hDeclares new emit helpers and accessors for the SIMD descriptors.
src/coreclr/jit/emitwasm.cppImplements emit/size/output/display paths for the new formats; also disables IF_CODE_SIZE display with #if FALSE (unrelated to SIMD).
src/coreclr/jit/codegen.hDeclares genWasmEmitterUnitTestsSimd.
src/coreclr/jit/codegenwasm.cppAdds the SIMD emitter unit test with representative coverage across all new formats.
src/coreclr/jit/codegenlinear.cppRoutes the simd unit-test section on Wasm and uses block/br instead of a direct jump to skip over the tests.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 14, 2026 21:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/instrswasm.h
@am11am11 added the arch-wasm WebAssembly architecture label May 14, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.

CopilotAI review requested due to automatic review settings May 20, 2026 21:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
kg
kg approved these changes May 21, 2026

@kgkg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, comments and copilot feedback aside

CopilotAI review requested due to automatic review settings May 21, 2026 21:21

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/codegeninterface.h Outdated
Comment threadsrc/coreclr/jit/instr.cpp
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 21, 2026 22:07

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegeninterface.h
Comment threadsrc/coreclr/jit/instr.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Comment threadsrc/coreclr/jit/codegenwasm.cpp
CopilotAI review requested due to automatic review settings May 21, 2026 22:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
CopilotAI review requested due to automatic review settings May 22, 2026 00:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
@adamperlin
adamperlin merged commit 18c8c26 into dotnet:mainMay 22, 2026
137 of 139 checks passed
@adamperlin
adamperlin deleted the adamperlin/wasm-simd-encodings branch May 22, 2026 21:06
@dotnet-milestone-botdotnet-milestone-botBot added this to the 11.0-preview6 milestone May 23, 2026
@adamperlinadamperlin mentioned this pull request May 29, 2026
16 tasks
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jun 23, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-wasmWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@adamperlin@kg@am11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Wasm RyuJIT] Packed Simd Encodings - #128229

Merged
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings
May 22, 2026
Merged

[Wasm RyuJIT] Packed Simd Encodings#128229
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings

Conversation

@adamperlin

Copy link
Copy Markdown
Contributor

This PR adds emitter support for the Wasm Packed Simd v128 extension, including new instruction formats and instrDesc definitions. It also enables basic emitter unit testing support for these SIMD instructions, since we are not yet utilizing these instructions in codegen and so we aren't exercising the encoding paths.

Adam Perlinand others added 6 commits May 8, 2026 16:10
Add instruction definitions and emitter infrastructure for the WebAssembly
packed SIMD (128-bit) instruction set:
- Add ~200 INST2 entries in instrswasm.h for all SIMD opcodes (0xFD prefix)
- Add 4 new instruction formats: IF_V128_CONST, IF_LANE, IF_MEMARG_LANE,
IF_SHUFFLE in emitfmtswasm.h
- Add instrDesc subclasses in emit.h for SIMD-specific payloads:
instrDescV128Const, instrDescShuffle, instrDescLane, instrDescMemargLane
- Increase TARGET_WASM instruction bit-field to 9 bits (512 max) in emit.h
- Add emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) with size calculation and output encoding in emitwasm.cpp
- Declare new emit functions in emitwasm.h
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add genWasmEmitterUnitTestsSimd() to exercise the new SIMD instruction
emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) and representative plain-opcode SIMD instructions.
Activated via DOTNET_JitEmitUnitTests=* and
DOTNET_JitEmitUnitTestsSections=simd (or all).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update emitDispIns to support new SIMD instructions
Properly emit block ... end in emitter unit tests for Wasm
CopilotAI review requested due to automatic review settings May 14, 2026 21:32
@github-actionsgithub-actionsBot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 14, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR wires up emitter-level support for the WebAssembly Packed SIMD (v128 / 0xFD-prefix) instruction set in the experimental Wasm RyuJIT back end. It adds the full SIMD instruction table, new instrDesc shapes and insFormats for the encodings that don't fit existing categories (v128 immediate, lane index, memarg+lane), and a debug-only emitter unit test that exercises the new encoding paths since no real codegen consumes them yet.

Changes:

  • Add the SIMD opcode table (instrswasm.h) and new IF_V128 / IF_LANE / IF_MEMARG_LANE formats with corresponding instrDescV128Imm and instrDescMemargLane descriptor types.
  • Implement emitIns_V128Imm, emitIns_Lane, emitIns_MemargLane, plus matching size/encode/display paths in emitwasm.cpp, and expand _idIns to 9 bits on WASM to fit the larger instruction count.
  • Add genWasmEmitterUnitTestsSimd (DEBUG-only) and hook the Wasm simd test section into genEmitterUnitTests, including a Wasm-specific skip-label scheme using INS_block / INS_br.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/coreclr/jit/instrswasm.hAdds full v128 SIMD instruction list with IF_OPCODE/IF_MEMARG/IF_V128/IF_LANE/IF_MEMARG_LANE formats and 0xFD prefix.
src/coreclr/jit/emitfmtswasm.hDefines the three new SIMD encoding formats.
src/coreclr/jit/emit.hWidens _idIns to 9 bits on Wasm; adds idIsV128Imm/idIsMemargLaneImm; declares instrDescV128Imm/instrDescMemargLane.
src/coreclr/jit/emitwasm.hDeclares new emit helpers and accessors for the SIMD descriptors.
src/coreclr/jit/emitwasm.cppImplements emit/size/output/display paths for the new formats; also disables IF_CODE_SIZE display with #if FALSE (unrelated to SIMD).
src/coreclr/jit/codegen.hDeclares genWasmEmitterUnitTestsSimd.
src/coreclr/jit/codegenwasm.cppAdds the SIMD emitter unit test with representative coverage across all new formats.
src/coreclr/jit/codegenlinear.cppRoutes the simd unit-test section on Wasm and uses block/br instead of a direct jump to skip over the tests.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 14, 2026 21:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/instrswasm.h
@am11am11 added the arch-wasm WebAssembly architecture label May 14, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.

CopilotAI review requested due to automatic review settings May 20, 2026 21:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
kg
kg approved these changes May 21, 2026

@kgkg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, comments and copilot feedback aside

CopilotAI review requested due to automatic review settings May 21, 2026 21:21

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/codegeninterface.h Outdated
Comment threadsrc/coreclr/jit/instr.cpp
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 21, 2026 22:07

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegeninterface.h
Comment threadsrc/coreclr/jit/instr.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Comment threadsrc/coreclr/jit/codegenwasm.cpp
CopilotAI review requested due to automatic review settings May 21, 2026 22:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
CopilotAI review requested due to automatic review settings May 22, 2026 00:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
@adamperlin
adamperlin merged commit 18c8c26 into dotnet:mainMay 22, 2026
137 of 139 checks passed
@adamperlin
adamperlin deleted the adamperlin/wasm-simd-encodings branch May 22, 2026 21:06
@dotnet-milestone-botdotnet-milestone-botBot added this to the 11.0-preview6 milestone May 23, 2026
@adamperlinadamperlin mentioned this pull request May 29, 2026
16 tasks
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jun 23, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-wasmWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@adamperlin@kg@am11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[Wasm RyuJIT] Packed Simd Encodings - #128229

Merged
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings
May 22, 2026
Merged

[Wasm RyuJIT] Packed Simd Encodings#128229
adamperlin merged 25 commits into
dotnet:mainfrom
adamperlin:adamperlin/wasm-simd-encodings

Conversation

@adamperlin

Copy link
Copy Markdown
Contributor

This PR adds emitter support for the Wasm Packed Simd v128 extension, including new instruction formats and instrDesc definitions. It also enables basic emitter unit testing support for these SIMD instructions, since we are not yet utilizing these instructions in codegen and so we aren't exercising the encoding paths.

Adam Perlinand others added 6 commits May 8, 2026 16:10
Add instruction definitions and emitter infrastructure for the WebAssembly
packed SIMD (128-bit) instruction set:
- Add ~200 INST2 entries in instrswasm.h for all SIMD opcodes (0xFD prefix)
- Add 4 new instruction formats: IF_V128_CONST, IF_LANE, IF_MEMARG_LANE,
IF_SHUFFLE in emitfmtswasm.h
- Add instrDesc subclasses in emit.h for SIMD-specific payloads:
instrDescV128Const, instrDescShuffle, instrDescLane, instrDescMemargLane
- Increase TARGET_WASM instruction bit-field to 9 bits (512 max) in emit.h
- Add emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) with size calculation and output encoding in emitwasm.cpp
- Declare new emit functions in emitwasm.h
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add genWasmEmitterUnitTestsSimd() to exercise the new SIMD instruction
emit functions (emitIns_V128Const, emitIns_Lane, emitIns_MemargLane,
emitIns_Shuffle) and representative plain-opcode SIMD instructions.
Activated via DOTNET_JitEmitUnitTests=* and
DOTNET_JitEmitUnitTestsSections=simd (or all).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update emitDispIns to support new SIMD instructions
Properly emit block ... end in emitter unit tests for Wasm
CopilotAI review requested due to automatic review settings May 14, 2026 21:32
@github-actionsgithub-actionsBot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 14, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR wires up emitter-level support for the WebAssembly Packed SIMD (v128 / 0xFD-prefix) instruction set in the experimental Wasm RyuJIT back end. It adds the full SIMD instruction table, new instrDesc shapes and insFormats for the encodings that don't fit existing categories (v128 immediate, lane index, memarg+lane), and a debug-only emitter unit test that exercises the new encoding paths since no real codegen consumes them yet.

Changes:

  • Add the SIMD opcode table (instrswasm.h) and new IF_V128 / IF_LANE / IF_MEMARG_LANE formats with corresponding instrDescV128Imm and instrDescMemargLane descriptor types.
  • Implement emitIns_V128Imm, emitIns_Lane, emitIns_MemargLane, plus matching size/encode/display paths in emitwasm.cpp, and expand _idIns to 9 bits on WASM to fit the larger instruction count.
  • Add genWasmEmitterUnitTestsSimd (DEBUG-only) and hook the Wasm simd test section into genEmitterUnitTests, including a Wasm-specific skip-label scheme using INS_block / INS_br.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/coreclr/jit/instrswasm.hAdds full v128 SIMD instruction list with IF_OPCODE/IF_MEMARG/IF_V128/IF_LANE/IF_MEMARG_LANE formats and 0xFD prefix.
src/coreclr/jit/emitfmtswasm.hDefines the three new SIMD encoding formats.
src/coreclr/jit/emit.hWidens _idIns to 9 bits on Wasm; adds idIsV128Imm/idIsMemargLaneImm; declares instrDescV128Imm/instrDescMemargLane.
src/coreclr/jit/emitwasm.hDeclares new emit helpers and accessors for the SIMD descriptors.
src/coreclr/jit/emitwasm.cppImplements emit/size/output/display paths for the new formats; also disables IF_CODE_SIZE display with #if FALSE (unrelated to SIMD).
src/coreclr/jit/codegen.hDeclares genWasmEmitterUnitTestsSimd.
src/coreclr/jit/codegenwasm.cppAdds the SIMD emitter unit test with representative coverage across all new formats.
src/coreclr/jit/codegenlinear.cppRoutes the simd unit-test section on Wasm and uses block/br instead of a direct jump to skip over the tests.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 14, 2026 21:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenwasm.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/instrswasm.h
@am11am11 added the arch-wasm WebAssembly architecture label May 14, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.

CopilotAI review requested due to automatic review settings May 20, 2026 21:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/codegenlinear.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
kg
kg approved these changes May 21, 2026

@kgkg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, comments and copilot feedback aside

CopilotAI review requested due to automatic review settings May 21, 2026 21:21

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/codegeninterface.h Outdated
Comment threadsrc/coreclr/jit/instr.cpp
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings May 21, 2026 22:07

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Comment threadsrc/coreclr/jit/codegeninterface.h
Comment threadsrc/coreclr/jit/instr.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
Comment threadsrc/coreclr/jit/emitwasm.h
Comment threadsrc/coreclr/jit/codegenwasm.cpp
CopilotAI review requested due to automatic review settings May 21, 2026 22:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Comment threadsrc/coreclr/jit/codegenlinear.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp
CopilotAI review requested due to automatic review settings May 22, 2026 00:29

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Comment threadsrc/coreclr/jit/emitwasm.cpp
Comment threadsrc/coreclr/jit/emitwasm.cpp Outdated
@adamperlin
adamperlin merged commit 18c8c26 into dotnet:mainMay 22, 2026
137 of 139 checks passed
@adamperlin
adamperlin deleted the adamperlin/wasm-simd-encodings branch May 22, 2026 21:06
@dotnet-milestone-botdotnet-milestone-botBot added this to the 11.0-preview6 milestone May 23, 2026
@adamperlinadamperlin mentioned this pull request May 29, 2026
16 tasks
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jun 23, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-wasmWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@adamperlin@kg@am11