x64: Lower fcopysign, ceil, floor, nearest, and trunc in ISLE#4730
Conversation
Subscribe to Label ActionDetailsThis 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 |
cfallin
left a comment
There was a problem hiding this comment.
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.
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 PatternInsts 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.