diff options
-rw-r--r-- | src/gallium/auxiliary/util/u_pwr8.h | 6 | ||||
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_setup_tri.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/util/u_pwr8.h b/src/gallium/auxiliary/util/u_pwr8.h index 1eca6d6df2c..ffd9f923142 100644 --- a/src/gallium/auxiliary/util/u_pwr8.h +++ b/src/gallium/auxiliary/util/u_pwr8.h @@ -153,6 +153,12 @@ vec_mullo_epi32 (__m128i a, __m128i b) return v; } +static inline __m128i +vec_andnot_si128 (__m128i a, __m128i b) +{ + return vec_andc (b, a); +} + static inline void transpose4_epi32(const __m128i * restrict a, const __m128i * restrict b, diff --git a/src/gallium/drivers/llvmpipe/lp_setup_tri.c b/src/gallium/drivers/llvmpipe/lp_setup_tri.c index aa241761586..907129dbd1b 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup_tri.c +++ b/src/gallium/drivers/llvmpipe/lp_setup_tri.c @@ -556,7 +556,7 @@ do_triangle_ccw(struct lp_setup_context *setup, /* Calculate trivial reject values: */ - eo = vec_sub_epi32(vec_andc(dcdy_neg_mask, dcdy), + eo = vec_sub_epi32(vec_andnot_si128(dcdy_neg_mask, dcdy), vec_and(dcdx_neg_mask, dcdx)); /* ei = _mm_sub_epi32(_mm_sub_epi32(dcdy, dcdx), eo); */ |