Add wasm HardwareIntrinsics PR pipeline#130975
Conversation
The wasm HardwareIntrinsics tests only compile when TargetArchitecture is wasm, so no PR-triggered intrinsics pipeline exercised them -- letting build breaks like dotnet#130962 slip through. Mirror hardware-intrinsics-arm64.yml with a browser_wasm leg filtered on src/coreclr/jit/*wasm*, building the tests for coverage only (browser/V8 can't run them yet). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Azure Pipelines: Successfully started running 4 pipeline(s). 11 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
Tagging subscribers to this area: @dotnet/area-system-runtime-intrinsics |
There was a problem hiding this comment.
Pull request overview
Adds a new PR-triggered Azure Pipelines definition to ensure the wasm-specific HardwareIntrinsics test subtree (src/tests/JIT/HardwareIntrinsics/Wasm) is compiled on relevant PRs, preventing wasm-only intrinsic test compile breaks from slipping until outerloop/rolling wasm builds.
Changes:
- Introduces a new
hardware-intrinsics-wasmPR pipeline with path filters targeting wasm JIT files and wasm HardwareIntrinsics tests. - Adds a new CoreCLR build-only template job that builds
clr+libs+packsand compiles the wasm HardwareIntrinsics test tree withEnableWasmHWIntrinsicsTests=truewhile explicitly skipping Helix execution (sendToHelix: false).
Show a summary per file
| File | Description |
|---|---|
| eng/pipelines/coreclr/templates/jit-hardware-intrinsics-wasm.yml | Adds a browser-wasm CoreCLR build job that compiles the wasm HardwareIntrinsics tests (build-only, no Helix execution). |
| eng/pipelines/coreclr/hardware-intrinsics-wasm.yml | Adds a PR-triggered pipeline with path filters and a browser_wasm leg wired to the new template. |
Copilot's findings
- Files reviewed: 2/2 changed files
- Comments generated: 0
|
Azure Pipelines: Successfully started running 4 pipeline(s). 11 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
CC. @dhartglassMSFT (as you did the same work for -arm64), @dotnet/wasm-contrib Working to get the AzDo pipeline too, this just ensures we aren't breaking the build (like the error that slipped through) and is the same we do for arm64/xarch |
adamperlin
left a comment
There was a problem hiding this comment.
This seems reasonable to me especially since this is build only, but I'll let someone more familiar with CI sign off.
|
@akoeplinger for sign-off. This should unblock getting the azdo side finished |
The wasm
HardwareIntrinsicstests (src/tests/JIT/HardwareIntrinsics/Wasm) are gated byHWITestsWasmOnly->CLRTestTargetUnsupportedunlessTargetArchitecture == wasm(plus anEnableWasmHWIntrinsicsTestsopt-in). As a result, none of the existing PR-triggered intrinsics pipelines ever compile them:runtime-coreclr hardware-intrinsics(src/coreclr/jit/**, x86/x64/arm/osx) passes without building the wasm tree.hardware-intrinsics-arm64(src/coreclr/jit/*arm64*) is skipped for wasm-only changes.So a break in the wasm intrinsic tests only surfaces in a rolling/outerloop browser-wasm build, which is what required the #130962 follow-up to #130850.
This adds a wasm counterpart mirroring
hardware-intrinsics-arm64.yml:eng/pipelines/coreclr/hardware-intrinsics-wasm.yml-- PR-triggered, filtered onsrc/coreclr/jit/*wasm*(covershwintrinsic*wasm*,lowerwasm.cpp,regallocwasm.cpp) plussrc/tests/JIT/HardwareIntrinsics/Wasm/**. Runs abrowser_wasmleg with/p:EnableWasmHWIntrinsicsTests=true -tree:JIT/HardwareIntrinsics/Wasm.eng/pipelines/coreclr/templates/jit-hardware-intrinsics-wasm.yml-- modeled on the existingwasi-wasm-coreclr-runtime-tests.yml(global-build-job,runtimeFlavor: coreclr,-s clr+libs+packs). It is build-only (sendToHelix: false) since browser/V8 can''t execute these tests yet -- enough to catch compile breaks like Fix build break in PackedSimdTests in outerloop #130962.Like
hardware-intrinsics-arm64.yml, the new pipeline still needs an Azure DevOps definition registered against the YAML to appear as a PR check.Note
This PR description was drafted by Copilot.