This repository was archived by the owner on Jun 26, 2020. It is now read-only.
Improve extractlane and replacelane on x86#943
Merged
Conversation
8712c78 to
2c902c3
Compare
2c902c3 to
42d0ab4
Compare
Member
Author
|
@bnjbvr rebased to fix conflicts. |
3 tasks
bnjbvr
suggested changes
Sep 5, 2019
bnjbvr
left a comment
Member
There was a problem hiding this comment.
Great job. I think there might be some simplifications, maybe some bugs.
10fc6eb to
b2e9e09
Compare
b2e9e09 to
0f04418
Compare
bnjbvr
approved these changes
Sep 10, 2019
bnjbvr
left a comment
Member
There was a problem hiding this comment.
LGTM, thanks! My only strong ask before merging would be to make sure that each commit compiles properly and all tests pass on each commit, just to not break bisection in the future. If that's too much hassle, feel free to use the squash hammer.
raw_bitcast matches the intent of this legalization more clearly (to simply change the CLIF type without changing any bits) and the additional null encodings added are necessary for later instructions
…float vector This commit is based on the assumption that floats are already stored in XMM registers in x86. When extracting a lane, cranelift was moving the float to a regular register and back to an XMM register; this change avoids this by shuffling the float value to the lowest bits of the XMM register. It also assumes that the upper bits can be left as is (instead of zeroing them out).
0f04418 to
8255ef0
Compare
walac
added a commit
to walac/cranelift
that referenced
this pull request
Sep 18, 2019
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Since cranelift stores float values in XMM registers there is no need for any register movement when inserting/extracting a float into/from a vector, which are also stored in XMM registers. This change depends on #868 and adds several x86-specific instructions in order to legalize the cranelift instructions to x86.