avanhatt opened PR #14631 from avanhatt:i32x2-scalar-guards to bytecodealliance:main:
With changes to include more vector logic, the ISLE verifier found several more cases related to #14566 where mid-end rules are not correctly guarded to exclude vector 64-bit vector types such as
i32x2. Theiconst_sandiconst_uterms handle scalars,i128, and 128-bit vectors, so attempts to build 64-bit vector constants fail to match and cause compiler panics.
- (#14566)
(x >> k) << k -> x & mask(shifts.isle:27, shifts.isle:32) is guarded byfits_in_64and builds an invalidiconstof vector type.(~x) + x -> -1andx + (~x) -> -1(arithmetic.isle:333, arithmetic.isle:334) buildiconst_swithout guard.-(~x) -> x + 1and~(-x) -> x - 1(arithmetic.isle:590, arithmetic.isle:593) buildiconst_uwithout guard.This PR adds filetests for each and fixes with
ty_intguards. Fixes #14566. Will put up verifier/spec changes as separate PR.
avanhatt requested wasmtime-compiler-reviewers for a review on PR #14631.
avanhatt requested fitzgen for a review on PR #14631.
github-actions[bot] added the label cranelift on PR #14631.
github-actions[bot] added the label isle on PR #14631.
:thumbs_up: cfallin submitted PR review:
Thanks!
cfallin added PR #14631 Cranelift: ISLE: opt: add missing ty_int guards to 6 rules to the merge queue.
github-actions[bot] commented on PR #14631:
Subscribe to Label Action
cc @avanhatt, @cfallin, @fitzgen, @mmcloughlin
<details>
This issue or pull request has been labeled: "cranelift", "isle"Thus the following users have been cc'd because of the following labels:
- avanhatt: isle
- cfallin: isle
- fitzgen: isle
- mmcloughlin: isle
To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.
Learn more.
</details>
cfallin removed PR #14631 Cranelift: ISLE: opt: add missing ty_int guards to 6 rules from the merge queue.
:check: cfallin merged PR #14631.
Last updated: Oct 11 2026 at 04:10 UTC