x64: port icmp to ISLE#3886
Conversation
|
@cfallin or @fitzgen: trying to port these instructions over is painful. I'm stuck on how to best lower this |
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 |
Can this not use |
cfallin
left a comment
There was a problem hiding this comment.
This looks good to me, thanks! Just one potential isel improvement idea below but nothing needed for correctness.
| (rule (x64_and_with_flags_paired ty src1 src2) | ||
| (let ((dst WritableGpr (temp_writable_gpr))) | ||
| (ProducesFlags.ProducesFlagsSideEffect | ||
| (MInst.AluRmiR (operand_size_of_type_32_64 ty) |
There was a problem hiding this comment.
We have support for emitting test I think, which IIRC is to and what cmp is to sub (i.e. doesn't write a dest, so wouldn't need to add to register pressure here) -- would it be possible to use that here?
There was a problem hiding this comment.
Ah, yeah, that's a good point; let me do that in a follow-on PR.
|
I haven't looked much into the cause, but fuzzers over the weekend found this bug in this PR -- #3951 |
This change ports the lowering of the
icmpinstruction to ISLE.