mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-04 12:18:19 +00:00
Add support for more integer types to NumAdd
This commit is contained in:
parent
fa14146054
commit
8cd63290f9
2 changed files with 64 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue