@@ -549,7 +549,6 @@ SIMSIMD_PUBLIC simsimd_capability_t _simsimd_capabilities_arm(void) {
549
549
// This value must match the existing indicator obtained from ID_AA64PFR0_EL1:
550
550
unsigned supports_sve2 = ((id_aa64zfr0_el1 ) & 0xF ) >= 1 ;
551
551
unsigned supports_sve2p1 = ((id_aa64zfr0_el1 ) & 0xF ) >= 2 ;
552
- unsigned supports_neon = 1 ; // NEON is always supported
553
552
554
553
return (simsimd_capability_t )( //
555
554
(simsimd_cap_neon_k * (supports_neon )) | //
@@ -1579,7 +1578,7 @@ SIMSIMD_PUBLIC void simsimd_find_kernel_punned( //
1579
1578
*/
1580
1579
SIMSIMD_PUBLIC void simsimd_dot_i8 (simsimd_i8_t const * a , simsimd_i8_t const * b , simsimd_size_t n ,
1581
1580
simsimd_distance_t * d ) {
1582
- #if SIMSIMD_TARGET_NEON_F16
1581
+ #if SIMSIMD_TARGET_NEON_I8
1583
1582
simsimd_dot_i8_neon (a , b , n , d );
1584
1583
#elif SIMSIMD_TARGET_ICE
1585
1584
simsimd_dot_i8_ice (a , b , n , d );
@@ -1703,7 +1702,7 @@ SIMSIMD_PUBLIC void simsimd_vdot_f16c(simsimd_f16c_t const *a, simsimd_f16c_t co
1703
1702
simsimd_distance_t * d ) {
1704
1703
#if SIMSIMD_TARGET_SVE
1705
1704
simsimd_vdot_f16c_sve (a , b , n , d );
1706
- #elif SIMSIMD_TARGET_NEON
1705
+ #elif SIMSIMD_TARGET_NEON_F16
1707
1706
simsimd_dot_f16c_neon (a , b , n , d );
1708
1707
#elif SIMSIMD_TARGET_SAPPHIRE
1709
1708
simsimd_dot_f16c_sapphire (a , b , n , d );
@@ -1763,7 +1762,7 @@ SIMSIMD_PUBLIC void simsimd_vdot_f64c(simsimd_f64c_t const *a, simsimd_f64c_t co
1763
1762
*/
1764
1763
SIMSIMD_PUBLIC void simsimd_cos_i8 (simsimd_i8_t const * a , simsimd_i8_t const * b , simsimd_size_t n ,
1765
1764
simsimd_distance_t * d ) {
1766
- #if SIMSIMD_TARGET_NEON
1765
+ #if SIMSIMD_TARGET_NEON_I8
1767
1766
simsimd_cos_i8_neon (a , b , n , d );
1768
1767
#elif SIMSIMD_TARGET_ICE
1769
1768
simsimd_cos_i8_ice (a , b , n , d );
@@ -1775,7 +1774,7 @@ SIMSIMD_PUBLIC void simsimd_cos_i8(simsimd_i8_t const *a, simsimd_i8_t const *b,
1775
1774
}
1776
1775
SIMSIMD_PUBLIC void simsimd_cos_u8 (simsimd_u8_t const * a , simsimd_u8_t const * b , simsimd_size_t n ,
1777
1776
simsimd_distance_t * d ) {
1778
- #if SIMSIMD_TARGET_NEON
1777
+ #if SIMSIMD_TARGET_NEON_I8
1779
1778
simsimd_cos_u8_neon (a , b , n , d );
1780
1779
#elif SIMSIMD_TARGET_ICE
1781
1780
simsimd_cos_u8_ice (a , b , n , d );
@@ -1841,7 +1840,7 @@ SIMSIMD_PUBLIC void simsimd_cos_f64(simsimd_f64_t const *a, simsimd_f64_t const
1841
1840
}
1842
1841
SIMSIMD_PUBLIC void simsimd_l2sq_i8 (simsimd_i8_t const * a , simsimd_i8_t const * b , simsimd_size_t n ,
1843
1842
simsimd_distance_t * d ) {
1844
- #if SIMSIMD_TARGET_NEON
1843
+ #if SIMSIMD_TARGET_NEON_I8
1845
1844
simsimd_l2sq_i8_neon (a , b , n , d );
1846
1845
#elif SIMSIMD_TARGET_ICE
1847
1846
simsimd_l2sq_i8_ice (a , b , n , d );
@@ -1853,7 +1852,7 @@ SIMSIMD_PUBLIC void simsimd_l2sq_i8(simsimd_i8_t const *a, simsimd_i8_t const *b
1853
1852
}
1854
1853
SIMSIMD_PUBLIC void simsimd_l2sq_u8 (simsimd_u8_t const * a , simsimd_u8_t const * b , simsimd_size_t n ,
1855
1854
simsimd_distance_t * d ) {
1856
- #if SIMSIMD_TARGET_NEON
1855
+ #if SIMSIMD_TARGET_NEON_I8
1857
1856
simsimd_l2sq_u8_neon (a , b , n , d );
1858
1857
#elif SIMSIMD_TARGET_ICE
1859
1858
simsimd_l2sq_u8_ice (a , b , n , d );
@@ -1919,7 +1918,7 @@ SIMSIMD_PUBLIC void simsimd_l2sq_f64(simsimd_f64_t const *a, simsimd_f64_t const
1919
1918
}
1920
1919
SIMSIMD_PUBLIC void simsimd_l2_i8 (simsimd_i8_t const * a , simsimd_i8_t const * b , simsimd_size_t n ,
1921
1920
simsimd_distance_t * d ) {
1922
- #if SIMSIMD_TARGET_NEON
1921
+ #if SIMSIMD_TARGET_NEON_I8
1923
1922
simsimd_l2_i8_neon (a , b , n , d );
1924
1923
#elif SIMSIMD_TARGET_ICE
1925
1924
simsimd_l2_i8_ice (a , b , n , d );
@@ -1931,7 +1930,7 @@ SIMSIMD_PUBLIC void simsimd_l2_i8(simsimd_i8_t const *a, simsimd_i8_t const *b,
1931
1930
}
1932
1931
SIMSIMD_PUBLIC void simsimd_l2_u8 (simsimd_u8_t const * a , simsimd_u8_t const * b , simsimd_size_t n ,
1933
1932
simsimd_distance_t * d ) {
1934
- #if SIMSIMD_TARGET_NEON
1933
+ #if SIMSIMD_TARGET_NEON_I8
1935
1934
simsimd_l2_u8_neon (a , b , n , d );
1936
1935
#elif SIMSIMD_TARGET_ICE
1937
1936
simsimd_l2_u8_ice (a , b , n , d );
@@ -2054,7 +2053,7 @@ SIMSIMD_PUBLIC void simsimd_jaccard_b8(simsimd_b8_t const *a, simsimd_b8_t const
2054
2053
*/
2055
2054
SIMSIMD_PUBLIC void simsimd_kl_f16 (simsimd_f16_t const * a , simsimd_f16_t const * b , simsimd_size_t n ,
2056
2055
simsimd_distance_t * d ) {
2057
- #if SIMSIMD_TARGET_NEON
2056
+ #if SIMSIMD_TARGET_NEON_F16
2058
2057
simsimd_kl_f16_neon (a , b , n , d );
2059
2058
#elif SIMSIMD_TARGET_HASWELL
2060
2059
simsimd_kl_f16_haswell (a , b , n , d );
@@ -2082,7 +2081,7 @@ SIMSIMD_PUBLIC void simsimd_kl_f64(simsimd_f64_t const *a, simsimd_f64_t const *
2082
2081
}
2083
2082
SIMSIMD_PUBLIC void simsimd_js_f16 (simsimd_f16_t const * a , simsimd_f16_t const * b , simsimd_size_t n ,
2084
2083
simsimd_distance_t * d ) {
2085
- #if SIMSIMD_TARGET_NEON
2084
+ #if SIMSIMD_TARGET_NEON_F16
2086
2085
simsimd_js_f16_neon (a , b , n , d );
2087
2086
#elif SIMSIMD_TARGET_HASWELL
2088
2087
simsimd_js_f16_haswell (a , b , n , d );
@@ -2213,7 +2212,7 @@ SIMSIMD_PUBLIC void simsimd_bilinear_f16(simsimd_f16_t const *a, simsimd_f16_t c
2213
2212
simsimd_bilinear_f16_sapphire (a , b , c , n , d );
2214
2213
#elif SIMSIMD_TARGET_HASWELL
2215
2214
simsimd_bilinear_f16_haswell (a , b , c , n , d );
2216
- #elif SIMSIMD_TARGET_NEON
2215
+ #elif SIMSIMD_TARGET_NEON_F16
2217
2216
simsimd_bilinear_f16_neon (a , b , c , n , d );
2218
2217
#else
2219
2218
simsimd_bilinear_f16_serial (a , b , c , n , d );
@@ -2225,7 +2224,7 @@ SIMSIMD_PUBLIC void simsimd_bilinear_bf16(simsimd_bf16_t const *a, simsimd_bf16_
2225
2224
simsimd_bilinear_bf16_genoa (a , b , c , n , d );
2226
2225
#elif SIMSIMD_TARGET_HASWELL
2227
2226
simsimd_bilinear_bf16_haswell (a , b , c , n , d );
2228
- #elif SIMSIMD_TARGET_NEON
2227
+ #elif SIMSIMD_TARGET_NEON_BF16
2229
2228
simsimd_bilinear_bf16_neon (a , b , c , n , d );
2230
2229
#else
2231
2230
simsimd_bilinear_bf16_serial (a , b , c , n , d );
@@ -2253,7 +2252,7 @@ SIMSIMD_PUBLIC void simsimd_bilinear_f16c(simsimd_f16c_t const *a, simsimd_f16c_
2253
2252
simsimd_size_t n , simsimd_distance_t * d ) {
2254
2253
#if SIMSIMD_TARGET_SAPPHIRE
2255
2254
simsimd_bilinear_f16c_sapphire (a , b , c , n , d );
2256
- #elif SIMSIMD_TARGET_NEON
2255
+ #elif SIMSIMD_TARGET_NEON_F16
2257
2256
simsimd_bilinear_f16c_neon (a , b , c , n , d );
2258
2257
#else
2259
2258
simsimd_bilinear_f16c_serial (a , b , c , n , d );
@@ -2263,7 +2262,7 @@ SIMSIMD_PUBLIC void simsimd_bilinear_bf16c(simsimd_bf16c_t const *a, simsimd_bf1
2263
2262
simsimd_size_t n , simsimd_distance_t * d ) {
2264
2263
#if SIMSIMD_TARGET_GENOA
2265
2264
simsimd_bilinear_bf16c_genoa (a , b , c , n , d );
2266
- #elif SIMSIMD_TARGET_NEON
2265
+ #elif SIMSIMD_TARGET_NEON_BF16
2267
2266
simsimd_bilinear_bf16c_neon (a , b , c , n , d );
2268
2267
#else
2269
2268
simsimd_bilinear_bf16c_serial (a , b , c , n , d );
@@ -2293,7 +2292,7 @@ SIMSIMD_PUBLIC void simsimd_mahalanobis_f16(simsimd_f16_t const *a, simsimd_f16_
2293
2292
simsimd_mahalanobis_f16_sapphire (a , b , c , n , d );
2294
2293
#elif SIMSIMD_TARGET_HASWELL
2295
2294
simsimd_mahalanobis_f16_haswell (a , b , c , n , d );
2296
- #elif SIMSIMD_TARGET_NEON
2295
+ #elif SIMSIMD_TARGET_NEON_F16
2297
2296
simsimd_mahalanobis_f16_neon (a , b , c , n , d );
2298
2297
#else
2299
2298
simsimd_mahalanobis_f16_serial (a , b , c , n , d );
@@ -2305,7 +2304,7 @@ SIMSIMD_PUBLIC void simsimd_mahalanobis_bf16(simsimd_bf16_t const *a, simsimd_bf
2305
2304
simsimd_mahalanobis_bf16_genoa (a , b , c , n , d );
2306
2305
#elif SIMSIMD_TARGET_HASWELL
2307
2306
simsimd_mahalanobis_bf16_haswell (a , b , c , n , d );
2308
- #elif SIMSIMD_TARGET_NEON
2307
+ #elif SIMSIMD_TARGET_NEON_BF16
2309
2308
simsimd_mahalanobis_bf16_neon (a , b , c , n , d );
2310
2309
#else
2311
2310
simsimd_mahalanobis_bf16_serial (a , b , c , n , d );
@@ -2352,7 +2351,7 @@ SIMSIMD_PUBLIC void simsimd_wsum_bf16(simsimd_bf16_t const *a, simsimd_bf16_t co
2352
2351
simsimd_wsum_bf16_skylake (a , b , n , alpha , beta , r );
2353
2352
#elif SIMSIMD_TARGET_HASWELL
2354
2353
simsimd_wsum_bf16_haswell (a , b , n , alpha , beta , r );
2355
- #elif SIMSIMD_TARGET_NEON
2354
+ #elif SIMSIMD_TARGET_NEON_BF16
2356
2355
simsimd_wsum_bf16_neon (a , b , n , alpha , beta , r );
2357
2356
#else
2358
2357
simsimd_wsum_bf16_serial (a , b , n , alpha , beta , r );
@@ -2431,7 +2430,7 @@ SIMSIMD_PUBLIC void simsimd_fma_bf16(simsimd_bf16_t const *a, simsimd_bf16_t con
2431
2430
simsimd_fma_bf16_skylake (a , b , c , n , alpha , beta , r );
2432
2431
#elif SIMSIMD_TARGET_HASWELL
2433
2432
simsimd_fma_bf16_haswell (a , b , c , n , alpha , beta , r );
2434
- #elif SIMSIMD_TARGET_NEON
2433
+ #elif SIMSIMD_TARGET_NEON_BF16
2435
2434
simsimd_fma_bf16_neon (a , b , c , n , alpha , beta , r );
2436
2435
#else
2437
2436
simsimd_fma_bf16_serial (a , b , c , n , alpha , beta , r );
0 commit comments