@@ -119,9 +119,9 @@ namespace xsimd
119119 template <class A , class T , class ... Args, detail::enable_integral_t <T> = 0 >
120120 XSIMD_INLINE batch_bool<T, A> set (batch_bool<T, A> const &, requires_arch<neon>, Args... args) noexcept
121121 {
122- using register_type = typename batch_bool<T, A>::register_type;
123122 using unsigned_type = as_unsigned_integer_t <T>;
124- return register_type { static_cast <unsigned_type>(args ? -1LL : 0LL )... };
123+ auto const out = batch<unsigned_type, A> { static_cast <unsigned_type>(args ? -1LL : 0LL )... };
124+ return { out.data };
125125 }
126126
127127 template <class A >
@@ -324,7 +324,8 @@ namespace xsimd
324324 XSIMD_INLINE batch_bool<T, A> load_unaligned (bool const * mem, batch_bool<T, A>, requires_arch<neon>) noexcept
325325 {
326326 auto vmem = load_unaligned<A>((unsigned char const *)mem, convert<unsigned char > {}, A {});
327- return { 0 - vmem.data };
327+ auto const zero = batch<T, A> { 0 };
328+ return { zero.data - vmem.data };
328329 }
329330 template <class A , class T , detail::enable_sized_t <T, 1 > = 0 >
330331 XSIMD_INLINE batch_bool<T, A> load_aligned (bool const * mem, batch_bool<T, A> t, requires_arch<neon> r) noexcept
0 commit comments