x64: port icmp to ISLE (#3886)

* x64: port GPR-held `icmp` to ISLE
* x64: port equality `icmp` for i128 type
* x64: port `icmp` for vector types
* x64: rename from_intcc to intcc_to_cc
This commit is contained in:
Andrew Brown
2022-03-18 11:22:09 -07:00
committed by GitHub
parent 8cfb552090
commit e92cbfb283
8 changed files with 1145 additions and 549 deletions

View File

@@ -9,8 +9,10 @@ use regalloc::Writable;
use super::{is_int_or_ref_ty, is_mergeable_load, lower_to_amode, Reg};
use crate::{
ir::{
condcodes::FloatCC, immediates::*, types::*, Inst, InstructionData, Opcode, TrapCode,
Value, ValueLabel, ValueList,
condcodes::{FloatCC, IntCC},
immediates::*,
types::*,
Inst, InstructionData, Opcode, TrapCode, Value, ValueLabel, ValueList,
},
isa::{
settings::Flags,
@@ -512,6 +514,11 @@ where
None
}
}
#[inline]
fn intcc_to_cc(&mut self, intcc: &IntCC) -> CC {
CC::from_intcc(*intcc)
}
}
// Since x64 doesn't have 8x16 shifts and we must use a 16x8 shift instead, we