Lines Matching defs:bool
69 simdutf_warn_unused bool validate_utf8(const char *buf, size_t len) const noexcept final;
71 simdutf_warn_unused bool validate_ascii(const char *buf, size_t len) const noexcept final;
73 simdutf_warn_unused bool validate_utf16le(const char16_t *buf, size_t len) const noexcept final;
74 simdutf_warn_unused bool validate_utf16be(const char16_t *buf, size_t len) const noexcept final;
77 simdutf_warn_unused bool validate_utf32(const char32_t *buf, size_t len) const noexcept final;
262 // Base class of simd8<uint8_t> and simd8<bool>, both of which use uint8x16_t internally.
264 template<typename T, typename Mask=simd8<bool>>
296 struct simd8<bool>: base_u8<bool> {
300 static simdutf_really_inline simd8<bool> splat(bool _value) { return vmovq_n_u8(uint8_t(-(!!_value))); }
302 simdutf_really_inline simd8(const uint8x16_t _value) : base_u8<bool>(_value) {}
306 simdutf_really_inline simd8(bool _value) : simd8(splat(_value)) {}
335 simdutf_really_inline bool any() const { return vmaxvq_u8(*this) != 0; }
336 simdutf_really_inline bool none() const { return vmaxvq_u8(*this) == 0; }
337 simdutf_really_inline bool all() const { return vminvq_u8(*this) == 0xFF; }
403 simdutf_really_inline simd8<bool> operator<=(const simd8<uint8_t> other) const { return vcleq_u8(*this, other); }
404 simdutf_really_inline simd8<bool> operator>=(const simd8<uint8_t> other) const { return vcgeq_u8(*this, other); }
405 simdutf_really_inline simd8<bool> operator<(const simd8<uint8_t> other) const { return vcltq_u8(*this, other); }
406 simdutf_really_inline simd8<bool> operator>(const simd8<uint8_t> other) const { return vcgtq_u8(*this, other); }
413 simdutf_really_inline simd8<bool> any_bits_set(simd8<uint8_t> bits) const { return vtstq_u8(*this, bits); }
414 simdutf_really_inline bool is_ascii() const { return this->max_val() < 0b10000000u; }
416 simdutf_really_inline bool any_bits_set_anywhere() const { return this->max_val() != 0; }
417 simdutf_really_inline bool any_bits_set_anywhere(simd8<uint8_t> bits) const { return (*this & bits).any_bits_set_anywhere(); }
582 simdutf_really_inline bool is_ascii() const { return this->min_val() >= 0; }
587 simdutf_really_inline simd8<bool> operator>(const simd8<int8_t> other) const { return vcgtq_s8(value, other.value); }
588 simdutf_really_inline simd8<bool> operator<(const simd8<int8_t> other) const { return vcltq_s8(value, other.value); }
589 simdutf_really_inline simd8<bool> operator==(const simd8<int8_t> other) const { return vceqq_s8(value, other.value); }
654 simdutf_really_inline bool is_ascii() const {
695 return simd8x64<bool>(
705 return simd8x64<bool>(
717 return simd8x64<bool>(
727 return simd8x64<bool>(
736 return simd8x64<bool>(
745 return simd8x64<bool>(
754 return simd8x64<bool>(
763 return simd8x64<bool>(
775 template<typename T, typename Mask=simd16<bool>>
803 template<typename T, typename Mask=simd16<bool>>
823 struct simd16<bool>: base16<bool> {
824 static simdutf_really_inline simd16<bool> splat(bool _value) { return vmovq_n_u16(uint16_t(-(!!_value))); }
826 simdutf_really_inline simd16<bool>() : base16() {}
827 simdutf_really_inline simd16<bool>(const uint16x8_t _value) : base16<bool>(_value) {}
829 simdutf_really_inline simd16<bool>(bool _value) : base16<bool>(splat(_value)) {}
847 // Override to distinguish from bool version
880 simdutf_really_inline simd16<bool> operator>(const simd16<int16_t> other) const { return vcgtq_s16(vreinterpretq_s16_u16(this->value), vreinterpretq_s16_u16(other.value)); }
881 simdutf_really_inline simd16<bool> operator<(const simd16<int16_t> other) const { return vcltq_s16(vreinterpretq_s16_u16(this->value), vreinterpretq_s16_u16(other.value)); }
913 simdutf_really_inline simd16<bool> operator<=(const simd16<uint16_t> other) const { return vcleq_u16(*this, other); }
914 simdutf_really_inline simd16<bool> operator>=(const simd16<uint16_t> other) const { return vcgeq_u16(*this, other); }
915 simdutf_really_inline simd16<bool> operator>(const simd16<uint16_t> other) const { return vcgtq_u16(*this, other); }
916 simdutf_really_inline simd16<bool> operator<(const simd16<uint16_t> other) const { return vcltq_u16(*this, other); }
919 simdutf_really_inline simd16<bool> bits_not_set() const { return *this == uint16_t(0); }
967 simdutf_really_inline bool is_ascii() const {
1007 return simd16x32<bool>(
1017 return simd16x32<bool>(
1029 return simd16x32<bool>(
1039 return simd16x32<bool>(
1048 return simd16x32<bool>(
1269 simdutf_warn_unused bool validate_utf8(const char *buf, size_t len) const noexcept final;
1271 simdutf_warn_unused bool validate_ascii(const char *buf, size_t len) const noexcept final;
1273 simdutf_warn_unused bool validate_utf16le(const char16_t *buf, size_t len) const noexcept final;
1274 simdutf_warn_unused bool validate_utf16be(const char16_t *buf, size_t len) const noexcept final;
1277 simdutf_warn_unused bool validate_utf32(const char32_t *buf, size_t len) const noexcept final;
1476 simdutf_warn_unused bool validate_utf8(const char *buf, size_t len) const noexcept final;
1478 simdutf_warn_unused bool validate_ascii(const char *buf, size_t len) const noexcept final;
1480 simdutf_warn_unused bool validate_utf16le(const char16_t *buf, size_t len) const noexcept final;
1481 simdutf_warn_unused bool validate_utf16be(const char16_t *buf, size_t len) const noexcept final;
1484 simdutf_warn_unused bool validate_utf32(const char32_t *buf, size_t len) const noexcept final;
1721 template<typename T, typename Mask=simd8<bool>>
1742 struct simd8<bool>: base8<bool> {
1743 static simdutf_really_inline simd8<bool> splat(bool _value) { return _mm256_set1_epi8(uint8_t(-(!!_value))); }
1745 simdutf_really_inline simd8<bool>() : base8() {}
1746 simdutf_really_inline simd8<bool>(const __m256i _value) : base8<bool>(_value) {}
1748 simdutf_really_inline simd8<bool>(bool _value) : base8<bool>(splat(_value)) {}
1751 simdutf_really_inline bool any() const { return !_mm256_testz_si256(*this, *this); }
1752 simdutf_really_inline bool none() const { return _mm256_testz_si256(*this, *this); }
1753 simdutf_really_inline bool all() const { return static_cast<uint32_t>(_mm256_movemask_epi8(*this)) == 0xFFFFFFFF; }
1754 simdutf_really_inline simd8<bool> operator~() const { return *this ^ true; }
1789 // Override to distinguish from bool version
1849 simdutf_really_inline bool is_ascii() const { return _mm256_movemask_epi8(*this) == 0; }
1853 simdutf_really_inline simd8<bool> operator>(const simd8<int8_t> other) const { return _mm256_cmpgt_epi8(*this, other); }
1854 simdutf_really_inline simd8<bool> operator<(const simd8<int8_t> other) const { return _mm256_cmpgt_epi8(other, *this); }
1903 simdutf_really_inline simd8<bool> operator<=(const simd8<uint8_t> other) const { return other.max_val(*this) == other; }
1904 simdutf_really_inline simd8<bool> operator>=(const simd8<uint8_t> other) const { return other.min_val(*this) == other; }
1905 simdutf_really_inline simd8<bool> operator>(const simd8<uint8_t> other) const { return this->gt_bits(other).any_bits_set(); }
1906 simdutf_really_inline simd8<bool> operator<(const simd8<uint8_t> other) const { return this->lt_bits(other).any_bits_set(); }
1909 simdutf_really_inline simd8<bool> bits_not_set() const { return *this == uint8_t(0); }
1910 simdutf_really_inline simd8<bool> bits_not_set(simd8<uint8_t> bits) const { return (*this & bits).bits_not_set(); }
1911 simdutf_really_inline simd8<bool> any_bits_set() const { return ~this->bits_not_set(); }
1912 simdutf_really_inline simd8<bool> any_bits_set(simd8<uint8_t> bits) const { return ~this->bits_not_set(bits); }
1913 simdutf_really_inline bool is_ascii() const { return _mm256_movemask_epi8(*this) == 0; }
1914 simdutf_really_inline bool bits_not_set_anywhere() const { return _mm256_testz_si256(*this, *this); }
1915 simdutf_really_inline bool any_bits_set_anywhere() const { return !bits_not_set_anywhere(); }
1916 simdutf_really_inline bool bits_not_set_anywhere(simd8<uint8_t> bits) const { return _mm256_testz_si256(*this, bits); }
1917 simdutf_really_inline bool any_bits_set_anywhere(simd8<uint8_t> bits) const { return !bits_not_set_anywhere(bits); }
1964 simdutf_really_inline bool is_ascii() const {
1989 return simd8x64<bool>(
1996 return simd8x64<bool>(
2004 return simd8x64<bool>(
2014 return simd8x64<bool>(
2022 return simd8x64<bool>(
2029 return simd8x64<bool>(
2037 return simd8x64<bool>(
2044 return simd8x64<bool>(
2051 return simd8x64<bool>(
2069 template<typename T, typename Mask=simd16<bool>>
2093 struct simd16<bool>: base16<bool> {
2094 static simdutf_really_inline simd16<bool> splat(bool _value) { return _mm256_set1_epi16(uint16_t(-(!!_value))); }
2096 simdutf_really_inline simd16<bool>() : base16() {}
2097 simdutf_really_inline simd16<bool>(const __m256i _value) : base16<bool>(_value) {}
2099 simdutf_really_inline simd16<bool>(bool _value) : base16<bool>(splat(_value)) {}
2102 simdutf_really_inline bool any() const { return !_mm256_testz_si256(*this, *this); }
2103 simdutf_really_inline simd16<bool> operator~() const { return *this ^ true; }
2120 // Override to distinguish from bool version
2143 simdutf_really_inline simd16<bool> operator>(const simd16<int16_t> other) const { return _mm256_cmpgt_epi16(*this, other); }
2144 simdutf_really_inline simd16<bool> operator<(const simd16<int16_t> other) const { return _mm256_cmpgt_epi16(other, *this); }
2170 simdutf_really_inline simd16<bool> operator<=(const simd16<uint16_t> other) const { return other.max_val(*this) == other; }
2171 simdutf_really_inline simd16<bool> operator>=(const simd16<uint16_t> other) const { return other.min_val(*this) == other; }
2172 simdutf_really_inline simd16<bool> operator>(const simd16<uint16_t> other) const { return this->gt_bits(other).any_bits_set(); }
2173 simdutf_really_inline simd16<bool> operator<(const simd16<uint16_t> other) const { return this->gt_bits(other).any_bits_set(); }
2176 simdutf_really_inline simd16<bool> bits_not_set() const { return *this == uint16_t(0); }
2177 simdutf_really_inline simd16<bool> bits_not_set(simd16<uint16_t> bits) const { return (*this & bits).bits_not_set(); }
2178 simdutf_really_inline simd16<bool> any_bits_set() const { return ~this->bits_not_set(); }
2179 simdutf_really_inline simd16<bool> any_bits_set(simd16<uint16_t> bits) const { return ~this->bits_not_set(bits); }
2181 simdutf_really_inline bool bits_not_set_anywhere() const { return _mm256_testz_si256(*this, *this); }
2182 simdutf_really_inline bool any_bits_set_anywhere() const { return !bits_not_set_anywhere(); }
2183 simdutf_really_inline bool bits_not_set_anywhere(simd16<uint16_t> bits) const { return _mm256_testz_si256(*this, bits); }
2184 simdutf_really_inline bool any_bits_set_anywhere(simd16<uint16_t> bits) const { return !bits_not_set_anywhere(bits); }
2253 simdutf_really_inline bool is_ascii() const {
2277 return simd16x32<bool>(
2284 return simd16x32<bool>(
2292 return simd16x32<bool>(
2302 return simd16x32<bool>(
2310 return simd16x32<bool>(
2317 return simd16x32<bool>(
2407 simdutf_warn_unused bool validate_utf8(const char *buf, size_t len) const noexcept final;
2409 simdutf_warn_unused bool validate_ascii(const char *buf, size_t len) const noexcept final;
2411 simdutf_warn_unused bool validate_utf16le(const char16_t *buf, size_t len) const noexcept final;
2412 simdutf_warn_unused bool validate_utf16be(const char16_t *buf, size_t len) const noexcept final;
2415 simdutf_warn_unused bool validate_utf32(const char32_t *buf, size_t len) const noexcept final;
2626 template<typename T, typename Mask=simd8<bool>>
2648 struct simd8<bool>: base8<bool> {
2649 static simdutf_really_inline simd8<bool> splat(bool _value) { return _mm_set1_epi8(uint8_t(-(!!_value))); }
2651 simdutf_really_inline simd8<bool>() : base8() {}
2652 simdutf_really_inline simd8<bool>(const __m128i _value) : base8<bool>(_value) {}
2654 simdutf_really_inline simd8<bool>(bool _value) : base8<bool>(splat(_value)) {}
2657 simdutf_really_inline bool any() const { return !_mm_testz_si128(*this, *this); }
2658 simdutf_really_inline bool none() const { return _mm_testz_si128(*this, *this); }
2659 simdutf_really_inline bool all() const { return _mm_movemask_epi8(*this) == 0xFFFF; }
2660 simdutf_really_inline simd8<bool> operator~() const { return *this ^ true; }
2687 // Override to distinguish from bool version
2745 simdutf_really_inline bool is_ascii() const { return _mm_movemask_epi8(*this) == 0; }
2750 simdutf_really_inline simd8<bool> operator>(const simd8<int8_t> other) const { return _mm_cmpgt_epi8(*this, other); }
2751 simdutf_really_inline simd8<bool> operator<(const simd8<int8_t> other) const { return _mm_cmpgt_epi8(other, *this); }
2794 simdutf_really_inline simd8<bool> operator<=(const simd8<uint8_t> other) const { return other.max_val(*this) == other; }
2795 simdutf_really_inline simd8<bool> operator>=(const simd8<uint8_t> other) const { return other.min_val(*this) == other; }
2796 simdutf_really_inline simd8<bool> operator>(const simd8<uint8_t> other) const { return this->gt_bits(other).any_bits_set(); }
2797 simdutf_really_inline simd8<bool> operator<(const simd8<uint8_t> other) const { return this->gt_bits(other).any_bits_set(); }
2800 simdutf_really_inline simd8<bool> bits_not_set() const { return *this == uint8_t(0); }
2801 simdutf_really_inline simd8<bool> bits_not_set(simd8<uint8_t> bits) const { return (*this & bits).bits_not_set(); }
2802 simdutf_really_inline simd8<bool> any_bits_set() const { return ~this->bits_not_set(); }
2803 simdutf_really_inline simd8<bool> any_bits_set(simd8<uint8_t> bits) const { return ~this->bits_not_set(bits); }
2804 simdutf_really_inline bool is_ascii() const { return _mm_movemask_epi8(*this) == 0; }
2806 simdutf_really_inline bool bits_not_set_anywhere() const { return _mm_testz_si128(*this, *this); }
2807 simdutf_really_inline bool any_bits_set_anywhere() const { return !bits_not_set_anywhere(); }
2808 simdutf_really_inline bool bits_not_set_anywhere(simd8<uint8_t> bits) const { return _mm_testz_si128(*this, bits); }
2809 simdutf_really_inline bool any_bits_set_anywhere(simd8<uint8_t> bits) const { return !bits_not_set_anywhere(bits); }
2853 simdutf_really_inline simd8<bool> operator<=(const simd8<uint16_t> other) const { return other.max_val(*this) == other; }
2854 simdutf_really_inline simd8<bool> operator>=(const simd8<uint16_t> other) const { return other.min_val(*this) == other; }
2855 simdutf_really_inline simd8<bool> operator==(const simd8<uint16_t> other) const { return _mm_cmpeq_epi16(*this, other); }
2856 simdutf_really_inline simd8<bool> operator&(const simd8<uint16_t> other) const { return _mm_and_si128(*this, other); }
2857 simdutf_really_inline simd8<bool> operator|(const simd8<uint16_t> other) const { return _mm_or_si128(*this, other); }
2860 simdutf_really_inline simd8<bool> bits_not_set() const { return *this == uint16_t(0); }
2861 simdutf_really_inline simd8<bool> any_bits_set() const { return ~this->bits_not_set(); }
2863 simdutf_really_inline bool bits_not_set_anywhere() const { return _mm_testz_si128(*this, *this); }
2864 simdutf_really_inline bool any_bits_set_anywhere() const { return !bits_not_set_anywhere(); }
2865 simdutf_really_inline bool bits_not_set_anywhere(simd8<uint16_t> bits) const { return _mm_testz_si128(*this, bits); }
2866 simdutf_really_inline bool any_bits_set_anywhere(simd8<uint16_t> bits) const { return !bits_not_set_anywhere(bits); }
2900 simdutf_really_inline bool is_ascii() const {
2929 return simd8x64<bool>(
2938 return simd8x64<bool>(
2948 return simd8x64<bool>(
2960 return simd8x64<bool>(
2970 return simd8x64<bool>(
2979 return simd8x64<bool>(
2989 return simd8x64<bool>(
2998 return simd8x64<bool>(
3007 return simd8x64<bool>(
3020 template<typename T, typename Mask=simd16<bool>>
3042 struct simd16<bool>: base16<bool> {
3043 static simdutf_really_inline simd16<bool> splat(bool _value) { return _mm_set1_epi16(uint16_t(-(!!_value))); }
3045 simdutf_really_inline simd16<bool>() : base16() {}
3046 simdutf_really_inline simd16<bool>(const __m128i _value) : base16<bool>(_value) {}
3048 simdutf_really_inline simd16<bool>(bool _value) : base16<bool>(splat(_value)) {}
3051 simdutf_really_inline bool any() const { return !_mm_testz_si128(*this, *this); }
3052 simdutf_really_inline simd16<bool> operator~() const { return *this ^ true; }
3069 // Override to distinguish from bool version
3098 simdutf_really_inline simd16<bool> operator>(const simd16<int16_t> other) const { return _mm_cmpgt_epi16(*this, other); }
3099 simdutf_really_inline simd16<bool> operator<(const simd16<int16_t> other) const { return _mm_cmpgt_epi16(other, *this); }
3135 simdutf_really_inline simd16<bool> operator<=(const simd16<uint16_t> other) const { return other.max_val(*this) == other; }
3136 simdutf_really_inline simd16<bool> operator>=(const simd16<uint16_t> other) const { return other.min_val(*this) == other; }
3137 simdutf_really_inline simd16<bool> operator>(const simd16<uint16_t> other) const { return this->gt_bits(other).any_bits_set(); }
3138 simdutf_really_inline simd16<bool> operator<(const simd16<uint16_t> other) const { return this->gt_bits(other).any_bits_set(); }
3141 simdutf_really_inline simd16<bool> bits_not_set() const { return *this == uint16_t(0); }
3142 simdutf_really_inline simd16<bool> bits_not_set(simd16<uint16_t> bits) const { return (*this & bits).bits_not_set(); }
3143 simdutf_really_inline simd16<bool> any_bits_set() const { return ~this->bits_not_set(); }
3144 simdutf_really_inline simd16<bool> any_bits_set(simd16<uint16_t> bits) const { return ~this->bits_not_set(bits); }
3146 simdutf_really_inline bool bits_not_set_anywhere() const { return _mm_testz_si128(*this, *this); }
3147 simdutf_really_inline bool any_bits_set_anywhere() const { return !bits_not_set_anywhere(); }
3148 simdutf_really_inline bool bits_not_set_anywhere(simd16<uint16_t> bits) const { return _mm_testz_si128(*this, bits); }
3149 simdutf_really_inline bool any_bits_set_anywhere(simd16<uint16_t> bits) const { return !bits_not_set_anywhere(bits); }
3196 simdutf_really_inline bool is_ascii() const {
3224 return simd16x32<bool>(
3233 return simd16x32<bool>(
3243 return simd16x32<bool>(
3255 return simd16x32<bool>(
3265 return simd16x32<bool>(
3274 return simd16x32<bool>(
3348 simdutf_warn_unused bool validate_utf8(const char *buf, size_t len) const noexcept final;
3350 simdutf_warn_unused bool validate_ascii(const char *buf, size_t len) const noexcept final;
3352 simdutf_warn_unused bool validate_utf16le(const char16_t *buf, size_t len) const noexcept final;
3353 simdutf_warn_unused bool validate_utf16be(const char16_t *buf, size_t len) const noexcept final;
3356 simdutf_warn_unused bool validate_utf32(const char32_t *buf, size_t len) const noexcept final;
3424 #ifdef bool
3425 #undef bool
3520 template <typename T, typename Mask = simd8<bool>>
3550 template <> struct simd8<bool> : base8<bool> {
3551 static simdutf_really_inline simd8<bool> splat(bool _value) {
3555 simdutf_really_inline simd8<bool>() : base8() {}
3556 simdutf_really_inline simd8<bool>(const __m128i _value)
3557 : base8<bool>(_value) {}
3559 simdutf_really_inline simd8<bool>(bool _value)
3560 : base8<bool>(splat(_value)) {}
3575 simdutf_really_inline bool any() const {
3578 simdutf_really_inline simd8<bool> operator~() const {
3610 // Override to distinguish from bool version
3687 simdutf_really_inline simd8<bool>
3692 simdutf_really_inline simd8<bool>
3754 simdutf_really_inline simd8<bool>
3758 simdutf_really_inline simd8<bool>
3762 simdutf_really_inline simd8<bool>
3766 simdutf_really_inline simd8<bool>
3772 simdutf_really_inline simd8<bool> bits_not_set() const {
3775 simdutf_really_inline simd8<bool> bits_not_set(simd8<uint8_t> bits) const {
3778 simdutf_really_inline simd8<bool> any_bits_set() const {
3781 simdutf_really_inline simd8<bool> any_bits_set(simd8<uint8_t> bits) const {
3785 simdutf_really_inline bool is_ascii() const {
3789 simdutf_really_inline bool bits_not_set_anywhere() const {
3792 simdutf_really_inline bool any_bits_set_anywhere() const {
3795 simdutf_really_inline bool bits_not_set_anywhere(simd8<uint8_t> bits) const {
3799 simdutf_really_inline bool any_bits_set_anywhere(simd8<uint8_t> bits) const {
3851 simdutf_really_inline bool is_ascii() const {
3865 return simd8x64<bool>(this->chunks[0] == mask, this->chunks[1] == mask,
3871 return simd8x64<bool>(this->chunks[0] == other.chunks[0],
3880 return simd8x64<bool>(this->chunks[0] <= mask, this->chunks[1] <= mask,
3889 return simd8x64<bool>(
3899 return simd8x64<bool>(
3908 return simd8x64<bool>(this->chunks[0] < mask, this->chunks[1] < mask,
3915 return simd8x64<bool>(
3924 return simd8x64<bool>(
3933 return simd8x64<bool>(
4005 simdutf_warn_unused bool validate_utf8(const char *buf, size_t len) const noexcept final;
4007 simdutf_warn_unused bool validate_ascii(const char *buf, size_t len) const noexcept final;
4009 simdutf_warn_unused bool validate_utf16le(const char16_t *buf, size_t len) const noexcept final;
4010 simdutf_warn_unused bool validate_utf16be(const char16_t *buf, size_t len) const noexcept final;
4013 simdutf_warn_unused bool validate_utf32(const char32_t *buf, size_t len) const noexcept final;
4127 inline simdutf_warn_unused bool validate(const char *buf, size_t len) noexcept {
4345 inline simdutf_warn_unused bool validate(const char16_t *buf, size_t len) noexcept {
4458 bool implementation::supported_by_runtime_system() const {
4544 simdutf_warn_unused bool validate_utf8(const char * buf, size_t len) const noexcept final override {
4552 simdutf_warn_unused bool validate_ascii(const char * buf, size_t len) const noexcept final override {
4560 simdutf_warn_unused bool validate_utf16le(const char16_t * buf, size_t len) const noexcept final override {
4564 simdutf_warn_unused bool validate_utf16be(const char16_t * buf, size_t len) const noexcept final override {
4576 simdutf_warn_unused bool validate_utf32(const char32_t * buf, size_t len) const noexcept final override {
4877 simdutf_warn_unused bool validate_utf8(const char *, size_t) const noexcept final override {
4892 simdutf_warn_unused bool validate_ascii(const char *, size_t) const noexcept final override {
4900 simdutf_warn_unused bool validate_utf16le(const char16_t*, size_t) const noexcept final override {
4904 simdutf_warn_unused bool validate_utf16be(const char16_t*, size_t) const noexcept final override {
4916 simdutf_warn_unused bool validate_utf32(const char32_t*, size_t) const noexcept final override {
5240 simdutf_warn_unused bool validate_utf8(const char *buf, size_t len) noexcept {
5246 simdutf_warn_unused bool validate_ascii(const char *buf, size_t len) noexcept {
5305 simdutf_warn_unused bool validate_utf16(const char16_t * buf, size_t len) noexcept {
5312 simdutf_warn_unused bool validate_utf16le(const char16_t * buf, size_t len) noexcept {
5315 simdutf_warn_unused bool validate_utf16be(const char16_t * buf, size_t len) noexcept {
5331 simdutf_warn_unused bool validate_utf32(const char32_t * buf, size_t len) noexcept {
5637 bool match_system(endianness e) {
10594 inline simdutf_warn_unused bool validate(const char *buf, size_t len) noexcept {
10653 inline simdutf_warn_unused bool validate(const char32_t *buf, size_t len) noexcept {
11669 bool found_leading_bytes{false};
11945 bool found_leading_bytes{false};
12241 bool found_leading_bytes{false};
12576 simdutf_really_inline bool is_ascii(const simd8x64<uint8_t>& input) {
12581 simdutf_unused simdutf_really_inline simd8<bool> must_be_continuation(const simd8<uint8_t> prev1, const simd8<uint8_t> prev2, const simd8<uint8_t> prev3) {
12582 simd8<bool> is_second_byte = prev1 >= uint8_t(0b11000000u);
12583 simd8<bool> is_third_byte = prev2 >= uint8_t(0b11100000u);
12584 simd8<bool> is_fourth_byte = prev3 >= uint8_t(0b11110000u);
12593 simdutf_really_inline simd8<bool> must_be_2_3_continuation(const simd8<uint8_t> prev2, const simd8<uint8_t> prev3) {
12594 simd8<bool> is_third_byte = prev2 >= uint8_t(0b11100000u);
12595 simd8<bool> is_fourth_byte = prev3 >= uint8_t(0b11110000u);
12680 bool is_utf8 = true;
12681 bool is_utf16 = true;
12682 bool is_utf32 = true;
15128 simdutf_really_inline bool has_full_block() const;
15185 simdutf_really_inline bool buf_block_reader<STEP_SIZE>::has_full_block() const {
15386 simdutf_really_inline bool errors() const {
15409 bool generic_validate_utf8(const uint8_t * input, size_t length) {
15426 bool generic_validate_utf8(const char * input, size_t length) {
15471 bool generic_validate_ascii(const uint8_t * input, size_t length) {
15487 bool generic_validate_ascii(const char * input, size_t length) {
15896 simdutf_really_inline bool errors() const {
16241 simdutf_really_inline bool errors() const {
16645 simdutf_really_inline bool errors() const {
16755 simdutf_warn_unused bool implementation::validate_utf8(const char *buf, size_t len) const noexcept {
16763 simdutf_warn_unused bool implementation::validate_ascii(const char *buf, size_t len) const noexcept {
16771 simdutf_warn_unused bool implementation::validate_utf16le(const char16_t *buf, size_t len) const noexcept {
16780 simdutf_warn_unused bool implementation::validate_utf16be(const char16_t *buf, size_t len) const noexcept {
16809 simdutf_warn_unused bool implementation::validate_utf32(const char32_t *buf, size_t len) const noexcept {
17462 simdutf_warn_unused bool implementation::validate_utf8(const char *buf, size_t len) const noexcept {
17470 simdutf_warn_unused bool implementation::validate_ascii(const char *buf, size_t len) const noexcept {
17478 simdutf_warn_unused bool implementation::validate_utf16le(const char16_t *buf, size_t len) const noexcept {
17482 simdutf_warn_unused bool implementation::validate_utf16be(const char16_t *buf, size_t len) const noexcept {
17494 simdutf_warn_unused bool implementation::validate_utf32(const char32_t *buf, size_t len) const noexcept {
17809 simdutf_really_inline bool process_block_utf8_to_utf16(const char *&in, char16_t *&out, size_t gap) {
18611 constexpr bool UTF32 = std::is_same<OUTPUT, uint32_t>::value;
18612 constexpr bool UTF16 = std::is_same<OUTPUT, char16_t>::value;
18836 simdutf_really_inline bool check_next_input(const __m512i input) {
18850 simdutf_really_inline bool errors() const {
18871 bool result = true;
18888 bool result = true;
18910 constexpr bool UTF32 = std::is_same<OUTPUT, uint32_t>::value;
18911 constexpr bool UTF16 = std::is_same<OUTPUT, char16_t>::value;
19032 std::tuple<const char*, OUTPUT*, bool> validating_utf8_to_fixed_length_with_constant_checks(const char* str, size_t len, OUTPUT* dwords) {
19033 constexpr bool UTF32 = std::is_same<OUTPUT, uint32_t>::value;
19034 constexpr bool UTF16 = std::is_same<OUTPUT, char16_t>::value;
19163 // template <bool is_remaining, bool use_masked_store>
19164 template <bool is_remaining>
19261 template <bool is_remaining>
19638 std::tuple<const char16_t*, char32_t*, bool> convert_utf16_to_utf32(const char16_t* buf, size_t len, char32_t* utf32_output) {
20437 bool validate_ascii(const char* buf, size_t len) {
20670 bool is_utf8 = true;
20671 bool is_utf16 = true;
20672 bool is_utf32 = true;
20704 bool ends_with_high = ((highsurrogates & 0x80000000) != 0);
20789 simdutf_warn_unused bool implementation::validate_utf8(const char *buf, size_t len) const noexcept {
20835 simdutf_warn_unused bool implementation::validate_ascii(const char *buf, size_t len) const noexcept {
20860 simdutf_warn_unused bool implementation::validate_utf16le(const char16_t *buf, size_t len) const noexcept {
20874 bool ends_with_high = ((highsurrogates & 0x80000000) != 0);
20900 simdutf_warn_unused bool implementation::validate_utf16be(const char16_t *buf, size_t len) const noexcept {
20923 bool ends_with_high = ((highsurrogates & 0x80000000) != 0);
20965 bool ends_with_high = ((highsurrogates & 0x80000000) != 0);
21019 bool ends_with_high = ((highsurrogates & 0x80000000) != 0);
21047 simdutf_warn_unused bool implementation::validate_utf32(const char32_t *buf, size_t len) const noexcept {
21519 std::tuple<const char16_t*, char32_t*, bool> ret = icelake::convert_utf16_to_utf32<endianness::LITTLE>(buf, len, utf32_output);
21532 std::tuple<const char16_t*, char32_t*, bool> ret = icelake::convert_utf16_to_utf32<endianness::BIG>(buf, len, utf32_output);
21545 std::tuple<const char16_t*, char32_t*, bool> ret = icelake::convert_utf16_to_utf32<endianness::LITTLE>(buf, len, utf32_output);
21568 std::tuple<const char16_t*, char32_t*, bool> ret = icelake::convert_utf16_to_utf32<endianness::BIG>(buf, len, utf32_output);
21591 std::tuple<const char16_t*, char32_t*, bool> ret = icelake::convert_utf16_to_utf32<endianness::LITTLE>(buf, len, utf32_output);
21604 std::tuple<const char16_t*, char32_t*, bool> ret = icelake::convert_utf16_to_utf32<endianness::BIG>(buf, len, utf32_output);
22018 simdutf_really_inline bool is_ascii(const simd8x64<uint8_t>& input) {
22022 simdutf_unused simdutf_really_inline simd8<bool> must_be_continuation(const simd8<uint8_t> prev1, const simd8<uint8_t> prev2, const simd8<uint8_t> prev3) {
22026 // Caller requires a bool (all 1's). All values resulting from the subtraction will be <= 64, so signed comparison is fine.
22030 simdutf_really_inline simd8<bool> must_be_2_3_continuation(const simd8<uint8_t> prev2, const simd8<uint8_t> prev3) {
22033 // Caller requires a bool (all 1's). All values resulting from the subtraction will be <= 64, so signed comparison is fine.
22044 bool is_utf8 = true;
22045 bool is_utf16 = true;
22046 bool is_utf32 = true;
24539 simdutf_really_inline bool has_full_block() const;
24596 simdutf_really_inline bool buf_block_reader<STEP_SIZE>::has_full_block() const {
24797 simdutf_really_inline bool errors() const {
24820 bool generic_validate_utf8(const uint8_t * input, size_t length) {
24837 bool generic_validate_utf8(const char * input, size_t length) {
24882 bool generic_validate_ascii(const uint8_t * input, size_t length) {
24898 bool generic_validate_ascii(const char * input, size_t length) {
25307 simdutf_really_inline bool errors() const {
25652 simdutf_really_inline bool errors() const {
26058 simdutf_really_inline bool errors() const {
26163 simdutf_warn_unused bool implementation::validate_utf8(const char *buf, size_t len) const noexcept {
26171 simdutf_warn_unused bool implementation::validate_ascii(const char *buf, size_t len) const noexcept {
26179 simdutf_warn_unused bool implementation::validate_utf16le(const char16_t *buf, size_t len) const noexcept {
26188 simdutf_warn_unused bool implementation::validate_utf16be(const char16_t *buf, size_t len) const noexcept {
26217 simdutf_warn_unused bool implementation::validate_utf32(const char32_t *buf, size_t len) const noexcept {
26876 simdutf_really_inline bool is_ascii(const simd8x64<uint8_t>& input) {
26881 simdutf_unused simdutf_really_inline simd8<bool> must_be_continuation(const simd8<uint8_t> prev1, const simd8<uint8_t> prev2, const simd8<uint8_t> prev3) {
26885 // Caller requires a bool (all 1's). All values resulting from the subtraction will be <= 64, so signed comparison is fine.
26889 simdutf_really_inline simd8<bool> must_be_2_3_continuation(const simd8<uint8_t> prev2, const simd8<uint8_t> prev3) {
26892 // Caller requires a bool (all 1's). All values resulting from the subtraction will be <= 64, so signed comparison is fine.
26911 simdutf_really_inline bool has_full_block() const;
26968 simdutf_really_inline bool buf_block_reader<STEP_SIZE>::has_full_block() const {
27169 simdutf_really_inline bool errors() const {
27192 bool generic_validate_utf8(const uint8_t * input, size_t length) {
27209 bool generic_validate_utf8(const char * input, size_t length) {
27254 bool generic_validate_ascii(const uint8_t * input, size_t length) {
27270 bool generic_validate_ascii(const char * input, size_t length) {
27679 simdutf_really_inline bool errors() const {
28024 simdutf_really_inline bool errors() const {
28162 simdutf_warn_unused bool implementation::validate_utf8(const char *buf, size_t len) const noexcept {
28170 simdutf_warn_unused bool implementation::validate_ascii(const char *buf, size_t len) const noexcept {
28178 simdutf_warn_unused bool implementation::validate_utf16le(const char16_t *buf, size_t len) const noexcept {
28182 simdutf_warn_unused bool implementation::validate_utf16be(const char16_t *buf, size_t len) const noexcept {
28198 simdutf_warn_unused bool implementation::validate_utf32(const char16_t *buf, size_t len) const noexcept {
28397 simdutf_really_inline bool is_ascii(const simd8x64<uint8_t>& input) {
28401 simdutf_unused simdutf_really_inline simd8<bool> must_be_continuation(const simd8<uint8_t> prev1, const simd8<uint8_t> prev2, const simd8<uint8_t> prev3) {
28405 // Caller requires a bool (all 1's). All values resulting from the subtraction will be <= 64, so signed comparison is fine.
28409 simdutf_really_inline simd8<bool> must_be_2_3_continuation(const simd8<uint8_t> prev2, const simd8<uint8_t> prev3) {
28412 // Caller requires a bool (all 1's). All values resulting from the subtraction will be <= 64, so signed comparison is fine.
28501 bool is_utf8 = true;
28502 bool is_utf16 = true;
28503 bool is_utf32 = true;
30918 simdutf_really_inline bool has_full_block() const;
30975 simdutf_really_inline bool buf_block_reader<STEP_SIZE>::has_full_block() const {
31176 simdutf_really_inline bool errors() const {
31199 bool generic_validate_utf8(const uint8_t * input, size_t length) {
31216 bool generic_validate_utf8(const char * input, size_t length) {
31261 bool generic_validate_ascii(const uint8_t * input, size_t length) {
31277 bool generic_validate_ascii(const char * input, size_t length) {
31686 simdutf_really_inline bool errors() const {
32031 simdutf_really_inline bool errors() const {
32435 simdutf_really_inline bool errors() const {
32545 simdutf_warn_unused bool implementation::validate_utf8(const char *buf, size_t len) const noexcept {
32553 simdutf_warn_unused bool implementation::validate_ascii(const char *buf, size_t len) const noexcept {
32561 simdutf_warn_unused bool implementation::validate_utf16le(const char16_t *buf, size_t len) const noexcept {
32570 simdutf_warn_unused bool implementation::validate_utf16be(const char16_t *buf, size_t len) const noexcept {
32599 simdutf_warn_unused bool implementation::validate_utf32(const char32_t *buf, size_t len) const noexcept {