summaryrefslogtreecommitdiffstats
path: root/js/src/intgemm
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/intgemm')
-rw-r--r--js/src/intgemm/IntegerGemmIntrinsic.cpp14
-rw-r--r--js/src/intgemm/moz.build6
2 files changed, 15 insertions, 5 deletions
diff --git a/js/src/intgemm/IntegerGemmIntrinsic.cpp b/js/src/intgemm/IntegerGemmIntrinsic.cpp
index aebb0f5f02..0e79ccad36 100644
--- a/js/src/intgemm/IntegerGemmIntrinsic.cpp
+++ b/js/src/intgemm/IntegerGemmIntrinsic.cpp
@@ -22,10 +22,9 @@
#if defined(USE_AVX512BW)
# if defined(USE_AVX512VNNI)
-# define SUPPORTED_ARCHS \
- xsimd::arch_list<xsimd::avx512vnni<xsimd::avx512bw>, \
- xsimd::avx512bw, xsimd::avx2, \
- xsimd::ssse3, xsimd::sse2>
+# define SUPPORTED_ARCHS \
+ xsimd::arch_list<xsimd::avx512vnni<xsimd::avx512bw>, xsimd::avx512bw, \
+ xsimd::avx2, xsimd::ssse3, xsimd::sse2>
# elif defined(USE_AVXVNNI)
# define SUPPORTED_ARCHS \
xsimd::arch_list<xsimd::avx512bw, xsimd::avxvnni, xsimd::avx2, \
@@ -45,7 +44,12 @@
#elif defined(USE_SSE2)
# define SUPPORTED_ARCHS xsimd::arch_list<xsimd::sse2>
#elif defined(USE_NEON) and defined(XSIMD_WITH_NEON64)
-# define SUPPORTED_ARCHS xsimd::arch_list<xsimd::neon64>
+# if defined(USE_NEON_I8MM)
+# define SUPPORTED_ARCHS \
+ xsimd::arch_list<xsimd::i8mm<xsimd::neon64>, xsimd::neon64>
+# else
+# define SUPPORTED_ARCHS xsimd::arch_list<xsimd::neon64>
+# endif
#else
# error no supported architecture
#endif
diff --git a/js/src/intgemm/moz.build b/js/src/intgemm/moz.build
index 9249938cbb..af4450b4e6 100644
--- a/js/src/intgemm/moz.build
+++ b/js/src/intgemm/moz.build
@@ -64,6 +64,12 @@ if CONFIG["TARGET_CPU"] == "aarch64":
"NEON_FLAGS"
]
+ DEFINES["USE_NEON_I8MM"] = True
+ SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineNeon64I8mm.cpp"]
+ SOURCES[
+ "/third_party/gemmology/kernels/GemmologyEngineNeon64I8mm.cpp"
+ ].flags += CONFIG["NEON_I8MM_FLAGS"]
+
SOURCES += [
"IntegerGemmIntrinsic.cpp",
]