23 static constexpr std::string_view name =
"default_mode";
26 static constexpr std::string_view name =
"constexpr";
29 static constexpr std::string_view name =
"runtime";
31#if defined( DAW_ALLOW_SSE42 )
33 static constexpr std::string_view name =
"sse4.2";
38 static constexpr std::string_view name =
"simd";
42 namespace json_details {
47 template<
typename ExecTag>
48 DAW_ATTRIB_INLINE
constexpr bool use_constexpr_exec_mode( ) {
49#if defined( DAW_HAS_IF_CONSTEVAL )
55#elif defined( DAW_HAS_IS_CONSTANT_EVALUATED )
56 return DAW_IS_CONSTANT_EVALUATED( );
60 return not std::is_base_of_v<runtime_exec_tag, ExecTag>;
68 template<
typename ExecTag>
69 DAW_ATTRIB_INLINE
constexpr bool use_simd_exec_mode( ) {
70#if defined( DAW_HAS_IF_CONSTEVAL ) or defined( DAW_HAS_IS_CONSTANT_EVALUATED )
73 return std::is_base_of_v<simd_exec_tag, ExecTag>;