@@ -82,8 +82,8 @@ void simd_divide_by_scalar_contig_signed(T* src, T scalar, T* dst, npy_intp len)
82
82
else {
83
83
// General case with floor division semantics
84
84
const auto vec_scalar = Set (scalar);
85
- const auto vec_zero = Zero<T>();
86
85
const auto one = Set (static_cast <T>(1 ));
86
+ const auto vec_zero = Xor (one, one);
87
87
size_t i = 0 ;
88
88
89
89
for (; i + N <= static_cast <size_t >(len); i += N) {
@@ -157,8 +157,8 @@ void simd_divide_contig_signed(T* src1, T* src2, T* dst, npy_intp len) {
157
157
158
158
bool raise_overflow = false ;
159
159
bool raise_divbyzero = false ;
160
- const auto vec_zero = Zero<T>();
161
160
const auto vec_one = Set (static_cast <T>(1 ));
161
+ const auto vec_zero = Xor (vec_one, vec_one);
162
162
const auto vec_min_val = Set (static_cast <T>(std::numeric_limits<T>::min ()));
163
163
const auto vec_neg_one = Set (static_cast <T>(-1 ));
164
164
@@ -237,8 +237,8 @@ void simd_divide_contig_unsigned(T* src1, T* src2, T* dst, npy_intp len) {
237
237
const size_t N = Lanes (T{});
238
238
239
239
bool raise_divbyzero = false ;
240
- const auto vec_zero = Zero<T>();
241
240
const auto vec_one = Set (static_cast <T>(1 ));
241
+ const auto vec_zero = Xor (vec_one, vec_one);
242
242
243
243
size_t i = 0 ;
244
244
for (; i + N <= static_cast <size_t >(len); i += N) {
0 commit comments