This repository has been archived by the owner on Jun 26, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 201
I128 #795
Merged
Merged
I128 #795
Changes from all commits
Commits
Show all changes
27 commits
Select commit
Hold shift + click to select a range
2ec5311
Basic i128 support
bjorn3 a1316ea
Add test
bjorn3 07c0f55
Use little endian byte order in i128 test
bjorn3 9f14572
Fix WideInt max size in insturctions.py
bjorn3 7684dd2
Handle isplit when it is not the result of a legalization
bjorn3 b3000bf
Rustfmt
bjorn3 6a97bba
Fix isplit legalization
bjorn3 3394ebf
[WIP]
bjorn3 e1ccfc4
Fix bug when i128 ebb param is unused
bjorn3 159442c
[meta] Fix legalization in presence of varargs
bjorn3 c95cd4b
[meta] Give a nicer error message when a legalization uses an incorre…
bjorn3 1499092
[meta] Add some Debug derives
bjorn3 9cd3b69
Legalize brz.i128 and brnz.i128
bjorn3 97ed5ce
Remove some dbg! invocations
bjorn3 4e83224
Narrowing legalize some more bitops
bjorn3 95dda59
Rustfmt
bjorn3 d803d7c
Fix lone isplit, when the corresponding iconcat will be created later…
bjorn3 0315a55
Fix warnings
bjorn3 49f5667
Legalize load.i128 and store.i128
bjorn3 2c888da
Add b128 type to fix tests
bjorn3 04cc071
Legalize load.i128 and store.i128 with arbitrary offsets
bjorn3 f3ee860
Fix compilation
bjorn3 944e1d9
Fix load.i64 and store legalization
bjorn3 7e4525a
[split] Prevent double legalization of isplit and vsplit
bjorn3 c2c1238
Fix compilation
bjorn3 974d23d
Fix review comments
bjorn3 3e4e36f
Fix rebase
bjorn3 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.
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.
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.
Can you say more about why this limit is needed? 1-lane vectors aren't common, and Cranelift won't necessarily support them right now, but the concept is sometimes useful, eg. with instructions like and/or/xor which are sometimes useful to think of in terms of an i128 which nonetheless lives in a vector register.
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.
When using
bind_vector
with a single lane, it will emit types likeI128X1
in the final output, which is not a valid type, onlyI128
is. So by adding this assert, we can catch those before generating invalid rust code. If/when we add support fornum_lanes == 1
this assert could be removed.