-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Winch: v128 min
, max
, extmul
and extadd
#10205
Winch: v128 min
, max
, extmul
and extadd
#10205
Conversation
cc120ef
to
d8e3ef7
Compare
Subscribe to Label Action
This issue or pull request has been labeled: "winch"
Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
I can grab this one. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
FYI, there are a couple of conflicts. |
d8e3ef7
to
5a5fbbe
Compare
448c221
to
bd2fe3e
Compare
bd2fe3e
to
1bf3b5a
Compare
rebased @saulecabrera |
It seems that the list of tests that require AVX needs updating: https://github.com/bytecodealliance/wasmtime/actions/runs/13273954433/job/37059662498 |
354172f
to
596bf30
Compare
it looks good now, but I was unable to find the CI failure the previous time... |
This PR implements another batch of SIMD instruction for winch x64 backend:
i8x16.max_u
i16x8.max_u
i32x4.max_u
i8x16.max_s
i16x8.max_s
i32x4.max_s
i8x16.min_u
i16x8.min_u
i32x4.min_u
i8x16.min_s
i16x8.min_s
i32x4.min_s
i16x8.extmul_low_i8x16_s
i16x8.extmul_high_i8x16_s
i16x8.extmul_low_i8x16_u
i16x8.extmul_high_i8x16_u
i32x4.extmul_low_i16x8_s
i32x4.extmul_high_i16x8_s
i32x4.extmul_low_i16x8_u
i32x4.extmul_high_i16x8_u
i64x2.extmul_low_i32x4_s
i64x2.extmul_high_i32x4_s
i64x2.extmul_low_i32x4_u
i64x2.extmul_high_i32x4_u
i16x8.extadd_pairwise_i8x16_s
i16x8.extadd_pairwise_i8x16_u
i32x4.extadd_pairwise_i16x8_s
i32x4.extadd_pairwise_i16x8_u
The add-extend and mul-extend operation are implemented in terms of already existing primitive. This is because almost every single one of those wasm instruction resulted in a special sequence of x64 instruction. While the current implemention emits far from optimal code, it has the advantage of being straighforward. We can always specialize the implementations later.
#8093