riscv64: Implement fcmp in ISLE (#5512)
Rework the compilation of fcmp in the riscv64 backend to be in ISLE, removing the need for the dedicated Fcmp instruction. This change is motivated by #5500, which showed that the riscv64 backend was generating branch instructions in the middle of a basic block. We can't remove lower_br_fcmp quite yet as it's used in a few places in the emit module, but it's now no longer reachable from the ISLE lowerings. Fixes #5500
This commit is contained in:
@@ -2177,14 +2177,6 @@ fn riscv64_worst_case_instruction_size() {
|
||||
//there are all candidates potential generate a lot of bytes.
|
||||
let mut candidates: Vec<MInst> = vec![];
|
||||
|
||||
candidates.push(Inst::Fcmp {
|
||||
rd: writable_a0(),
|
||||
cc: FloatCC::UnorderedOrLessThanOrEqual,
|
||||
ty: F64,
|
||||
rs1: fa1(),
|
||||
rs2: fa0(),
|
||||
});
|
||||
|
||||
candidates.push(Inst::IntSelect {
|
||||
dst: vec![writable_a0(), writable_a0()],
|
||||
ty: I128,
|
||||
|
||||
Reference in New Issue
Block a user