Skip to content

Commit 7aa9df4

Browse files
committed
Improve 64-bit bitmask code
1 parent ffaa19d commit 7aa9df4

File tree

1 file changed

+3
-9
lines changed

1 file changed

+3
-9
lines changed

include/xsimd/arch/xsimd_neon.hpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3341,15 +3341,9 @@ namespace xsimd
33413341
}
33423342
else
33433343
{
3344-
uint32x2_t narrowed = vmovn_u64(self);
3345-
XSIMD_IF_CONSTEXPR(do_swap)
3346-
{
3347-
narrowed = vrev64_u32(narrowed);
3348-
}
3349-
3350-
uint64_t mask32 = vget_lane_u64(vreinterpret_u64_u32(narrowed), 0);
3351-
mask32 &= 0x0000000100000001;
3352-
return (mask32 | mask32 >> 31) & 0x3;
3344+
uint64_t mask_lo = vgetq_lane_u64(self, 0);
3345+
uint64_t mask_hi = vgetq_lane_u64(self, 1);
3346+
return ((mask_lo >> 63) | (mask_hi << 1)) & 0x3;
33533347
}
33543348
}
33553349
}

0 commit comments

Comments
 (0)