isle: Migrate f32const/f64const to ISLE #3537
Merged
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.
This moves the
f32const
andf64const
instructions fromlower.rs
toISLE. I was originally going to add something else but due to the
isle.rs
's manual use ofconstructor_imm(..)
it necessitated fillingout the
imm
cases for f32/f64 constants, so I figured I'd go ahead andmove these instructions as well.
The special case for 0 constants which use
xorp{s,d}
is preserved fromlower.rs
today, but a special case isn't added for the all-onesconstant. The comment says to use
cmpeqp{s,d}
but as discovered onother recent PRs that's not quite sufficient because comparing a
register against itself which happens to be NaN wouldn't work, so
something else will be required (perhaps
pcmpeq
or similar? I figuredI'd defer to later)