8#elifdef __ARM_FEATURE_MVE
12#define SIMDE_ENABLE_NATIVE_ALIASES
23constexpr bool is_quadword_v =
24 std::is_same_v<std::remove_cv_t<T>, uint8x16_t>
25 || std::is_same_v<std::remove_cv_t<T>, uint16x8_t>
26 || std::is_same_v<std::remove_cv_t<T>, uint32x4_t>
27 || std::is_same_v<std::remove_cv_t<T>, uint64x2_t>
28 || std::is_same_v<std::remove_cv_t<T>, int8x16_t>
29 || std::is_same_v<std::remove_cv_t<T>, int16x8_t>
30 || std::is_same_v<std::remove_cv_t<T>, int32x4_t>
31 || std::is_same_v<std::remove_cv_t<T>, int64x2_t>
32#if ARGON_HAS_SINGLE_FLOAT
33 || std::is_same_v<std::remove_cv_t<T>, float32x4_t>
35#if ARGON_HAS_DOUBLE_FLOAT
36 || std::is_same_v<std::remove_cv_t<T>, float64x2_t>
38#if ARGON_HAS_HALF_FLOAT
39 || std::is_same_v<std::remove_cv_t<T>, float16x8_t>
41#if ARGON_HAS_BRAIN_FLOAT
42 || std::is_same_v<std::remove_cv_t<T>, bfloat16x8_t>
45 || std::is_same_v<std::remove_cv_t<T>, poly8x16_t>
46 || std::is_same_v<std::remove_cv_t<T>, poly16x8_t>
47 || std::is_same_v<std::remove_cv_t<T>, poly32x4_t>
48 || std::is_same_v<std::remove_cv_t<T>, poly64x2_t>
59#ifndef ARGON_PLATFORM_MVE
65constexpr bool is_doubleword_v =
66 std::is_same_v<std::remove_cv_t<T>, uint8x8_t>
67 || std::is_same_v<std::remove_cv_t<T>, uint16x4_t>
68 || std::is_same_v<std::remove_cv_t<T>, uint32x2_t>
69 || std::is_same_v<std::remove_cv_t<T>, uint64x1_t>
70 || std::is_same_v<std::remove_cv_t<T>, int8x8_t>
71 || std::is_same_v<std::remove_cv_t<T>, int16x4_t>
72 || std::is_same_v<std::remove_cv_t<T>, int32x2_t>
73 || std::is_same_v<std::remove_cv_t<T>, int64x1_t>
74#if ARGON_HAS_SINGLE_FLOAT
75 || std::is_same_v<std::remove_cv_t<T>, float32x2_t>
77#if ARGON_HAS_DOUBLE_FLOAT
78 || std::is_same_v<std::remove_cv_t<T>, float64x1_t>
80#if ARGON_HAS_HALF_FLOAT
81 || std::is_same_v<std::remove_cv_t<T>, float16x4_t>
83#if ARGON_HAS_BRAIN_FLOAT
84 || std::is_same_v<std::remove_cv_t<T>, bfloat16x4_t>
87 || std::is_same_v<std::remove_cv_t<T>, poly8x8_t>
88 || std::is_same_v<std::remove_cv_t<T>, poly16x4_t>
89 || std::is_same_v<std::remove_cv_t<T>, poly32x2_t>
90 || std::is_same_v<std::remove_cv_t<T>, poly64x1_t>
97constexpr bool is_doubleword_v =
false;
108#ifndef ARGON_PLATFORM_MVE
Concept to check if a type is a double-word SIMD vector type.
Definition concepts.hpp:103
Concept to check if a type is a quad-word SIMD vector type.
Definition concepts.hpp:57
Concept to check if a type is a vector type (either double-word or quad-word).
Definition concepts.hpp:110
Header file for SIMD features and platform detection.