INT NEQ for i1 and i8 integer types

This commit is contained in:
Chad Stearns 2020-05-01 17:29:43 -04:00
parent 4b5f7bfded
commit d1b00633be
3 changed files with 28 additions and 0 deletions

View file

@ -1255,6 +1255,18 @@ fn call_with_args<'a, 'ctx, 'env>(
BasicValueEnum::IntValue(int_val)
}
Symbol::INT_NEQ_I1 => {
debug_assert!(args.len() == 2);
let int_val = env.builder.build_int_compare(
IntPredicate::NE,
args[0].0.into_int_value(),
args[1].0.into_int_value(),
"cmp_i1",
);
BasicValueEnum::IntValue(int_val)
}
Symbol::INT_EQ_I8 => {
debug_assert!(args.len() == 2);
@ -1267,6 +1279,18 @@ fn call_with_args<'a, 'ctx, 'env>(
BasicValueEnum::IntValue(int_val)
}
Symbol::INT_NEQ_I8 => {
debug_assert!(args.len() == 2);
let int_val = env.builder.build_int_compare(
IntPredicate::NE,
args[0].0.into_int_value(),
args[1].0.into_int_value(),
"cmp_i8",
);
BasicValueEnum::IntValue(int_val)
}
Symbol::NUM_TO_FLOAT => {
// TODO specialize this to be not just for i64!
let builtin_fn_name = "i64_to_f64_";