X64: port the rest of icmp to ISLE (#4254)

Finish migrating icmp to ISLE for x64
This commit is contained in:
Trevor Elliott
2022-06-13 16:34:11 -07:00
committed by GitHub
parent 43d4f0b93b
commit 7e0bb465d0
5 changed files with 121 additions and 74 deletions

View File

@@ -903,16 +903,7 @@ fn lower_insn_to_regs<C: LowerCtx<I = Inst>>(
| Opcode::FmaxPseudo => implemented_in_isle(ctx),
Opcode::Icmp => {
let condcode = ctx.data(insn).cond_code().unwrap();
let dst = get_output_reg(ctx, outputs[0]).only_reg().unwrap();
let ty = ctx.input_ty(insn, 0);
if ty == types::I128 && condcode != IntCC::Equal && condcode != IntCC::NotEqual {
let condcode = emit_cmp(ctx, insn, condcode);
let cc = CC::from_intcc(condcode);
ctx.emit(Inst::setcc(cc, dst));
} else {
implemented_in_isle(ctx);
}
implemented_in_isle(ctx);
}
Opcode::Fcmp => {