x64: Lower bitcast, fabs, and fneg in ISLE#4729
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 |
|
|
||
| (rule (lower (has_type $F32X4 (fneg x))) | ||
| (x64_xorps x | ||
| (x64_pslld (vector_all_ones $F32X4) |
There was a problem hiding this comment.
I wonder, would it be better to use a VCodeConstant here to get the appropriate MSBs-only-in-each-lane value?
There was a problem hiding this comment.
Would that be a savings over the two instructions?
There was a problem hiding this comment.
Possibly, though looking at xorps I see the basic SSE version is not reg, reg/mem but just reg, reg so it would still be a separate load; one load vs. dependent chain of two 1-cycle ops, the latter likely wins. Anyway it's an unimportant enough question that I don't care too much to investigate further :-)
409dbe1 to
30e2041
Compare
30e2041 to
5537332
Compare
Migrate the
bitcast,fabs, andfneginstructions to ISLE