@@ -630,7 +630,7 @@ namespace xsimd
630630 batch<T, A> add (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
631631 {
632632 using register_type = typename batch<T, A>::register_type;
633- constexpr detail::neon_dispatcher::binary dispatcher =
633+ const detail::neon_dispatcher::binary dispatcher =
634634 {
635635 std::make_tuple (wrap::vaddq_u8, wrap::vaddq_s8, wrap::vaddq_u16, wrap::vaddq_s16,
636636 wrap::vaddq_u32, wrap::vaddq_s32, wrap::vaddq_u64, wrap::vaddq_s64,
@@ -649,7 +649,7 @@ namespace xsimd
649649 batch<T, A> sadd (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
650650 {
651651 using register_type = typename batch<T, A>::register_type;
652- constexpr detail::neon_dispatcher::binary dispatcher =
652+ const detail::neon_dispatcher::binary dispatcher =
653653 {
654654 std::make_tuple (wrap::vqaddq_u8, wrap::vqaddq_s8, wrap::vqaddq_u16, wrap::vqaddq_s16,
655655 wrap::vqaddq_u32, wrap::vqaddq_s32, wrap::vqaddq_u64, wrap::vqaddq_s64,
@@ -669,7 +669,7 @@ namespace xsimd
669669 batch<T, A> sub (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
670670 {
671671 using register_type = typename batch<T, A>::register_type;
672- constexpr detail::neon_dispatcher::binary dispatcher =
672+ const detail::neon_dispatcher::binary dispatcher =
673673 {
674674 std::make_tuple (wrap::vsubq_u8, wrap::vsubq_s8, wrap::vsubq_u16, wrap::vsubq_s16,
675675 wrap::vsubq_u32, wrap::vsubq_s32, wrap::vsubq_u64, wrap::vsubq_s64,
@@ -688,7 +688,7 @@ namespace xsimd
688688 batch<T, A> ssub (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
689689 {
690690 using register_type = typename batch<T, A>::register_type;
691- constexpr detail::neon_dispatcher::binary dispatcher =
691+ const detail::neon_dispatcher::binary dispatcher =
692692 {
693693 std::make_tuple (wrap::vqsubq_u8, wrap::vqsubq_s8, wrap::vqsubq_u16, wrap::vqsubq_s16,
694694 wrap::vqsubq_u32, wrap::vqsubq_s32, wrap::vqsubq_u64, wrap::vqsubq_s64,
@@ -709,7 +709,7 @@ namespace xsimd
709709 batch<T, A> mul (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
710710 {
711711 using register_type = typename batch<T, A>::register_type;
712- constexpr detail::excluding_int64_dispatcher::binary dispatcher =
712+ const detail::excluding_int64_dispatcher::binary dispatcher =
713713 {
714714 std::make_tuple (wrap::vmulq_u8, wrap::vmulq_s8, wrap::vmulq_u16, wrap::vmulq_s16,
715715 wrap::vmulq_u32, wrap::vmulq_s32, wrap::vmulq_f32)
@@ -763,7 +763,7 @@ namespace xsimd
763763 batch_bool<T, A> eq (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
764764 {
765765 using register_type = typename batch<T, A>::register_type;
766- constexpr detail::excluding_int64_comp_dispatcher::binary dispatcher =
766+ const detail::excluding_int64_comp_dispatcher::binary dispatcher =
767767 {
768768 std::make_tuple (wrap::vceqq_u8, wrap::vceqq_s8, wrap::vceqq_u16, wrap::vceqq_s16,
769769 wrap::vceqq_u32, wrap::vceqq_s32, wrap::vceqq_f32)
@@ -776,7 +776,7 @@ namespace xsimd
776776 {
777777 using register_type = typename batch_bool<T, A>::register_type;
778778 using dispatcher_type = detail::neon_comp_dispatcher_impl<uint8x16_t , uint16x8_t , uint32x4_t >::binary;
779- constexpr dispatcher_type dispatcher =
779+ const dispatcher_type dispatcher =
780780 {
781781 std::make_tuple (wrap::vceqq_u8, wrap::vceqq_u16, wrap::vceqq_u32)
782782 };
@@ -806,7 +806,7 @@ namespace xsimd
806806 batch_bool<T, A> lt (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
807807 {
808808 using register_type = typename batch<T, A>::register_type;
809- constexpr detail::excluding_int64_comp_dispatcher::binary dispatcher =
809+ const detail::excluding_int64_comp_dispatcher::binary dispatcher =
810810 {
811811 std::make_tuple (wrap::vcltq_u8, wrap::vcltq_s8, wrap::vcltq_u16, wrap::vcltq_s16,
812812 wrap::vcltq_u32, wrap::vcltq_s32, wrap::vcltq_f32)
@@ -831,7 +831,7 @@ namespace xsimd
831831 batch_bool<T, A> le (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
832832 {
833833 using register_type = typename batch<T, A>::register_type;
834- constexpr detail::excluding_int64_comp_dispatcher::binary dispatcher =
834+ const detail::excluding_int64_comp_dispatcher::binary dispatcher =
835835 {
836836 std::make_tuple (wrap::vcleq_u8, wrap::vcleq_s8, wrap::vcleq_u16, wrap::vcleq_s16,
837837 wrap::vcleq_u32, wrap::vcleq_s32, wrap::vcleq_f32)
@@ -856,7 +856,7 @@ namespace xsimd
856856 batch_bool<T, A> gt (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
857857 {
858858 using register_type = typename batch<T, A>::register_type;
859- constexpr detail::excluding_int64_comp_dispatcher::binary dispatcher =
859+ const detail::excluding_int64_comp_dispatcher::binary dispatcher =
860860 {
861861 std::make_tuple (wrap::vcgtq_u8, wrap::vcgtq_s8, wrap::vcgtq_u16, wrap::vcgtq_s16,
862862 wrap::vcgtq_u32, wrap::vcgtq_s32, wrap::vcgtq_f32)
@@ -881,7 +881,7 @@ namespace xsimd
881881 batch_bool<T, A> ge (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
882882 {
883883 using register_type = typename batch<T, A>::register_type;
884- constexpr detail::excluding_int64_comp_dispatcher::binary dispatcher =
884+ const detail::excluding_int64_comp_dispatcher::binary dispatcher =
885885 {
886886 std::make_tuple (wrap::vcgeq_u8, wrap::vcgeq_s8, wrap::vcgeq_u16, wrap::vcgeq_s16,
887887 wrap::vcgeq_u32, wrap::vcgeq_s32, wrap::vcgeq_f32)
@@ -912,7 +912,7 @@ namespace xsimd
912912 template <class V >
913913 V bitwise_and_neon (V const & lhs, V const & rhs)
914914 {
915- constexpr neon_dispatcher::binary dispatcher =
915+ const neon_dispatcher::binary dispatcher =
916916 {
917917 std::make_tuple (wrap::vandq_u8, wrap::vandq_s8, wrap::vandq_u16, wrap::vandq_s16,
918918 wrap::vandq_u32, wrap::vandq_s32, wrap::vandq_u64, wrap::vandq_s64,
@@ -953,7 +953,7 @@ namespace xsimd
953953 template <class V >
954954 V bitwise_or_neon (V const & lhs, V const & rhs)
955955 {
956- constexpr neon_dispatcher::binary dispatcher =
956+ const neon_dispatcher::binary dispatcher =
957957 {
958958 std::make_tuple (wrap::vorrq_u8, wrap::vorrq_s8, wrap::vorrq_u16, wrap::vorrq_s16,
959959 wrap::vorrq_u32, wrap::vorrq_s32, wrap::vorrq_u64, wrap::vorrq_s64,
@@ -994,7 +994,7 @@ namespace xsimd
994994 template <class V >
995995 V bitwise_xor_neon (V const & lhs, V const & rhs)
996996 {
997- constexpr neon_dispatcher::binary dispatcher =
997+ const neon_dispatcher::binary dispatcher =
998998 {
999999 std::make_tuple (wrap::veorq_u8, wrap::veorq_s8, wrap::veorq_u16, wrap::veorq_s16,
10001000 wrap::veorq_u32, wrap::veorq_s32, wrap::veorq_u64, wrap::veorq_s64,
@@ -1054,7 +1054,7 @@ namespace xsimd
10541054 template <class V >
10551055 V bitwise_not_neon (V const & arg)
10561056 {
1057- constexpr neon_dispatcher::unary dispatcher =
1057+ const neon_dispatcher::unary dispatcher =
10581058 {
10591059 std::make_tuple (wrap::vmvnq_u8, wrap::vmvnq_s8, wrap::vmvnq_u16, wrap::vmvnq_s16,
10601060 wrap::vmvnq_u32, wrap::vmvnq_s32,
@@ -1095,7 +1095,7 @@ namespace xsimd
10951095 template <class V >
10961096 V bitwise_andnot_neon (V const & lhs, V const & rhs)
10971097 {
1098- constexpr detail::neon_dispatcher::binary dispatcher =
1098+ const detail::neon_dispatcher::binary dispatcher =
10991099 {
11001100 std::make_tuple (wrap::vbicq_u8, wrap::vbicq_s8, wrap::vbicq_u16, wrap::vbicq_s16,
11011101 wrap::vbicq_u32, wrap::vbicq_s32, wrap::vbicq_u64, wrap::vbicq_s64,
@@ -1130,7 +1130,7 @@ namespace xsimd
11301130 batch<T, A> min (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
11311131 {
11321132 using register_type = typename batch<T, A>::register_type;
1133- constexpr detail::excluding_int64_dispatcher::binary dispatcher =
1133+ const detail::excluding_int64_dispatcher::binary dispatcher =
11341134 {
11351135 std::make_tuple (wrap::vminq_u8, wrap::vminq_s8, wrap::vminq_u16, wrap::vminq_s16,
11361136 wrap::vminq_u32, wrap::vminq_s32, wrap::vminq_f32)
@@ -1155,7 +1155,7 @@ namespace xsimd
11551155 batch<T, A> max (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>)
11561156 {
11571157 using register_type = typename batch<T, A>::register_type;
1158- constexpr detail::excluding_int64_dispatcher::binary dispatcher =
1158+ const detail::excluding_int64_dispatcher::binary dispatcher =
11591159 {
11601160 std::make_tuple (wrap::vmaxq_u8, wrap::vmaxq_s8, wrap::vmaxq_u16, wrap::vmaxq_s16,
11611161 wrap::vmaxq_u32, wrap::vmaxq_s32, wrap::vmaxq_f32)
@@ -1202,7 +1202,7 @@ namespace xsimd
12021202 batch<T, A> abs (batch<T, A> const & arg, requires_arch<neon>)
12031203 {
12041204 using register_type = typename batch<T, A>::register_type;
1205- constexpr detail::excluding_int64_dispatcher::unary dispatcher =
1205+ const detail::excluding_int64_dispatcher::unary dispatcher =
12061206 {
12071207 std::make_tuple (detail::abs_u8, wrap::vabsq_s8, detail::abs_u16, wrap::vabsq_s16,
12081208 detail::abs_u32, wrap::vabsq_s32, wrap::vabsq_f32)
@@ -1389,7 +1389,7 @@ namespace xsimd
13891389 {
13901390 using bool_register_type = typename batch_bool<T, A>::register_type;
13911391 using register_type = typename batch<T, A>::register_type;
1392- constexpr detail::neon_select_dispatcher dispatcher =
1392+ const detail::neon_select_dispatcher dispatcher =
13931393 {
13941394 std::make_tuple (wrap::vbslq_u8, wrap::vbslq_s8, wrap::vbslq_u16, wrap::vbslq_s16,
13951395 wrap::vbslq_u32, wrap::vbslq_s32, wrap::vbslq_u64, wrap::vbslq_s64,
@@ -2171,7 +2171,7 @@ namespace xsimd
21712171 };
21722172
21732173 template <class R , class ... T>
2174- constexpr bitwise_caster_impl<R, T...> make_bitwise_caster_impl (R (*...arg)(T))
2174+ const bitwise_caster_impl<R, T...> make_bitwise_caster_impl (R (*...arg)(T))
21752175 {
21762176 return {std::make_tuple (arg...)};
21772177 }
@@ -2210,7 +2210,7 @@ namespace xsimd
22102210 template <class A , class T , class R >
22112211 batch<R, A> bitwise_cast (batch<T, A> const & arg, batch<R, A> const &, requires_arch<neon>)
22122212 {
2213- constexpr detail::neon_bitwise_caster caster = {
2213+ const detail::neon_bitwise_caster caster = {
22142214 std::make_tuple (
22152215 detail::make_bitwise_caster_impl (wrap::vreinterpretq_u8_u8, wrap::vreinterpretq_u8_s8, wrap::vreinterpretq_u8_u16, wrap::vreinterpretq_u8_s16,
22162216 wrap::vreinterpretq_u8_u32, wrap::vreinterpretq_u8_s32, wrap::vreinterpretq_u8_u64, wrap::vreinterpretq_u8_s64,
0 commit comments