Lines Matching defs:simd8
296 struct simd8<bool>: base_u8<bool> { struct
297 typedef uint16_t bitmask_t;
298 typedef uint32_t bitmask2_t;
300 …c simdutf_really_inline simd8<bool> splat(bool _value) { return vmovq_n_u8(uint8_t(-(!!_value))); } in splat()
302 simdutf_really_inline simd8(const uint8x16_t _value) : base_u8<bool>(_value) {} in simd8() argument
304 simdutf_really_inline simd8() : simd8(vdupq_n_u8(0)) {} in simd8() argument
306 simdutf_really_inline simd8(bool _value) : simd8(splat(_value)) {} in simd8() function
307 simdutf_really_inline void store(uint8_t dst[16]) const { return vst1q_u8(dst, *this); } in store()
311 simdutf_really_inline uint32_t to_bitmask() const { in to_bitmask()
331 simdutf_really_inline uint64_t to_bitmask64() const { in to_bitmask64()
335 simdutf_really_inline bool any() const { return vmaxvq_u8(*this) != 0; } in any()
336 simdutf_really_inline bool none() const { return vmaxvq_u8(*this) == 0; } in none()
337 simdutf_really_inline bool all() const { return vminvq_u8(*this) == 0xFF; } in all()
344 struct simd8<uint8_t>: base_u8<uint8_t> { struct
345 static simdutf_really_inline simd8<uint8_t> splat(uint8_t _value) { return vmovq_n_u8(_value); } in splat()
346 static simdutf_really_inline simd8<uint8_t> zero() { return vdupq_n_u8(0); } in zero()
347 …tatic simdutf_really_inline simd8<uint8_t> load(const uint8_t* values) { return vld1q_u8(values); } in load()
348 simdutf_really_inline simd8(const uint8x16_t _value) : base_u8<uint8_t>(_value) {} in simd8() function
350 simdutf_really_inline simd8() : simd8(zero()) {} in simd8() argument
352 simdutf_really_inline simd8(const uint8_t values[16]) : simd8(load(values)) {} in simd8() function
354 simdutf_really_inline simd8(uint8_t _value) : simd8(splat(_value)) {} in simd8() argument
357 simdutf_really_inline simd8( in simd8() function
365 simdutf_really_inline simd8( in simd8() function
375 simdutf_really_inline static simd8<uint8_t> repeat_16( in repeat_16()
386 simdutf_really_inline void store(uint8_t dst[16]) const { return vst1q_u8(dst, *this); } in store()
389 …simd8<uint8_t> saturating_add(const simd8<uint8_t> other) const { return vqaddq_u8(*this, other); } in saturating_add()
390 …simd8<uint8_t> saturating_sub(const simd8<uint8_t> other) const { return vqsubq_u8(*this, other); } in saturating_sub()
393 …nline simd8<uint8_t> operator+(const simd8<uint8_t> other) const { return vaddq_u8(*this, other); } in operator +()
394 …nline simd8<uint8_t> operator-(const simd8<uint8_t> other) const { return vsubq_u8(*this, other); } in operator -()
395 …ine simd8<uint8_t>& operator+=(const simd8<uint8_t> other) { *this = *this + other; return *this; } in operator +=()
396 …ine simd8<uint8_t>& operator-=(const simd8<uint8_t> other) { *this = *this - other; return *this; } in operator -=()
399 simdutf_really_inline uint8_t max_val() const { return vmaxvq_u8(*this); } in max_val()
400 simdutf_really_inline uint8_t min_val() const { return vminvq_u8(*this); } in min_val()
401 …_inline simd8<uint8_t> max_val(const simd8<uint8_t> other) const { return vmaxq_u8(*this, other); } in max_val()
402 …_inline simd8<uint8_t> min_val(const simd8<uint8_t> other) const { return vminq_u8(*this, other); } in min_val()
403 …_inline simd8<bool> operator<=(const simd8<uint8_t> other) const { return vcleq_u8(*this, other); } in operator <=()
404 …_inline simd8<bool> operator>=(const simd8<uint8_t> other) const { return vcgeq_u8(*this, other); } in operator >=()
405 …y_inline simd8<bool> operator<(const simd8<uint8_t> other) const { return vcltq_u8(*this, other); } in operator <()
406 …y_inline simd8<bool> operator>(const simd8<uint8_t> other) const { return vcgtq_u8(*this, other); } in operator >()
408 … simd8<uint8_t> gt_bits(const simd8<uint8_t> other) const { return simd8<uint8_t>(*this > other); } in gt_bits()
410 … simd8<uint8_t> lt_bits(const simd8<uint8_t> other) const { return simd8<uint8_t>(*this < other); } in lt_bits()
413 …really_inline simd8<bool> any_bits_set(simd8<uint8_t> bits) const { return vtstq_u8(*this, bits); } in any_bits_set()
414 simdutf_really_inline bool is_ascii() const { return this->max_val() < 0b10000000u; } in is_ascii()
416 simdutf_really_inline bool any_bits_set_anywhere() const { return this->max_val() != 0; } in any_bits_set_anywhere()
417 …any_bits_set_anywhere(simd8<uint8_t> bits) const { return (*this & bits).any_bits_set_anywhere(); } in any_bits_set_anywhere()
419 simdutf_really_inline simd8<uint8_t> shr() const { return vshrq_n_u8(*this, N); } in shr()
421 simdutf_really_inline simd8<uint8_t> shl() const { return vshlq_n_u8(*this, N); } in shl()
425 simdutf_really_inline simd8<L> lookup_16(simd8<L> lookup_table) const { in lookup_16()
431 simdutf_really_inline simd8<L> lookup_16( in lookup_16()
445 simdutf_really_inline simd8<uint8_t> apply_lookup_16_to(const simd8<T> original) const { in apply_lookup_16_to()
452 struct simd8<int8_t> { struct
453 int8x16_t value;
455 static simdutf_really_inline simd8<int8_t> splat(int8_t _value) { return vmovq_n_s8(_value); } in splat()
456 static simdutf_really_inline simd8<int8_t> zero() { return vdupq_n_s8(0); } in zero()
457 …atic simdutf_really_inline simd8<int8_t> load(const int8_t values[16]) { return vld1q_s8(values); } in load()
471 simdutf_really_inline void store_ascii_as_utf16(char16_t * p) const { in store_ascii_as_utf16()
486 simdutf_really_inline void store_ascii_as_utf32(char32_t * p) const { in store_ascii_as_utf32()
497 simdutf_really_inline void store_ascii_as_utf32_tbl(char32_t * p) const { in store_ascii_as_utf32_tbl()
515 simdutf_really_inline simd8(const int8x16_t _value) : value{_value} {} in simd8() argument
516 simdutf_really_inline operator const int8x16_t&() const { return this->value; } in operator const int8x16_t&()
518 …imdutf_really_inline operator const uint8x16_t() const { return vreinterpretq_u8_s8(this->value); } in operator const uint8x16_t()
520 simdutf_really_inline operator int8x16_t&() { return this->value; } in operator int8x16_t&()
523 simdutf_really_inline simd8() : simd8(zero()) {} in simd8() argument
525 simdutf_really_inline simd8(int8_t _value) : simd8(splat(_value)) {} in simd8() argument
527 simdutf_really_inline simd8(const int8_t* values) : simd8(load(values)) {} in simd8() function
530 simdutf_really_inline simd8( in simd8() function
538 simdutf_really_inline simd8( in simd8() function
547 simdutf_really_inline static simd8<int8_t> repeat_16( in repeat_16()
558 simdutf_really_inline void store(int8_t dst[16]) const { return vst1q_s8(dst, value); } in store()
565 … simdutf_really_inline explicit simd8(const uint8x16_t other): simd8(vreinterpretq_s8_u8(other)) {} in simd8() argument
567 … simdutf_really_inline operator simd8<uint8_t>() const { return vreinterpretq_u8_s8(this->value); } in operator simd8<uint8_t>()
569 …e simd8<int8_t> operator|(const simd8<int8_t> other) const { return vorrq_s8(value, other.value); } in operator |()
570 …e simd8<int8_t> operator&(const simd8<int8_t> other) const { return vandq_s8(value, other.value); } in operator &()
571 …e simd8<int8_t> operator^(const simd8<int8_t> other) const { return veorq_s8(value, other.value); } in operator ^()
572 … simd8<int8_t> bit_andnot(const simd8<int8_t> other) const { return vbicq_s8(value, other.value); } in bit_andnot()
575 …e simd8<int8_t> operator+(const simd8<int8_t> other) const { return vaddq_s8(value, other.value); } in operator +()
576 …e simd8<int8_t> operator-(const simd8<int8_t> other) const { return vsubq_s8(value, other.value); } in operator -()
577 …nline simd8<int8_t>& operator+=(const simd8<int8_t> other) { *this = *this + other; return *this; } in operator +=()
578 …nline simd8<int8_t>& operator-=(const simd8<int8_t> other) { *this = *this - other; return *this; } in operator -=()
580 simdutf_really_inline int8_t max_val() const { return vmaxvq_s8(value); } in max_val()
581 simdutf_really_inline int8_t min_val() const { return vminvq_s8(value); } in min_val()
582 simdutf_really_inline bool is_ascii() const { return this->min_val() >= 0; } in is_ascii()
585 …ine simd8<int8_t> max_val(const simd8<int8_t> other) const { return vmaxq_s8(value, other.value); } in max_val()
586 …ine simd8<int8_t> min_val(const simd8<int8_t> other) const { return vminq_s8(value, other.value); } in min_val()
587 …ine simd8<bool> operator>(const simd8<int8_t> other) const { return vcgtq_s8(value, other.value); } in operator >()
588 …ine simd8<bool> operator<(const simd8<int8_t> other) const { return vcltq_s8(value, other.value); } in operator <()
589 …ne simd8<bool> operator==(const simd8<int8_t> other) const { return vceqq_s8(value, other.value); } in operator ==()
592 simdutf_really_inline simd8<int8_t> prev(const simd8<int8_t> prev_chunk) const { in prev()
598 simdutf_really_inline simd8<L> lookup_16(simd8<L> lookup_table) const { in lookup_16()
602 simdutf_really_inline simd8<L> lookup_16( in lookup_16()
616 simdutf_really_inline simd8<int8_t> apply_lookup_16_to(const simd8<T> original) const { in apply_lookup_16_to()
1742 struct simd8<bool>: base8<bool> { struct
1743 …utf_really_inline simd8<bool> splat(bool _value) { return _mm256_set1_epi8(uint8_t(-(!!_value))); } in splat()
1745 simdutf_really_inline simd8<bool>() : base8() {} in simd8() function
1746 simdutf_really_inline simd8<bool>(const __m256i _value) : base8<bool>(_value) {} in simd8() function
1748 simdutf_really_inline simd8<bool>(bool _value) : base8<bool>(splat(_value)) {} in simd8() function
1750 …simdutf_really_inline uint32_t to_bitmask() const { return uint32_t(_mm256_movemask_epi8(*this)); } in to_bitmask()
1751 simdutf_really_inline bool any() const { return !_mm256_testz_si256(*this, *this); } in any()
1752 simdutf_really_inline bool none() const { return _mm256_testz_si256(*this, *this); } in none()
1753 …nline bool all() const { return static_cast<uint32_t>(_mm256_movemask_epi8(*this)) == 0xFFFFFFFF; } in all()
1754 simdutf_really_inline simd8<bool> operator~() const { return *this ^ true; } in operator ~()
1816 struct simd8<int8_t> : base8_numeric<int8_t> { struct
1817 simdutf_really_inline simd8() : base8_numeric<int8_t>() {} in simd8() function
1818 simdutf_really_inline simd8(const __m256i _value) : base8_numeric<int8_t>(_value) {} in simd8() function
1821 simdutf_really_inline simd8(int8_t _value) : simd8(splat(_value)) {} in simd8() argument
1823 simdutf_really_inline simd8(const int8_t values[32]) : simd8(load(values)) {} in simd8() function
1826 simdutf_really_inline simd8( in simd8() function
1838 simdutf_really_inline static simd8<int8_t> repeat_16( in repeat_16()
1849 simdutf_really_inline bool is_ascii() const { return _mm256_movemask_epi8(*this) == 0; } in is_ascii()
1851 …ne simd8<int8_t> max_val(const simd8<int8_t> other) const { return _mm256_max_epi8(*this, other); } in max_val()
1852 …ne simd8<int8_t> min_val(const simd8<int8_t> other) const { return _mm256_min_epi8(*this, other); } in min_val()
1853 … simd8<bool> operator>(const simd8<int8_t> other) const { return _mm256_cmpgt_epi8(*this, other); } in operator >()
1854 … simd8<bool> operator<(const simd8<int8_t> other) const { return _mm256_cmpgt_epi8(other, *this); } in operator <()
1859 struct simd8<uint8_t>: base8_numeric<uint8_t> { struct
1860 simdutf_really_inline simd8() : base8_numeric<uint8_t>() {} in simd8() function
1861 simdutf_really_inline simd8(const __m256i _value) : base8_numeric<uint8_t>(_value) {} in simd8() function
1863 simdutf_really_inline simd8(uint8_t _value) : simd8(splat(_value)) {} in simd8() function
1865 simdutf_really_inline simd8(const uint8_t values[32]) : simd8(load(values)) {} in simd8() argument
1867 simdutf_really_inline simd8( in simd8() argument
1879 simdutf_really_inline static simd8<uint8_t> repeat_16( in repeat_16()
1893 …int8_t> saturating_add(const simd8<uint8_t> other) const { return _mm256_adds_epu8(*this, other); } in saturating_add()
1894 …int8_t> saturating_sub(const simd8<uint8_t> other) const { return _mm256_subs_epu8(*this, other); } in saturating_sub()
1897 … simd8<uint8_t> max_val(const simd8<uint8_t> other) const { return _mm256_max_epu8(*this, other); } in max_val()
1898 … simd8<uint8_t> min_val(const simd8<uint8_t> other) const { return _mm256_min_epu8(other, *this); } in min_val()
1900 …ne simd8<uint8_t> gt_bits(const simd8<uint8_t> other) const { return this->saturating_sub(other); } in gt_bits()
1902 …ne simd8<uint8_t> lt_bits(const simd8<uint8_t> other) const { return other.saturating_sub(*this); } in lt_bits()
1903 … simd8<bool> operator<=(const simd8<uint8_t> other) const { return other.max_val(*this) == other; } in operator <=()
1904 … simd8<bool> operator>=(const simd8<uint8_t> other) const { return other.min_val(*this) == other; } in operator >=()
1905 …8<bool> operator>(const simd8<uint8_t> other) const { return this->gt_bits(other).any_bits_set(); } in operator >()
1906 …8<bool> operator<(const simd8<uint8_t> other) const { return this->lt_bits(other).any_bits_set(); } in operator <()
1909 simdutf_really_inline simd8<bool> bits_not_set() const { return *this == uint8_t(0); } in bits_not_set()
1910 …nline simd8<bool> bits_not_set(simd8<uint8_t> bits) const { return (*this & bits).bits_not_set(); } in bits_not_set()
1911 simdutf_really_inline simd8<bool> any_bits_set() const { return ~this->bits_not_set(); } in any_bits_set()
1912 …ly_inline simd8<bool> any_bits_set(simd8<uint8_t> bits) const { return ~this->bits_not_set(bits); } in any_bits_set()
1913 simdutf_really_inline bool is_ascii() const { return _mm256_movemask_epi8(*this) == 0; } in is_ascii()
1914 …mdutf_really_inline bool bits_not_set_anywhere() const { return _mm256_testz_si256(*this, *this); } in bits_not_set_anywhere()
1915 simdutf_really_inline bool any_bits_set_anywhere() const { return !bits_not_set_anywhere(); } in any_bits_set_anywhere()
1916 …e bool bits_not_set_anywhere(simd8<uint8_t> bits) const { return _mm256_testz_si256(*this, bits); } in bits_not_set_anywhere()
1917 …line bool any_bits_set_anywhere(simd8<uint8_t> bits) const { return !bits_not_set_anywhere(bits); } in any_bits_set_anywhere()
1919 …<uint8_t> shr() const { return simd8<uint8_t>(_mm256_srli_epi16(*this, N)) & uint8_t(0xFFu >> N); } in shr()
1921 …<uint8_t> shl() const { return simd8<uint8_t>(_mm256_slli_epi16(*this, N)) & uint8_t(0xFFu << N); } in shl()
1925 …f_really_inline int get_bit() const { return _mm256_movemask_epi8(_mm256_slli_epi16(*this, 7-N)); } in get_bit()
2648 struct simd8<bool>: base8<bool> { struct
2649 …imdutf_really_inline simd8<bool> splat(bool _value) { return _mm_set1_epi8(uint8_t(-(!!_value))); } in splat()
2651 simdutf_really_inline simd8<bool>() : base8() {} in simd8() argument
2652 simdutf_really_inline simd8<bool>(const __m128i _value) : base8<bool>(_value) {} in simd8() function
2654 simdutf_really_inline simd8<bool>(bool _value) : base8<bool>(splat(_value)) {} in simd8() function
2656 simdutf_really_inline int to_bitmask() const { return _mm_movemask_epi8(*this); } in to_bitmask()
2657 simdutf_really_inline bool any() const { return !_mm_testz_si128(*this, *this); } in any()
2658 simdutf_really_inline bool none() const { return _mm_testz_si128(*this, *this); } in none()
2659 simdutf_really_inline bool all() const { return _mm_movemask_epi8(*this) == 0xFFFF; } in all()
2660 simdutf_really_inline simd8<bool> operator~() const { return *this ^ true; } in operator ~()
2719 struct simd8<int8_t> : base8_numeric<int8_t> { struct
2720 simdutf_really_inline simd8() : base8_numeric<int8_t>() {} in simd8() function
2721 simdutf_really_inline simd8(const __m128i _value) : base8_numeric<int8_t>(_value) {} in simd8() function
2723 simdutf_really_inline simd8(int8_t _value) : simd8(splat(_value)) {} in simd8() argument
2725 simdutf_really_inline simd8(const int8_t* values) : simd8(load(values)) {} in simd8() argument
2727 simdutf_really_inline simd8( in simd8() function
2735 simdutf_really_inline static simd8<int8_t> repeat_16( in repeat_16()
2745 simdutf_really_inline bool is_ascii() const { return _mm_movemask_epi8(*this) == 0; } in is_ascii()
2748 …nline simd8<int8_t> max_val(const simd8<int8_t> other) const { return _mm_max_epi8(*this, other); } in max_val()
2749 …nline simd8<int8_t> min_val(const simd8<int8_t> other) const { return _mm_min_epi8(*this, other); } in min_val()
2750 …ine simd8<bool> operator>(const simd8<int8_t> other) const { return _mm_cmpgt_epi8(*this, other); } in operator >()
2751 …ine simd8<bool> operator<(const simd8<int8_t> other) const { return _mm_cmpgt_epi8(other, *this); } in operator <()
2756 struct simd8<uint8_t>: base8_numeric<uint8_t> { struct
2757 simdutf_really_inline simd8() : base8_numeric<uint8_t>() {} in simd8() function
2758 simdutf_really_inline simd8(const __m128i _value) : base8_numeric<uint8_t>(_value) {} in simd8() argument
2761 simdutf_really_inline simd8(uint8_t _value) : simd8(splat(_value)) {} in simd8() function
2763 simdutf_really_inline simd8(const uint8_t* values) : simd8(load(values)) {} in simd8() argument
2765 simdutf_really_inline simd8( in simd8() argument
2773 simdutf_really_inline static simd8<uint8_t> repeat_16( in repeat_16()
2784 …8<uint8_t> saturating_add(const simd8<uint8_t> other) const { return _mm_adds_epu8(*this, other); } in saturating_add()
2785 …8<uint8_t> saturating_sub(const simd8<uint8_t> other) const { return _mm_subs_epu8(*this, other); } in saturating_sub()
2788 …ine simd8<uint8_t> max_val(const simd8<uint8_t> other) const { return _mm_max_epu8(*this, other); } in max_val()
2789 …ine simd8<uint8_t> min_val(const simd8<uint8_t> other) const { return _mm_min_epu8(*this, other); } in min_val()
2791 …ne simd8<uint8_t> gt_bits(const simd8<uint8_t> other) const { return this->saturating_sub(other); } in gt_bits()
2793 …ne simd8<uint8_t> lt_bits(const simd8<uint8_t> other) const { return other.saturating_sub(*this); } in lt_bits()
2794 … simd8<bool> operator<=(const simd8<uint8_t> other) const { return other.max_val(*this) == other; } in operator <=()
2795 … simd8<bool> operator>=(const simd8<uint8_t> other) const { return other.min_val(*this) == other; } in operator >=()
2796 …8<bool> operator>(const simd8<uint8_t> other) const { return this->gt_bits(other).any_bits_set(); } in operator >()
2797 …8<bool> operator<(const simd8<uint8_t> other) const { return this->gt_bits(other).any_bits_set(); } in operator <()
2800 simdutf_really_inline simd8<bool> bits_not_set() const { return *this == uint8_t(0); } in bits_not_set()
2801 …nline simd8<bool> bits_not_set(simd8<uint8_t> bits) const { return (*this & bits).bits_not_set(); } in bits_not_set()
2802 simdutf_really_inline simd8<bool> any_bits_set() const { return ~this->bits_not_set(); } in any_bits_set()
2803 …ly_inline simd8<bool> any_bits_set(simd8<uint8_t> bits) const { return ~this->bits_not_set(bits); } in any_bits_set()
2804 simdutf_really_inline bool is_ascii() const { return _mm_movemask_epi8(*this) == 0; } in is_ascii()
2806 … simdutf_really_inline bool bits_not_set_anywhere() const { return _mm_testz_si128(*this, *this); } in bits_not_set_anywhere()
2807 simdutf_really_inline bool any_bits_set_anywhere() const { return !bits_not_set_anywhere(); } in any_bits_set_anywhere()
2808 …line bool bits_not_set_anywhere(simd8<uint8_t> bits) const { return _mm_testz_si128(*this, bits); } in bits_not_set_anywhere()
2809 …line bool any_bits_set_anywhere(simd8<uint8_t> bits) const { return !bits_not_set_anywhere(bits); } in any_bits_set_anywhere()
2811 …md8<uint8_t> shr() const { return simd8<uint8_t>(_mm_srli_epi16(*this, N)) & uint8_t(0xFFu >> N); } in shr()
2813 …md8<uint8_t> shl() const { return simd8<uint8_t>(_mm_slli_epi16(*this, N)) & uint8_t(0xFFu << N); } in shl()
2817 …simdutf_really_inline int get_bit() const { return _mm_movemask_epi8(_mm_slli_epi16(*this, 7-N)); } in get_bit()
2823 struct simd8<uint16_t>: base<uint16_t> { struct
2824 …tic simdutf_really_inline simd8<uint16_t> splat(uint16_t _value) { return _mm_set1_epi16(_value); } in splat()
2825 static simdutf_really_inline simd8<uint16_t> load(const uint16_t values[8]) { in load()
2829 simdutf_really_inline simd8() : base<uint16_t>() {} in simd8() function
2830 simdutf_really_inline simd8(const __m128i _value) : base<uint16_t>(_value) {} in simd8() argument
2832 simdutf_really_inline simd8(uint16_t _value) : simd8(splat(_value)) {} in simd8() argument
2834 simdutf_really_inline simd8(const uint16_t* values) : simd8(load(values)) {} in simd8() argument
2836 simdutf_really_inline simd8( in simd8() function
2843 …int16_t> saturating_add(const simd8<uint16_t> other) const { return _mm_adds_epu16(*this, other); } in saturating_add()
2844 …int16_t> saturating_sub(const simd8<uint16_t> other) const { return _mm_subs_epu16(*this, other); } in saturating_sub()
2847 … simd8<uint16_t> max_val(const simd8<uint16_t> other) const { return _mm_max_epu16(*this, other); } in max_val()
2848 … simd8<uint16_t> min_val(const simd8<uint16_t> other) const { return _mm_min_epu16(*this, other); } in min_val()
2850 … simd8<uint16_t> gt_bits(const simd8<uint16_t> other) const { return this->saturating_sub(other); } in gt_bits()
2852 … simd8<uint16_t> lt_bits(const simd8<uint16_t> other) const { return other.saturating_sub(*this); } in lt_bits()
2853 …simd8<bool> operator<=(const simd8<uint16_t> other) const { return other.max_val(*this) == other; } in operator <=()
2854 …simd8<bool> operator>=(const simd8<uint16_t> other) const { return other.min_val(*this) == other; } in operator >=()
2855 …simd8<bool> operator==(const simd8<uint16_t> other) const { return _mm_cmpeq_epi16(*this, other); } in operator ==()
2856 …ne simd8<bool> operator&(const simd8<uint16_t> other) const { return _mm_and_si128(*this, other); } in operator &()
2857 …ine simd8<bool> operator|(const simd8<uint16_t> other) const { return _mm_or_si128(*this, other); } in operator |()
2860 simdutf_really_inline simd8<bool> bits_not_set() const { return *this == uint16_t(0); } in bits_not_set()
2861 simdutf_really_inline simd8<bool> any_bits_set() const { return ~this->bits_not_set(); } in any_bits_set()
2863 … simdutf_really_inline bool bits_not_set_anywhere() const { return _mm_testz_si128(*this, *this); } in bits_not_set_anywhere()
2864 simdutf_really_inline bool any_bits_set_anywhere() const { return !bits_not_set_anywhere(); } in any_bits_set_anywhere()
2865 …ine bool bits_not_set_anywhere(simd8<uint16_t> bits) const { return _mm_testz_si128(*this, bits); } in bits_not_set_anywhere()
2866 …ine bool any_bits_set_anywhere(simd8<uint16_t> bits) const { return !bits_not_set_anywhere(bits); } in any_bits_set_anywhere()
3550 template <> struct simd8<bool> : base8<bool> { struct
3551 static simdutf_really_inline simd8<bool> splat(bool _value) { in splat()
3555 simdutf_really_inline simd8<bool>() : base8() {} in simd8() function
3556 simdutf_really_inline simd8<bool>(const __m128i _value) in simd8() argument
3559 simdutf_really_inline simd8<bool>(bool _value) in simd8() function
3562 simdutf_really_inline int to_bitmask() const { in to_bitmask()
3575 simdutf_really_inline bool any() const { in any()
3578 simdutf_really_inline simd8<bool> operator~() const { in operator ~()
3650 template <> struct simd8<int8_t> : base8_numeric<int8_t> { struct
3651 simdutf_really_inline simd8() : base8_numeric<int8_t>() {} in simd8() function
3652 simdutf_really_inline simd8(const __m128i _value) in simd8() argument
3656 simdutf_really_inline simd8(int8_t _value) : simd8(splat(_value)) {} in simd8() argument
3658 simdutf_really_inline simd8(const int8_t *values) : simd8(load(values)) {} in simd8() function
3660 simdutf_really_inline simd8(int8_t v0, int8_t v1, int8_t v2, int8_t v3, in simd8() function
3669 repeat_16(int8_t v0, int8_t v1, int8_t v2, int8_t v3, int8_t v4, int8_t v5, in repeat_16()
3678 max_val(const simd8<int8_t> other) const { in max_val()
3683 min_val(const simd8<int8_t> other) const { in min_val()
3688 operator>(const simd8<int8_t> other) const { in operator >()
3693 operator<(const simd8<int8_t> other) const { in operator <()
3700 template <> struct simd8<uint8_t> : base8_numeric<uint8_t> { struct
3701 simdutf_really_inline simd8() : base8_numeric<uint8_t>() {} in simd8() argument
3702 simdutf_really_inline simd8(const __m128i _value) in simd8() function
3705 simdutf_really_inline simd8(uint8_t _value) : simd8(splat(_value)) {} in simd8() argument
3707 simdutf_really_inline simd8(const uint8_t *values) : simd8(load(values)) {} in simd8() argument
3710 simd8(uint8_t v0, uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4, uint8_t v5, in simd8() function
3717 repeat_16(uint8_t v0, uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4, in repeat_16()
3727 saturating_add(const simd8<uint8_t> other) const { in saturating_add()
3731 saturating_sub(const simd8<uint8_t> other) const { in saturating_sub()
3737 max_val(const simd8<uint8_t> other) const { in max_val()
3741 min_val(const simd8<uint8_t> other) const { in min_val()
3746 gt_bits(const simd8<uint8_t> other) const { in gt_bits()
3751 lt_bits(const simd8<uint8_t> other) const { in lt_bits()
3755 operator<=(const simd8<uint8_t> other) const { in operator <=()
3759 operator>=(const simd8<uint8_t> other) const { in operator >=()
3763 operator>(const simd8<uint8_t> other) const { in operator >()
3767 operator<(const simd8<uint8_t> other) const { in operator <()
3772 simdutf_really_inline simd8<bool> bits_not_set() const { in bits_not_set()
3775 simdutf_really_inline simd8<bool> bits_not_set(simd8<uint8_t> bits) const { in bits_not_set()
3778 simdutf_really_inline simd8<bool> any_bits_set() const { in any_bits_set()
3781 simdutf_really_inline simd8<bool> any_bits_set(simd8<uint8_t> bits) const { in any_bits_set()
3785 simdutf_really_inline bool is_ascii() const { in is_ascii()
3789 simdutf_really_inline bool bits_not_set_anywhere() const { in bits_not_set_anywhere()
3792 simdutf_really_inline bool any_bits_set_anywhere() const { in any_bits_set_anywhere()
3795 simdutf_really_inline bool bits_not_set_anywhere(simd8<uint8_t> bits) const { in bits_not_set_anywhere()
3799 simdutf_really_inline bool any_bits_set_anywhere(simd8<uint8_t> bits) const { in any_bits_set_anywhere()
3802 template <int N> simdutf_really_inline simd8<uint8_t> shr() const { in shr()
3806 template <int N> simdutf_really_inline simd8<uint8_t> shl() const { in shl()