-
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
x64: Lower fcopysign, ceil, floor, nearest, and trunc in ISLE #4730
x64: Lower fcopysign, ceil, floor, nearest, and trunc in ISLE #4730
Conversation
Subscribe to Label Action
This issue or pull request has been labeled: "cranelift", "cranelift:area:x64", "isle"
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.
r+ on new commits; will approve once earlier PRs merge and this is unstacked.
Commentary below on rule ordering but I don't think we need to do anything about it now, given context!
(rule (lower (has_type (use_sse41) (ceil a @ (value_type $F32)))) | ||
(x64_roundss a (RoundImm.RoundUp))) | ||
|
||
(rule (lower (ceil a @ (value_type $F32))) |
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.
Here we're implicitly relying on the rule-ordering heuristic again (that pesky #4717!): this rule doesn't do anything to guard on not SSE4.1 and it's not clear to me that the sequence of PatternInst
s is "less specific" and shadowed by the above rule without going through the compilation in my head... let's leave this for now though as we are likely to resolve #4717 soon.
ff513b4
to
9a49520
Compare
9a49520
to
ef97072
Compare
Add tests for
fcopysign
,ceil
,floor
,nearest
, andtrunc
, and lower all of those instructions in ISLE.