-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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: Add SIMD load and extend and load and splat instructions for x64 #9950
Winch: Add SIMD load and extend and load and splat instructions for x64 #9950
Conversation
I can take this review. |
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 |
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.
Looking good! Left some comments inline.
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.
Thanks!
…64 (#9950) * Winch: Add SIMD load and extend and load and splat instructions * Try removing simd_align from the unsupported for Winch list * No more todos and rename loadkind variant * Use AVX instructions for loads * Adjust load with splat instructions to use AVX * SIMD spec tests for Winch should fail on x64 MacOS * Refine check for should-fail * Adjust conditional check to avoid compile error
Part of #8093. Adds support on x64 with AVX2 for:
v128.load8x8_s
v128.load8x8_u
v128.load16x4_s
v128.load16x4_u
v128.load32x2_s
v128.load32x2_u
v128.load8_splat
v128.load16_splat
v128.load32_splat
v128.load64_splat
I've changed
wasm_load
on the macroassemblers to take aLoadKind
instead ofOption<ExtendKind>
to model the additional vector operations (vector extends and splats), but I'm open to changing that to a different abstraction.