Add support for more integer types to NumAdd

This commit is contained in:
Christoph Rüßler 2022-08-01 20:42:15 +02:00
parent fa14146054
commit 8cd63290f9
No known key found for this signature in database
GPG key ID: 81E62DC325A143CB
2 changed files with 64 additions and 1 deletions

View file

@ -693,7 +693,14 @@ impl<
fn build_num_add(&mut self, dst: &Symbol, src1: &Symbol, src2: &Symbol, layout: &Layout<'a>) {
match layout {
Layout::Builtin(Builtin::Int(IntWidth::I64 | IntWidth::U64)) => {
Layout::Builtin(Builtin::Int(
IntWidth::I64
| IntWidth::U64
| IntWidth::I32
| IntWidth::U32
| IntWidth::I8
| IntWidth::U8,
)) => {
let dst_reg = self.storage_manager.claim_general_reg(&mut self.buf, dst);
let src1_reg = self
.storage_manager

View file

@ -930,6 +930,62 @@ fn gen_wrap_int_neq() {
);
}
#[test]
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
fn gen_add_i8() {
assert_evals_to!(
indoc!(
r#"
1i8 + 2i8 + 3i8
"#
),
6,
i8
);
}
#[test]
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
fn gen_add_u8() {
assert_evals_to!(
indoc!(
r#"
1u8 + 2u8 + 3u8
"#
),
6,
u8
);
}
#[test]
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
fn gen_add_i32() {
assert_evals_to!(
indoc!(
r#"
1i32 + 2i32 + 3i32
"#
),
6,
i32
);
}
#[test]
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
fn gen_add_u32() {
assert_evals_to!(
indoc!(
r#"
1u32 + 2u32 + 3u32
"#
),
6,
u32
);
}
#[test]
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
fn gen_add_i64() {