alexcrichton opened PR #6279 from alexcrichton:x64-no-pmovszx
to bytecodealliance:main
:
This commit adds lowerings for a suite of sign/zero extension instructions which don't require SSE4.1. Like before these lowerings are based on LLVM's output.
This commit also deletes special casees for
i16x8.extmul_{low,high}_*
since the output of the special case is the same as the default lowering of all the component instructions used within as well.<!--
Please make sure you include the following information:
If this work has been discussed elsewhere, please include a link to that
conversation. If it was discussed in an issue, just mention "issue #...".Explain why this change is needed. If the details are in an issue already,
this can be brief.Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.htmlPlease ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->
alexcrichton requested abrown for a review on PR #6279.
alexcrichton requested wasmtime-compiler-reviewers for a review on PR #6279.
abrown submitted PR review.
abrown submitted PR review.
abrown created PR review comment:
Can't remember all the history of
PALIGNR + PMOVZX
above but thisPUNPCKH
might be a better lowering even in the SSE 4.1 case (fewer dependencies?). Just a thought, haven't looked too closely at this...
alexcrichton updated PR #6279.
alexcrichton created PR review comment:
I believe
llvm-mca
agrees with you, and LLVM appears to, even when I use the intrinsics forpalignr + pmovzx
, to still use thepupckh
combo with an xor-to-create-zero.
alexcrichton has enabled auto merge for PR #6279.
alexcrichton merged PR #6279.
Last updated: Nov 22 2024 at 16:03 UTC