diff --git a/sse2neon.h b/sse2neon.h index 2c179a94..df1b94e6 100644 --- a/sse2neon.h +++ b/sse2neon.h @@ -4473,11 +4473,11 @@ FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) double a1 = recast_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); double b0 = recast_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); double b1 = recast_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); - uint64_t d[2]; + int64_t d[2]; d[0] = a0 > b0 ? recast_i64(a0) : recast_i64(b0); d[1] = a1 > b1 ? recast_i64(a1) : recast_i64(b1); - return vreinterpretq_m128d_u64(vld1q_u64(d)); + return vreinterpretq_m128d_s64(vld1q_s64(d)); #endif } @@ -4536,10 +4536,10 @@ FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) double a1 = recast_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); double b0 = recast_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); double b1 = recast_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); - uint64_t d[2]; + int64_t d[2]; d[0] = a0 < b0 ? recast_i64(a0) : recast_i64(b0); d[1] = a1 < b1 ? recast_i64(a1) : recast_i64(b1); - return vreinterpretq_m128d_u64(vld1q_u64(d)); + return vreinterpretq_m128d_s64(vld1q_s64(d)); #endif }