| 309 | length % VECTOR_SIZE); |
| 310 | } |
| 311 | inline bool utf16_has_surrogate_pairs(const uint16_t *data, size_t length) { |
| 312 | // Direct fallback implementation - SIMD versions were consistently slower |
| 313 | // due to early-exit characteristics: surrogate pairs are rare and when |
| 314 | // present, often appear early in strings, making SIMD setup overhead |
| 315 | // outweigh any vectorization benefits. |
| 316 | return has_surrogate_pair_fallback(data, length); |
| 317 | } |
| 318 | |
| 319 | #elif defined(FORY_HAS_NEON) |
| 320 | inline bool is_ascii(const char *data, size_t length) { |