Skip to content

Commit f67bd46

Browse files
committed
Restrict neon implementation to arm64 because arm32 neon doesn't have wide vector registers
1 parent 438de1e commit f67bd46

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/native/containers/dn-simdhash-arch.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#include <wasm_simd128.h>
1616
#elif defined(_M_AMD64) || defined(_M_X64) || (_M_IX86_FP == 2) || defined(__SSE2__)
1717
#include <emmintrin.h>
18-
#elif defined(__ARM_NEON)
18+
#elif defined(__ARM_ARCH_ISA_A64)
1919
#include <arm_neon.h>
2020
#elif defined(__wasm)
2121
#define DN_SIMDHASH_USE_SCALAR_FALLBACK 1
@@ -110,7 +110,7 @@ find_first_matching_suffix_simd (
110110
return ctz(wasm_i8x16_bitmask(wasm_i8x16_eq(needle.vec, haystack.vec)));
111111
#elif defined(_M_AMD64) || defined(_M_X64) || (_M_IX86_FP == 2) || defined(__SSE2__)
112112
return ctz(_mm_movemask_epi8(_mm_cmpeq_epi8(needle.m128, haystack.m128)));
113-
#elif defined(__ARM_NEON)
113+
#elif defined(__ARM_ARCH_ISA_A64)
114114
// See https://community.arm.com/arm-community-blogs/b/servers-and-cloud-computing-blog/posts/porting-x86-vector-bitmask-optimizations-to-arm-neon
115115
uint16x8_t match_vector16 = vreinterpretq_u16_u8(vceqq_u8(needle.vec, haystack.vec));
116116
uint8x8_t match_bits = vshrn_n_u16(match_vector16, 4);

0 commit comments

Comments
 (0)