summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/auxiliary/util/u_pwr8.h6
-rw-r--r--src/gallium/drivers/llvmpipe/lp_setup_tri.c2
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); */