aboutsummaryrefslogtreecommitdiff
path: root/test/armv8
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2021-12-29 04:58:53 -0800
committeriximeow <me@iximeow.net>2021-12-29 04:58:53 -0800
commit125966cd2ae732c3e8faa9ce0b1423dee91fc026 (patch)
tree2b0087b1dbec3fcfc25fb73ba0b7457fadedbde2 /test/armv8
parent2b45c57a0c1df6a90935690736eb3991acbd67ed (diff)
more missed tables and manual compat
Diffstat (limited to 'test/armv8')
-rw-r--r--test/armv8/a64.rs114
1 files changed, 114 insertions, 0 deletions
diff --git a/test/armv8/a64.rs b/test/armv8/a64.rs
index 2523a92..9b65618 100644
--- a/test/armv8/a64.rs
+++ b/test/armv8/a64.rs
@@ -4430,3 +4430,117 @@ fn test_tbl() {
assert!(errs.is_empty());
}
+
+#[test]
+fn test_saddw() {
+ const TESTS: &[([u8; 4], &'static str)] = &[
+ ([0x00, 0x10, 0x20, 0x0e], "saddw v0.8h, v0.8h, v0.8b"),
+ ([0x00, 0x60, 0x20, 0x0e], "subhn v0.8b, v0.8h, v0.8h"),
+ ];
+ let errs = run_tests(TESTS);
+
+ for err in errs.iter() {
+ println!("{}", err);
+ }
+
+ assert!(errs.is_empty());
+}
+
+#[test]
+fn test_vector_cmge() {
+ const TESTS: &[([u8; 4], &'static str)] = &[
+ ([0x00, 0x98, 0x20, 0x0e], "cmeq v0.8b, v0.8b, #0"),
+ ([0x00, 0xc8, 0xa0, 0x0e], "fcmgt v0.2s, v0.2s, #0.0"),
+ ];
+ let errs = run_tests(TESTS);
+
+ for err in errs.iter() {
+ println!("{}", err);
+ }
+
+ assert!(errs.is_empty());
+}
+
+#[test]
+fn test_xtn() {
+ const TESTS: &[([u8; 4], &'static str)] = &[
+ ([0x00, 0x28, 0x21, 0x0e], "xtn v0.8b, v0.8h"),
+ ];
+ let errs = run_tests(TESTS);
+
+ for err in errs.iter() {
+ println!("{}", err);
+ }
+
+ assert!(errs.is_empty());
+}
+
+#[test]
+fn test_saddlv() {
+ const TESTS: &[([u8; 4], &'static str)] = &[
+ ([0x00, 0x38, 0x30, 0x0e], "saddlv h0, v0.8b"),
+ ];
+ let errs = run_tests(TESTS);
+
+ for err in errs.iter() {
+ println!("{}", err);
+ }
+
+ assert!(errs.is_empty());
+}
+
+#[test]
+fn test_simd_same_three_fp16() {
+ const TESTS: &[([u8; 4], &'static str)] = &[
+ ([0x00, 0x04, 0x40, 0x0e], "fmaxnm v0.4h, v0.4h, v0.4h"),
+ ];
+ let errs = run_tests(TESTS);
+
+ for err in errs.iter() {
+ println!("{}", err);
+ }
+
+ assert!(errs.is_empty());
+}
+
+#[test]
+fn test_simd_two_register_misc_fp16() {
+ const TESTS: &[([u8; 4], &'static str)] = &[
+ ([0x00, 0x88, 0x79, 0x0e], "frintn v0.4h, v0.4h"),
+ ];
+ let errs = run_tests(TESTS);
+
+ for err in errs.iter() {
+ println!("{}", err);
+ }
+
+ assert!(errs.is_empty());
+}
+
+#[test]
+fn test_simd_three_same_extra() {
+ const TESTS: &[([u8; 4], &'static str)] = &[
+ ([0x00, 0x94, 0x90, 0x0e], "sdot v0.2s, v0.8b, v0.8b"),
+ ];
+ let errs = run_tests(TESTS);
+
+ for err in errs.iter() {
+ println!("{}", err);
+ }
+
+ assert!(errs.is_empty());
+}
+
+#[test]
+fn test_rev64() {
+ const TESTS: &[([u8; 4], &'static str)] = &[
+ ([0x00, 0x08, 0xa0, 0x0e], "rev64 v0.2s, v0.2s"),
+ ];
+ let errs = run_tests(TESTS);
+
+ for err in errs.iter() {
+ println!("{}", err);
+ }
+
+ assert!(errs.is_empty());
+}