Skip to content

Commit 5d75d5f

Browse files
committed
Move vcombine tests to arm/neon.rs
1 parent 1e5a21d commit 5d75d5f

File tree

2 files changed

+38
-37
lines changed

2 files changed

+38
-37
lines changed

crates/core_arch/src/aarch64/neon/mod.rs

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4349,43 +4349,6 @@ mod tests {
43494349
assert_eq!(r, e);
43504350
}
43514351

4352-
macro_rules! test_vcombine {
4353-
($test_id:ident => $fn_id:ident ([$($a:expr),*], [$($b:expr),*])) => {
4354-
#[allow(unused_assignments)]
4355-
#[simd_test(enable = "neon")]
4356-
unsafe fn $test_id() {
4357-
let a = [$($a),*];
4358-
let b = [$($b),*];
4359-
let e = [$($a),* $(, $b)*];
4360-
let c = $fn_id(transmute(a), transmute(b));
4361-
let mut d = e;
4362-
d = transmute(c);
4363-
assert_eq!(d, e);
4364-
}
4365-
}
4366-
}
4367-
4368-
test_vcombine!(test_vcombine_s8 => vcombine_s8([3_i8, -4, 5, -6, 7, 8, 9, 10], [13_i8, -14, 15, -16, 17, 18, 19, 110]));
4369-
test_vcombine!(test_vcombine_u8 => vcombine_u8([3_u8, 4, 5, 6, 7, 8, 9, 10], [13_u8, 14, 15, 16, 17, 18, 19, 110]));
4370-
test_vcombine!(test_vcombine_p8 => vcombine_p8([3_u8, 4, 5, 6, 7, 8, 9, 10], [13_u8, 14, 15, 16, 17, 18, 19, 110]));
4371-
4372-
test_vcombine!(test_vcombine_s16 => vcombine_s16([3_i16, -4, 5, -6], [13_i16, -14, 15, -16]));
4373-
test_vcombine!(test_vcombine_u16 => vcombine_u16([3_u16, 4, 5, 6], [13_u16, 14, 15, 16]));
4374-
test_vcombine!(test_vcombine_p16 => vcombine_p16([3_u16, 4, 5, 6], [13_u16, 14, 15, 16]));
4375-
// FIXME: 16-bit floats
4376-
// test_vcombine!(test_vcombine_f16 => vcombine_f16([3_f16, 4., 5., 6.],
4377-
// [13_f16, 14., 15., 16.]));
4378-
4379-
test_vcombine!(test_vcombine_s32 => vcombine_s32([3_i32, -4], [13_i32, -14]));
4380-
test_vcombine!(test_vcombine_u32 => vcombine_u32([3_u32, 4], [13_u32, 14]));
4381-
// note: poly32x4 does not exist, and neither does vcombine_p32
4382-
test_vcombine!(test_vcombine_f32 => vcombine_f32([3_f32, -4.], [13_f32, -14.]));
4383-
4384-
test_vcombine!(test_vcombine_s64 => vcombine_s64([-3_i64], [13_i64]));
4385-
test_vcombine!(test_vcombine_u64 => vcombine_u64([3_u64], [13_u64]));
4386-
test_vcombine!(test_vcombine_p64 => vcombine_p64([3_u64], [13_u64]));
4387-
test_vcombine!(test_vcombine_f64 => vcombine_f64([-3_f64], [13_f64]));
4388-
43894352
#[simd_test(enable = "neon")]
43904353
unsafe fn test_vdup_n_f64() {
43914354
let a: f64 = 3.3;

crates/core_arch/src/arm_shared/neon/mod.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12645,6 +12645,44 @@ mod tests {
1264512645
let r: i32x4 = transmute(vusmmlaq_s32(transmute(a), transmute(b), transmute(c)));
1264612646
assert_eq!(r, e);
1264712647
}
12648+
12649+
macro_rules! test_vcombine {
12650+
($test_id:ident => $fn_id:ident ([$($a:expr),*], [$($b:expr),*])) => {
12651+
#[allow(unused_assignments)]
12652+
#[simd_test(enable = "neon")]
12653+
unsafe fn $test_id() {
12654+
let a = [$($a),*];
12655+
let b = [$($b),*];
12656+
let e = [$($a),* $(, $b)*];
12657+
let c = $fn_id(transmute(a), transmute(b));
12658+
let mut d = e;
12659+
d = transmute(c);
12660+
assert_eq!(d, e);
12661+
}
12662+
}
12663+
}
12664+
12665+
test_vcombine!(test_vcombine_s8 => vcombine_s8([3_i8, -4, 5, -6, 7, 8, 9, 10], [13_i8, -14, 15, -16, 17, 18, 19, 110]));
12666+
test_vcombine!(test_vcombine_u8 => vcombine_u8([3_u8, 4, 5, 6, 7, 8, 9, 10], [13_u8, 14, 15, 16, 17, 18, 19, 110]));
12667+
test_vcombine!(test_vcombine_p8 => vcombine_p8([3_u8, 4, 5, 6, 7, 8, 9, 10], [13_u8, 14, 15, 16, 17, 18, 19, 110]));
12668+
12669+
test_vcombine!(test_vcombine_s16 => vcombine_s16([3_i16, -4, 5, -6], [13_i16, -14, 15, -16]));
12670+
test_vcombine!(test_vcombine_u16 => vcombine_u16([3_u16, 4, 5, 6], [13_u16, 14, 15, 16]));
12671+
test_vcombine!(test_vcombine_p16 => vcombine_p16([3_u16, 4, 5, 6], [13_u16, 14, 15, 16]));
12672+
// FIXME: 16-bit floats
12673+
// test_vcombine!(test_vcombine_f16 => vcombine_f16([3_f16, 4., 5., 6.],
12674+
// [13_f16, 14., 15., 16.]));
12675+
12676+
test_vcombine!(test_vcombine_s32 => vcombine_s32([3_i32, -4], [13_i32, -14]));
12677+
test_vcombine!(test_vcombine_u32 => vcombine_u32([3_u32, 4], [13_u32, 14]));
12678+
// note: poly32x4 does not exist, and neither does vcombine_p32
12679+
test_vcombine!(test_vcombine_f32 => vcombine_f32([3_f32, -4.], [13_f32, -14.]));
12680+
12681+
test_vcombine!(test_vcombine_s64 => vcombine_s64([-3_i64], [13_i64]));
12682+
test_vcombine!(test_vcombine_u64 => vcombine_u64([3_u64], [13_u64]));
12683+
test_vcombine!(test_vcombine_p64 => vcombine_p64([3_u64], [13_u64]));
12684+
#[cfg(target_arch = "aarch64")]
12685+
test_vcombine!(test_vcombine_f64 => vcombine_f64([-3_f64], [13_f64]));
1264812686
}
1264912687

1265012688
#[cfg(all(test, target_arch = "arm", target_endian = "little"))]

0 commit comments

Comments
 (0)