6#ifndef VIR_SIMD_CONCEPTS_H_
7#define VIR_SIMD_CONCEPTS_H_
14 || (defined __cpp_concepts && __cpp_concepts >= 201907 && __has_include(<concepts>) \
15 && (__GNUC__ > 10 || defined __clang__))
16#define VIR_HAVE_SIMD_CONCEPTS 1
27 concept arithmetic = std::floating_point<T> or std::integral<T>;
64 template <
typename V,
typename T>
68 template <
typename V,
size_t W
idth>
72 template <
typename V,
size_t W
idth>
Satisfied if V is a (valid) specialization of simd_mask<T, Abi>.
Definition simd_concepts.h:56
Satisfied if V is either a simd or a simd_mask.
Definition simd_concepts.h:61
Satisfied if V is a (valid) specialization of simd<T, Abi>.
Definition simd_concepts.h:48
This concept matches the core language defintion of an arithmetic type.
Definition simd_concepts.h:27
Satisfied if T is a SIMD ABI tag.
Definition simd_concepts.h:41
Satisfied if V is a simd_mask with the given size Width.
Definition simd_concepts.h:73
Satisfied if V is a simd with the given size Width.
Definition simd_concepts.h:69
Satisfied if V is a simd<T, Abi> with arbitrary but valid ABI tag Abi.
Definition simd_concepts.h:65
Satisfied for all arithmetic types except bool.
Definition simd_concepts.h:37
This namespace collects libraries and tools authored by Matthias Kretz.
Definition constexpr_wrapper.h:21