luaur_code_gen/functions/
compare_ir_utils_alt_c.rs1use crate::enums::ir_condition::IrCondition;
2use crate::macros::codegen_assert::CODEGEN_ASSERT;
3
4pub fn compare_i64_i64_ir_condition(a: i64, b: i64, cond: IrCondition) -> bool {
5 match cond {
6 IrCondition::Equal => a == b,
7 IrCondition::NotEqual => a != b,
8 IrCondition::Less => a < b,
9 IrCondition::NotLess => !(a < b),
10 IrCondition::LessEqual => a <= b,
11 IrCondition::NotLessEqual => !(a <= b),
12 IrCondition::Greater => a > b,
13 IrCondition::NotGreater => !(a > b),
14 IrCondition::GreaterEqual => a >= b,
15 IrCondition::NotGreaterEqual => !(a >= b),
16 IrCondition::UnsignedLess => (a as u64) < (b as u64),
17 IrCondition::UnsignedLessEqual => (a as u64) <= (b as u64),
18 IrCondition::UnsignedGreater => (a as u64) > (b as u64),
19 IrCondition::UnsignedGreaterEqual => (a as u64) >= (b as u64),
20 _ => {
21 CODEGEN_ASSERT!(false, "Unsupported condition");
22 false
23 }
24 }
25}