Skip to content

Fix ISLE optimization for vector inputs#12179

Merged
cfallin merged 1 commit intobytecodealliance:mainfrom
alexcrichton:fix-isle-for-128
Dec 18, 2025
Merged

Fix ISLE optimization for vector inputs#12179
cfallin merged 1 commit intobytecodealliance:mainfrom
alexcrichton:fix-isle-for-128

Conversation

@alexcrichton
Copy link
Member

Add some more fits_in_64 constraints to types to handle the fact that iconst_u can't construct a 128-bit output.

Closes #12170

Add some more `fits_in_64` constraints to types to handle the fact that
`iconst_u` can't construct a 128-bit output.

Closes bytecodealliance#12170
@alexcrichton alexcrichton requested review from a team as code owners December 18, 2025 18:17
@alexcrichton alexcrichton requested review from abrown and pchickey and removed request for a team December 18, 2025 18:17
Copy link
Member

@cfallin cfallin left a comment

Choose a reason for hiding this comment

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

Thanks!

@cfallin cfallin enabled auto-merge December 18, 2025 18:18
@cfallin cfallin added this pull request to the merge queue Dec 18, 2025
Merged via the queue into bytecodealliance:main with commit 05277cf Dec 18, 2025
45 checks passed
@alexcrichton alexcrichton deleted the fix-isle-for-128 branch December 18, 2025 20:20
alexcrichton added a commit to alexcrichton/wasmtime that referenced this pull request Jan 14, 2026
Add some more `fits_in_64` constraints to types to handle the fact that
`iconst_u` can't construct a 128-bit output.

Closes bytecodealliance#12170
cfallin pushed a commit that referenced this pull request Jan 14, 2026
* Fix ISLE optimization for vector inputs (#12179)

Add some more `fits_in_64` constraints to types to handle the fact that
`iconst_u` can't construct a 128-bit output.

Closes #12170

* x64: Fix lowering rules for `shld` (#12321)

* x64: Fix lowering rules for `shld`

These failed to account for the edge case of 0/width(type) shifts where
the `shld` instruction is no longer applicable. Guards are added to
ensure that the shift amounts are both greater than zero.

This in theory shouldn't have much practical impact since shift-by-zero
and shift-by-type-width are both optimized away in the mid-end. That
means that this is only possible to expose with opt-level=0 which may
help explain why this went undiscovered for ~1 year.

Closes #12318

* Fix Winch's encoding of shift-by-32

* Fix ISLE icmp optimization rules for vector inputs (#12335)

Closes #12328

* Add release notes

---------

Co-authored-by: Zijie Zhao <zzjas98@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cranelift: unimplemented for > 64 bits

2 participants