aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/cpuinfo.h9
-rw-r--r--src/arm/linux/aarch32-isa.c17
-rw-r--r--src/arm/linux/aarch64-isa.c19
-rw-r--r--src/arm/linux/api.h13
-rw-r--r--test/mock/alcatel-revvl.cc8
-rw-r--r--test/mock/atm7029b-tablet.cc8
-rw-r--r--test/mock/blu-r1-hd.cc8
-rw-r--r--test/mock/galaxy-a3-2016-eu.cc8
-rw-r--r--test/mock/galaxy-a8-2016-duos.cc8
-rw-r--r--test/mock/galaxy-a8-2018.cc8
-rw-r--r--test/mock/galaxy-c9-pro.cc8
-rw-r--r--test/mock/galaxy-grand-prime-value-edition.cc8
-rw-r--r--test/mock/galaxy-j1-2016.cc8
-rw-r--r--test/mock/galaxy-j5.cc8
-rw-r--r--test/mock/galaxy-j7-prime.cc8
-rw-r--r--test/mock/galaxy-j7-tmobile.cc8
-rw-r--r--test/mock/galaxy-j7-uae.cc8
-rw-r--r--test/mock/galaxy-s3-us.cc8
-rw-r--r--test/mock/galaxy-s4-us.cc8
-rw-r--r--test/mock/galaxy-s5-global.cc8
-rw-r--r--test/mock/galaxy-s5-us.cc8
-rw-r--r--test/mock/galaxy-s6.cc8
-rw-r--r--test/mock/galaxy-s7-global.cc8
-rw-r--r--test/mock/galaxy-s7-us.cc8
-rw-r--r--test/mock/galaxy-s8-global.cc8
-rw-r--r--test/mock/galaxy-s8-us.cc8
-rw-r--r--test/mock/galaxy-s9-global.cc8
-rw-r--r--test/mock/galaxy-s9-us.cc8
-rw-r--r--test/mock/galaxy-tab-3-7.0.cc8
-rw-r--r--test/mock/galaxy-tab-3-lite.cc8
-rw-r--r--test/mock/galaxy-win-duos.cc8
-rw-r--r--test/mock/huawei-ascend-p7.cc8
-rw-r--r--test/mock/huawei-honor-6.cc8
-rw-r--r--test/mock/huawei-mate-10.cc8
-rw-r--r--test/mock/huawei-mate-20.cc8
-rw-r--r--test/mock/huawei-mate-8.cc8
-rw-r--r--test/mock/huawei-mate-9.cc8
-rw-r--r--test/mock/huawei-p20-pro.cc8
-rw-r--r--test/mock/huawei-p8-lite.cc8
-rw-r--r--test/mock/huawei-p9-lite.cc8
-rw-r--r--test/mock/iconia-one-10.cc8
-rw-r--r--test/mock/lenovo-a6600-plus.cc8
-rw-r--r--test/mock/lenovo-vibe-x2.cc8
-rw-r--r--test/mock/lg-k10-eu.cc8
-rw-r--r--test/mock/lg-optimus-g-pro.cc8
-rw-r--r--test/mock/meizu-pro-6.cc8
-rw-r--r--test/mock/meizu-pro-6s.cc8
-rw-r--r--test/mock/meizu-pro-7-plus.cc8
-rw-r--r--test/mock/moto-e-gen1.cc8
-rw-r--r--test/mock/moto-g-gen1.cc8
-rw-r--r--test/mock/moto-g-gen2.cc8
-rw-r--r--test/mock/moto-g-gen3.cc8
-rw-r--r--test/mock/moto-g-gen4.cc8
-rw-r--r--test/mock/moto-g-gen5.cc8
-rw-r--r--test/mock/nexus-s.cc8
-rw-r--r--test/mock/nexus10.cc8
-rw-r--r--test/mock/nexus4.cc8
-rw-r--r--test/mock/nexus5x.cc8
-rw-r--r--test/mock/nexus6.cc8
-rw-r--r--test/mock/nexus6p.cc8
-rw-r--r--test/mock/nexus9.cc8
-rw-r--r--test/mock/oneplus-3t.cc8
-rw-r--r--test/mock/oneplus-5.cc8
-rw-r--r--test/mock/oneplus-5t.cc8
-rw-r--r--test/mock/oppo-a37.cc8
-rw-r--r--test/mock/oppo-r15.cc8
-rw-r--r--test/mock/oppo-r9.cc8
-rw-r--r--test/mock/padcod-10.1.cc8
-rw-r--r--test/mock/pixel-2-xl.cc8
-rw-r--r--test/mock/pixel-c.cc8
-rw-r--r--test/mock/pixel-xl.cc8
-rw-r--r--test/mock/pixel.cc8
-rw-r--r--test/mock/xiaomi-mi-5c.cc8
-rw-r--r--test/mock/xiaomi-redmi-2a.cc8
-rw-r--r--test/mock/xiaomi-redmi-note-3.cc8
-rw-r--r--test/mock/xiaomi-redmi-note-4.cc8
-rw-r--r--test/mock/xperia-c4-dual.cc8
-rw-r--r--test/mock/xperia-sl.cc8
-rw-r--r--tools/isa-info.c3
79 files changed, 652 insertions, 1 deletions
diff --git a/include/cpuinfo.h b/include/cpuinfo.h
index 84320dd..de75a06 100644
--- a/include/cpuinfo.h
+++ b/include/cpuinfo.h
@@ -1356,6 +1356,7 @@ static inline bool cpuinfo_has_x86_sha(void) {
#endif
bool rdm;
bool fp16arith;
+ bool dot;
bool jscvt;
bool fcma;
@@ -1583,6 +1584,14 @@ static inline bool cpuinfo_has_arm_fp16_arith(void) {
#endif
}
+static inline bool cpuinfo_has_arm_neon_dot(void) {
+ #if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
+ return cpuinfo_isa.dot;
+ #else
+ return false;
+ #endif
+}
+
static inline bool cpuinfo_has_arm_jscvt(void) {
#if CPUINFO_ARCH_ARM || CPUINFO_ARCH_ARM64
return cpuinfo_isa.jscvt;
diff --git a/src/arm/linux/aarch32-isa.c b/src/arm/linux/aarch32-isa.c
index d552ca2..92095e1 100644
--- a/src/arm/linux/aarch32-isa.c
+++ b/src/arm/linux/aarch32-isa.c
@@ -74,6 +74,23 @@ void cpuinfo_arm_linux_decode_isa_from_proc_cpuinfo(
}
break;
}
+
+ /*
+ * NEON VDOT instructions are not indicated in /proc/cpuinfo.
+ * Use a MIDR-based heuristic to whitelist processors known to support it:
+ * - Processors with Qualcomm-modified Cortex-A76 cores
+ * - Kirin 980 processor
+ */
+ switch (midr & (CPUINFO_ARM_MIDR_IMPLEMENTER_MASK | CPUINFO_ARM_MIDR_PART_MASK)) {
+ case UINT32_C(0x51008040): /* Kryo 485 Gold (Cortex-A76) */
+ isa->dot = true;
+ break;
+ default:
+ if (chipset->series == cpuinfo_arm_chipset_series_hisilicon_kirin && chipset->model == 980) {
+ isa->dot = true;
+ }
+ break;
+ }
} else {
/* ARMv7 or lower: use feature flags to detect optional features */
diff --git a/src/arm/linux/aarch64-isa.c b/src/arm/linux/aarch64-isa.c
index 462aee5..f193e81 100644
--- a/src/arm/linux/aarch64-isa.c
+++ b/src/arm/linux/aarch64-isa.c
@@ -65,6 +65,25 @@ void cpuinfo_arm64_linux_decode_isa_from_proc_cpuinfo(
}
break;
}
+ /*
+ * Many phones ship with an old kernel configuration that doesn't report UDOT/SDOT instructions.
+ * Use a MIDR-based heuristic to whitelist processors known to support it:
+ * - Processors with Qualcomm-modified Cortex-A76 cores
+ * - Kirin 980 processor
+ */
+ switch (midr & (CPUINFO_ARM_MIDR_IMPLEMENTER_MASK | CPUINFO_ARM_MIDR_PART_MASK)) {
+ case UINT32_C(0x51008040): /* Kryo 485 Gold (Cortex-A76) */
+ isa->dot = true;
+ break;
+ default:
+ if (features & CPUINFO_ARM_LINUX_FEATURE_ASIMDDP) {
+ isa->dot = true;
+ }
+ if (chipset->series == cpuinfo_arm_chipset_series_hisilicon_kirin && chipset->model == 980) {
+ isa->dot = true;
+ }
+ break;
+ }
if (features & CPUINFO_ARM_LINUX_FEATURE_JSCVT) {
isa->jscvt = true;
}
diff --git a/src/arm/linux/api.h b/src/arm/linux/api.h
index 73d56df..ab3741d 100644
--- a/src/arm/linux/api.h
+++ b/src/arm/linux/api.h
@@ -95,6 +95,19 @@ struct cpuinfo_arm_linux_proc_cpuinfo_cache {
#define CPUINFO_ARM_LINUX_FEATURE_JSCVT UINT32_C(0x00002000)
#define CPUINFO_ARM_LINUX_FEATURE_FCMA UINT32_C(0x00004000)
#define CPUINFO_ARM_LINUX_FEATURE_LRCPC UINT32_C(0x00008000)
+ #define CPUINFO_ARM_LINUX_FEATURE_DCPOP UINT32_C(0x00010000)
+ #define CPUINFO_ARM_LINUX_FEATURE_SHA3 UINT32_C(0x00020000)
+ #define CPUINFO_ARM_LINUX_FEATURE_SM3 UINT32_C(0x00040000)
+ #define CPUINFO_ARM_LINUX_FEATURE_SM4 UINT32_C(0x00080000)
+ #define CPUINFO_ARM_LINUX_FEATURE_ASIMDDP UINT32_C(0x00100000)
+ #define CPUINFO_ARM_LINUX_FEATURE_SHA512 UINT32_C(0x00200000)
+ #define CPUINFO_ARM_LINUX_FEATURE_SVE UINT32_C(0x00400000)
+ #define CPUINFO_ARM_LINUX_FEATURE_ASIMDFHM UINT32_C(0x00800000)
+ #define CPUINFO_ARM_LINUX_FEATURE_DIT UINT32_C(0x01000000)
+ #define CPUINFO_ARM_LINUX_FEATURE_USCAT UINT32_C(0x02000000)
+ #define CPUINFO_ARM_LINUX_FEATURE_ILRCPC UINT32_C(0x04000000)
+ #define CPUINFO_ARM_LINUX_FEATURE_FLAGM UINT32_C(0x08000000)
+ #define CPUINFO_ARM_LINUX_FEATURE_SSBS UINT32_C(0x10000000)
#endif
#define CPUINFO_ARM_LINUX_VALID_ARCHITECTURE UINT32_C(0x00010000)
diff --git a/test/mock/alcatel-revvl.cc b/test/mock/alcatel-revvl.cc
index e76db85..d3ed981 100644
--- a/test/mock/alcatel-revvl.cc
+++ b/test/mock/alcatel-revvl.cc
@@ -435,6 +435,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/atm7029b-tablet.cc b/test/mock/atm7029b-tablet.cc
index d8d20a9..3ae59ce 100644
--- a/test/mock/atm7029b-tablet.cc
+++ b/test/mock/atm7029b-tablet.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/blu-r1-hd.cc b/test/mock/blu-r1-hd.cc
index d60de65..4d6037d 100644
--- a/test/mock/blu-r1-hd.cc
+++ b/test/mock/blu-r1-hd.cc
@@ -346,6 +346,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-a3-2016-eu.cc b/test/mock/galaxy-a3-2016-eu.cc
index 2cfd1a4..b30f005 100644
--- a/test/mock/galaxy-a3-2016-eu.cc
+++ b/test/mock/galaxy-a3-2016-eu.cc
@@ -370,6 +370,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-a8-2016-duos.cc b/test/mock/galaxy-a8-2016-duos.cc
index 6f046b9..1e546e9 100644
--- a/test/mock/galaxy-a8-2016-duos.cc
+++ b/test/mock/galaxy-a8-2016-duos.cc
@@ -428,6 +428,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-a8-2018.cc b/test/mock/galaxy-a8-2018.cc
index fc27e65..560055a 100644
--- a/test/mock/galaxy-a8-2018.cc
+++ b/test/mock/galaxy-a8-2018.cc
@@ -510,6 +510,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-c9-pro.cc b/test/mock/galaxy-c9-pro.cc
index 00fc5dd..f270284 100644
--- a/test/mock/galaxy-c9-pro.cc
+++ b/test/mock/galaxy-c9-pro.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-grand-prime-value-edition.cc b/test/mock/galaxy-grand-prime-value-edition.cc
index e709e75..f7b8793 100644
--- a/test/mock/galaxy-grand-prime-value-edition.cc
+++ b/test/mock/galaxy-grand-prime-value-edition.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-j1-2016.cc b/test/mock/galaxy-j1-2016.cc
index e3b8420..e1f2f03 100644
--- a/test/mock/galaxy-j1-2016.cc
+++ b/test/mock/galaxy-j1-2016.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-j5.cc b/test/mock/galaxy-j5.cc
index 6df2b0a..b2a9c6b 100644
--- a/test/mock/galaxy-j5.cc
+++ b/test/mock/galaxy-j5.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-j7-prime.cc b/test/mock/galaxy-j7-prime.cc
index 543e53f..597de8b 100644
--- a/test/mock/galaxy-j7-prime.cc
+++ b/test/mock/galaxy-j7-prime.cc
@@ -436,6 +436,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-j7-tmobile.cc b/test/mock/galaxy-j7-tmobile.cc
index 40f883d..63b05ba 100644
--- a/test/mock/galaxy-j7-tmobile.cc
+++ b/test/mock/galaxy-j7-tmobile.cc
@@ -436,6 +436,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-j7-uae.cc b/test/mock/galaxy-j7-uae.cc
index 07f6473..a15ab66 100644
--- a/test/mock/galaxy-j7-uae.cc
+++ b/test/mock/galaxy-j7-uae.cc
@@ -436,6 +436,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-s3-us.cc b/test/mock/galaxy-s3-us.cc
index 3077911..db85918 100644
--- a/test/mock/galaxy-s3-us.cc
+++ b/test/mock/galaxy-s3-us.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-s4-us.cc b/test/mock/galaxy-s4-us.cc
index 36cc657..8da4841 100644
--- a/test/mock/galaxy-s4-us.cc
+++ b/test/mock/galaxy-s4-us.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-s5-global.cc b/test/mock/galaxy-s5-global.cc
index f40390d..147ae2c 100644
--- a/test/mock/galaxy-s5-global.cc
+++ b/test/mock/galaxy-s5-global.cc
@@ -468,6 +468,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-s5-us.cc b/test/mock/galaxy-s5-us.cc
index 650ea9e..8b00abf 100644
--- a/test/mock/galaxy-s5-us.cc
+++ b/test/mock/galaxy-s5-us.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-s6.cc b/test/mock/galaxy-s6.cc
index fbd5723..0085cfd 100644
--- a/test/mock/galaxy-s6.cc
+++ b/test/mock/galaxy-s6.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-s7-global.cc b/test/mock/galaxy-s7-global.cc
index 5cdd522..7a2ddab 100644
--- a/test/mock/galaxy-s7-global.cc
+++ b/test/mock/galaxy-s7-global.cc
@@ -516,6 +516,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-s7-us.cc b/test/mock/galaxy-s7-us.cc
index 71f423c..b05c25c 100644
--- a/test/mock/galaxy-s7-us.cc
+++ b/test/mock/galaxy-s7-us.cc
@@ -452,6 +452,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-s8-global.cc b/test/mock/galaxy-s8-global.cc
index b0f8576..ae946ba 100644
--- a/test/mock/galaxy-s8-global.cc
+++ b/test/mock/galaxy-s8-global.cc
@@ -516,6 +516,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-s8-us.cc b/test/mock/galaxy-s8-us.cc
index 39145d3..6c9282b 100644
--- a/test/mock/galaxy-s8-us.cc
+++ b/test/mock/galaxy-s8-us.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-s9-global.cc b/test/mock/galaxy-s9-global.cc
index fd52254..412476e 100644
--- a/test/mock/galaxy-s9-global.cc
+++ b/test/mock/galaxy-s9-global.cc
@@ -533,6 +533,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-s9-us.cc b/test/mock/galaxy-s9-us.cc
index baa2ced..6df7f3c 100644
--- a/test/mock/galaxy-s9-us.cc
+++ b/test/mock/galaxy-s9-us.cc
@@ -487,6 +487,14 @@ TEST(ISA, fp16_arith) {
ASSERT_TRUE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_TRUE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-tab-3-7.0.cc b/test/mock/galaxy-tab-3-7.0.cc
index 1f28140..1b20a44 100644
--- a/test/mock/galaxy-tab-3-7.0.cc
+++ b/test/mock/galaxy-tab-3-7.0.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-tab-3-lite.cc b/test/mock/galaxy-tab-3-lite.cc
index 018e17f..9d1efcd 100644
--- a/test/mock/galaxy-tab-3-lite.cc
+++ b/test/mock/galaxy-tab-3-lite.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/galaxy-win-duos.cc b/test/mock/galaxy-win-duos.cc
index ae671ee..33c1733 100644
--- a/test/mock/galaxy-win-duos.cc
+++ b/test/mock/galaxy-win-duos.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/huawei-ascend-p7.cc b/test/mock/huawei-ascend-p7.cc
index fc1c951..69349c1 100644
--- a/test/mock/huawei-ascend-p7.cc
+++ b/test/mock/huawei-ascend-p7.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/huawei-honor-6.cc b/test/mock/huawei-honor-6.cc
index 41b429e..59ad755 100644
--- a/test/mock/huawei-honor-6.cc
+++ b/test/mock/huawei-honor-6.cc
@@ -468,6 +468,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/huawei-mate-10.cc b/test/mock/huawei-mate-10.cc
index 477103f..92be5aa 100644
--- a/test/mock/huawei-mate-10.cc
+++ b/test/mock/huawei-mate-10.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/huawei-mate-20.cc b/test/mock/huawei-mate-20.cc
index e3d4d36..0ba4c59 100644
--- a/test/mock/huawei-mate-20.cc
+++ b/test/mock/huawei-mate-20.cc
@@ -526,6 +526,14 @@ TEST(ISA, fp16_arith) {
ASSERT_TRUE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_TRUE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_TRUE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/huawei-mate-8.cc b/test/mock/huawei-mate-8.cc
index 7651ba7..0922c7f 100644
--- a/test/mock/huawei-mate-8.cc
+++ b/test/mock/huawei-mate-8.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/huawei-mate-9.cc b/test/mock/huawei-mate-9.cc
index c3b4562..703b7e0 100644
--- a/test/mock/huawei-mate-9.cc
+++ b/test/mock/huawei-mate-9.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/huawei-p20-pro.cc b/test/mock/huawei-p20-pro.cc
index 382bd1d..93568b5 100644
--- a/test/mock/huawei-p20-pro.cc
+++ b/test/mock/huawei-p20-pro.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/huawei-p8-lite.cc b/test/mock/huawei-p8-lite.cc
index 776084f..9b8548e 100644
--- a/test/mock/huawei-p8-lite.cc
+++ b/test/mock/huawei-p8-lite.cc
@@ -423,6 +423,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/huawei-p9-lite.cc b/test/mock/huawei-p9-lite.cc
index 068ae73..29db0d3 100644
--- a/test/mock/huawei-p9-lite.cc
+++ b/test/mock/huawei-p9-lite.cc
@@ -456,6 +456,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/iconia-one-10.cc b/test/mock/iconia-one-10.cc
index 29e5abb..03e26f2 100644
--- a/test/mock/iconia-one-10.cc
+++ b/test/mock/iconia-one-10.cc
@@ -370,6 +370,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/lenovo-a6600-plus.cc b/test/mock/lenovo-a6600-plus.cc
index 976604b..0af9e97 100644
--- a/test/mock/lenovo-a6600-plus.cc
+++ b/test/mock/lenovo-a6600-plus.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/lenovo-vibe-x2.cc b/test/mock/lenovo-vibe-x2.cc
index b22f4e6..cc931d7 100644
--- a/test/mock/lenovo-vibe-x2.cc
+++ b/test/mock/lenovo-vibe-x2.cc
@@ -449,6 +449,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/lg-k10-eu.cc b/test/mock/lg-k10-eu.cc
index 258a6a1..6b8c8bc 100644
--- a/test/mock/lg-k10-eu.cc
+++ b/test/mock/lg-k10-eu.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/lg-optimus-g-pro.cc b/test/mock/lg-optimus-g-pro.cc
index f7a4bb8..a663020 100644
--- a/test/mock/lg-optimus-g-pro.cc
+++ b/test/mock/lg-optimus-g-pro.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/meizu-pro-6.cc b/test/mock/meizu-pro-6.cc
index 022ae29..36cdd2a 100644
--- a/test/mock/meizu-pro-6.cc
+++ b/test/mock/meizu-pro-6.cc
@@ -551,6 +551,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/meizu-pro-6s.cc b/test/mock/meizu-pro-6s.cc
index 8a3855e..7593caa 100644
--- a/test/mock/meizu-pro-6s.cc
+++ b/test/mock/meizu-pro-6s.cc
@@ -551,6 +551,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/meizu-pro-7-plus.cc b/test/mock/meizu-pro-7-plus.cc
index 8e59f36..f64b186 100644
--- a/test/mock/meizu-pro-7-plus.cc
+++ b/test/mock/meizu-pro-7-plus.cc
@@ -559,6 +559,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/moto-e-gen1.cc b/test/mock/moto-e-gen1.cc
index 740d48b..190e96f 100644
--- a/test/mock/moto-e-gen1.cc
+++ b/test/mock/moto-e-gen1.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/moto-g-gen1.cc b/test/mock/moto-g-gen1.cc
index c37a6ba..b90216b 100644
--- a/test/mock/moto-g-gen1.cc
+++ b/test/mock/moto-g-gen1.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/moto-g-gen2.cc b/test/mock/moto-g-gen2.cc
index be61a4c..b6a1586 100644
--- a/test/mock/moto-g-gen2.cc
+++ b/test/mock/moto-g-gen2.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/moto-g-gen3.cc b/test/mock/moto-g-gen3.cc
index c8741db..624aca2 100644
--- a/test/mock/moto-g-gen3.cc
+++ b/test/mock/moto-g-gen3.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/moto-g-gen4.cc b/test/mock/moto-g-gen4.cc
index c60b8ad..1da127c 100644
--- a/test/mock/moto-g-gen4.cc
+++ b/test/mock/moto-g-gen4.cc
@@ -436,6 +436,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/moto-g-gen5.cc b/test/mock/moto-g-gen5.cc
index 168a6a9..f29c7da 100644
--- a/test/mock/moto-g-gen5.cc
+++ b/test/mock/moto-g-gen5.cc
@@ -421,6 +421,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/nexus-s.cc b/test/mock/nexus-s.cc
index 2a162fb..42199b9 100644
--- a/test/mock/nexus-s.cc
+++ b/test/mock/nexus-s.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/nexus10.cc b/test/mock/nexus10.cc
index 31d4d6b..b3bcaab 100644
--- a/test/mock/nexus10.cc
+++ b/test/mock/nexus10.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/nexus4.cc b/test/mock/nexus4.cc
index 2baf5c2..241a517 100644
--- a/test/mock/nexus4.cc
+++ b/test/mock/nexus4.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/nexus5x.cc b/test/mock/nexus5x.cc
index 70ee102..228bae0 100644
--- a/test/mock/nexus5x.cc
+++ b/test/mock/nexus5x.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/nexus6.cc b/test/mock/nexus6.cc
index c2e82c6..0784607 100644
--- a/test/mock/nexus6.cc
+++ b/test/mock/nexus6.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/nexus6p.cc b/test/mock/nexus6p.cc
index e73269a..70e9f35 100644
--- a/test/mock/nexus6p.cc
+++ b/test/mock/nexus6p.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/nexus9.cc b/test/mock/nexus9.cc
index b40aaf9..5d4fd8b 100644
--- a/test/mock/nexus9.cc
+++ b/test/mock/nexus9.cc
@@ -370,6 +370,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/oneplus-3t.cc b/test/mock/oneplus-3t.cc
index a80d767..16728d1 100644
--- a/test/mock/oneplus-3t.cc
+++ b/test/mock/oneplus-3t.cc
@@ -452,6 +452,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/oneplus-5.cc b/test/mock/oneplus-5.cc
index b540fc9..849e244 100644
--- a/test/mock/oneplus-5.cc
+++ b/test/mock/oneplus-5.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/oneplus-5t.cc b/test/mock/oneplus-5t.cc
index 70ebfea..e58ebfe 100644
--- a/test/mock/oneplus-5t.cc
+++ b/test/mock/oneplus-5t.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/oppo-a37.cc b/test/mock/oppo-a37.cc
index 283d09a..5065ab6 100644
--- a/test/mock/oppo-a37.cc
+++ b/test/mock/oppo-a37.cc
@@ -370,6 +370,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/oppo-r15.cc b/test/mock/oppo-r15.cc
index 383241f..16db06f 100644
--- a/test/mock/oppo-r15.cc
+++ b/test/mock/oppo-r15.cc
@@ -476,6 +476,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/oppo-r9.cc b/test/mock/oppo-r9.cc
index 8736385..e45e2e3 100644
--- a/test/mock/oppo-r9.cc
+++ b/test/mock/oppo-r9.cc
@@ -456,6 +456,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/padcod-10.1.cc b/test/mock/padcod-10.1.cc
index 3fe01cb..a9a2ee2 100644
--- a/test/mock/padcod-10.1.cc
+++ b/test/mock/padcod-10.1.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/pixel-2-xl.cc b/test/mock/pixel-2-xl.cc
index 04cacac..612acb1 100644
--- a/test/mock/pixel-2-xl.cc
+++ b/test/mock/pixel-2-xl.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/pixel-c.cc b/test/mock/pixel-c.cc
index fa816c1..93fce0d 100644
--- a/test/mock/pixel-c.cc
+++ b/test/mock/pixel-c.cc
@@ -370,6 +370,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/pixel-xl.cc b/test/mock/pixel-xl.cc
index 189ef44..2c8e75d 100644
--- a/test/mock/pixel-xl.cc
+++ b/test/mock/pixel-xl.cc
@@ -452,6 +452,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/pixel.cc b/test/mock/pixel.cc
index 66c2e05..969e978 100644
--- a/test/mock/pixel.cc
+++ b/test/mock/pixel.cc
@@ -452,6 +452,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/xiaomi-mi-5c.cc b/test/mock/xiaomi-mi-5c.cc
index 29dbf27..886508a 100644
--- a/test/mock/xiaomi-mi-5c.cc
+++ b/test/mock/xiaomi-mi-5c.cc
@@ -456,6 +456,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/xiaomi-redmi-2a.cc b/test/mock/xiaomi-redmi-2a.cc
index 40eef34..3e0d7a8 100644
--- a/test/mock/xiaomi-redmi-2a.cc
+++ b/test/mock/xiaomi-redmi-2a.cc
@@ -400,6 +400,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/xiaomi-redmi-note-3.cc b/test/mock/xiaomi-redmi-note-3.cc
index 00937bc..a9847b5 100644
--- a/test/mock/xiaomi-redmi-note-3.cc
+++ b/test/mock/xiaomi-redmi-note-3.cc
@@ -496,6 +496,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/xiaomi-redmi-note-4.cc b/test/mock/xiaomi-redmi-note-4.cc
index faee5c5..7044735 100644
--- a/test/mock/xiaomi-redmi-note-4.cc
+++ b/test/mock/xiaomi-redmi-note-4.cc
@@ -436,6 +436,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/xperia-c4-dual.cc b/test/mock/xperia-c4-dual.cc
index 9203fb1..2024876 100644
--- a/test/mock/xperia-c4-dual.cc
+++ b/test/mock/xperia-c4-dual.cc
@@ -436,6 +436,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/test/mock/xperia-sl.cc b/test/mock/xperia-sl.cc
index 28ec108..21b0618 100644
--- a/test/mock/xperia-sl.cc
+++ b/test/mock/xperia-sl.cc
@@ -342,6 +342,14 @@ TEST(ISA, fp16_arith) {
ASSERT_FALSE(cpuinfo_has_arm_fp16_arith());
}
+TEST(ISA, neon_fp16_arith) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_fp16_arith());
+}
+
+TEST(ISA, neon_dot) {
+ ASSERT_FALSE(cpuinfo_has_arm_neon_dot());
+}
+
TEST(ISA, jscvt) {
ASSERT_FALSE(cpuinfo_has_arm_jscvt());
}
diff --git a/tools/isa-info.c b/tools/isa-info.c
index ea98648..0548ab9 100644
--- a/tools/isa-info.c
+++ b/tools/isa-info.c
@@ -138,8 +138,9 @@ int main(int argc, char** argv) {
printf("\tNEON-FP16: %s\n", cpuinfo_has_arm_neon_fp16() ? "yes" : "no");
printf("\tNEON-FMA: %s\n", cpuinfo_has_arm_neon_fma() ? "yes" : "no");
printf("\tNEON VQRDMLAH/VQRDMLSH: %s\n", cpuinfo_has_arm_neon_rdm() ? "yes" : "no");
- printf("\tNEON FP16 arithmetics: %s\n", cpuinfo_has_arm_fp16_arith() ? "yes" : "no");
+ printf("\tNEON FP16 arithmetics: %s\n", cpuinfo_has_arm_neon_fp16_arith() ? "yes" : "no");
printf("\tNEON complex: %s\n", cpuinfo_has_arm_fcma() ? "yes" : "no");
+ printf("\tNEON dot product: %s\n", cpuinfo_has_arm_neon_dot() ? "yes" : "no");
printf("Cryptography extensions:\n");
printf("\tAES: %s\n", cpuinfo_has_arm_aes() ? "yes" : "no");