25#ifndef _GLIBCXX_SIMD_MASK_REDUCTIONS_H
26#define _GLIBCXX_SIMD_MASK_REDUCTIONS_H 1
29#pragma GCC system_header
32#if __cplusplus >= 202400L
37#pragma GCC diagnostic push
38#pragma GCC diagnostic ignored "-Wpsabi"
41namespace std _GLIBCXX_VISIBILITY(default)
43_GLIBCXX_BEGIN_NAMESPACE_VERSION
46 template <
size_t _Bytes,
typename _Ap>
47 [[__gnu__::__always_inline__]]
49 all_of(
const basic_mask<_Bytes, _Ap>& __k)
noexcept
50 {
return __k._M_all_of(); }
52 template <
size_t _Bytes,
typename _Ap>
53 [[__gnu__::__always_inline__]]
55 any_of(
const basic_mask<_Bytes, _Ap>& __k)
noexcept
56 {
return __k._M_any_of(); }
58 template <
size_t _Bytes,
typename _Ap>
59 [[__gnu__::__always_inline__]]
61 none_of(
const basic_mask<_Bytes, _Ap>& __k)
noexcept
62 {
return __k._M_none_of(); }
64 template <
size_t _Bytes,
typename _Ap>
65 [[__gnu__::__always_inline__]]
66 constexpr __simd_size_type
67 reduce_count(
const basic_mask<_Bytes, _Ap>& __k)
noexcept
69 if constexpr (_Ap::_S_size == 1)
71 else if constexpr (_Ap::_S_is_vecmask)
74 return __k._M_reduce_count();
77 template <
size_t _Bytes,
typename _Ap>
78 [[__gnu__::__always_inline__]]
79 constexpr __simd_size_type
80 reduce_min_index(
const basic_mask<_Bytes, _Ap>& __k)
81 {
return __k._M_reduce_min_index(); }
83 template <
size_t _Bytes,
typename _Ap>
84 [[__gnu__::__always_inline__]]
85 constexpr __simd_size_type
86 reduce_max_index(
const basic_mask<_Bytes, _Ap>& __k)
87 {
return __k._M_reduce_max_index(); }
90 all_of(same_as<bool>
auto __x)
noexcept
94 any_of(same_as<bool>
auto __x)
noexcept
98 none_of(same_as<bool>
auto __x)
noexcept
101 constexpr __simd_size_type
102 reduce_count(same_as<bool>
auto __x)
noexcept
105 constexpr __simd_size_type
106 reduce_min_index(same_as<bool>
auto __x)
109 constexpr __simd_size_type
110 reduce_max_index(same_as<bool>
auto __x)
113_GLIBCXX_END_NAMESPACE_VERSION
116#pragma GCC diagnostic pop
ISO C++ entities toplevel namespace is std.