cranelift: Remove booleans (#5031)
Remove the boolean types from cranelift, and the associated instructions breduce, bextend, bconst, and bint. Standardize on using 1/0 for the return value from instructions that produce scalar boolean results, and -1/0 for boolean vector elements. Fixes #3205 Co-authored-by: Afonso Bordado <afonso360@users.noreply.github.com> Co-authored-by: Ulrich Weigand <ulrich.weigand@de.ibm.com> Co-authored-by: Chris Fallin <chris@cfallin.org>
This commit is contained in:
@@ -549,7 +549,7 @@ impl Context for IsleContext<'_, '_, MInst, Flags, IsaFlags, 6> {
|
||||
|
||||
#[inline]
|
||||
fn type_register_class(&mut self, ty: Type) -> Option<RegisterClass> {
|
||||
if is_int_or_ref_ty(ty) || ty == I128 || ty == B128 {
|
||||
if is_int_or_ref_ty(ty) || ty == I128 {
|
||||
Some(RegisterClass::Gpr {
|
||||
single_register: ty != I128,
|
||||
})
|
||||
@@ -564,7 +564,6 @@ impl Context for IsleContext<'_, '_, MInst, Flags, IsaFlags, 6> {
|
||||
fn ty_int_bool_or_ref(&mut self, ty: Type) -> Option<()> {
|
||||
match ty {
|
||||
types::I8 | types::I16 | types::I32 | types::I64 | types::R64 => Some(()),
|
||||
types::B1 | types::B8 | types::B16 | types::B32 | types::B64 => Some(()),
|
||||
types::R32 => panic!("shouldn't have 32-bits refs on x64"),
|
||||
_ => None,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user