subotac opened PR #14029 from subotac:fix/aarch64-atomic-umin-zero-extension to bytecodealliance:main:
Fixes #13972.
Zero-extend i8 and i16 operands in non-LSE AArch64 atomic
umin/umaxcomparison loops. Values produced byireducecan retain high register bits, so comparing the unextended 32-bit operand can select the wrong
subword value.This updates the assembly and binary-emission expectations and adds runtime cases with dirty high operand bits.
## Testing
-
cargo run -p cranelift-tools -- test cranelift/filetests/filetests/isa/aarch64/atomic-rmw.clif cranelift/filetests/filetests/runtests/atomic-rmw-subword-little.clif
-cargo test -p cranelift-codegen --features all-arch --lib test_aarch64_binemit
-cargo clippy -p cranelift-codegen --features all-arch --lib -- -D warnings
-cargo fmt -p cranelift-codegen -p cranelift-filetests -- --check
subotac requested fitzgen for a review on PR #14029.
subotac requested wasmtime-compiler-reviewers for a review on PR #14029.
github-actions[bot] added the label cranelift on PR #14029.
github-actions[bot] added the label cranelift:area:aarch64 on PR #14029.
:thumbs_up: fitzgen submitted PR review:
Thanks!
fitzgen added PR #14029 Fix AArch64 subword atomic unsigned min/max to the merge queue.
:check: fitzgen merged PR #14029.
fitzgen removed PR #14029 Fix AArch64 subword atomic unsigned min/max from the merge queue.
Last updated: Aug 30 2026 at 09:07 UTC