Re: [Mesa-dev] [PATCH] i965/vec4: unit test for copy propagation and writemask

2014-06-15 Thread Eric Anholt
Chia-I Wu olva...@gmail.com writes:

 This unit test demonstrates a subtle bug fixed by
 4ddf51db6af36736d5d42c1043eeea86e47459ce.

Reviewed-by: Eric Anholt e...@anholt.net


pgp_vjrlXGJiT.pgp
Description: PGP signature
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] i965/vec4: unit test for copy propagation and writemask

2014-04-14 Thread Chia-I Wu
This unit test demonstrates a subtle bug fixed by
4ddf51db6af36736d5d42c1043eeea86e47459ce.

Signed-off-by: Chia-I Wu o...@lunarg.com
Cc: Eric Anholt e...@anholt.net
---
 .../dri/i965/test_vec4_copy_propagation.cpp| 30 ++
 1 file changed, 30 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp 
b/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
index cb70096..fd517f8 100644
--- a/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
@@ -154,3 +154,33 @@ TEST_F(copy_propagation_test, test_swizzle_swizzle)
 SWIZZLE_X,
 SWIZZLE_Y));
 }
+
+TEST_F(copy_propagation_test, test_swizzle_writemask)
+{
+   dst_reg a = dst_reg(v, glsl_type::vec4_type);
+   dst_reg b = dst_reg(v, glsl_type::vec4_type);
+   dst_reg c = dst_reg(v, glsl_type::vec4_type);
+
+   v-emit(v-MOV(b, swizzle(src_reg(a), BRW_SWIZZLE4(SWIZZLE_X,
+  SWIZZLE_Y,
+  SWIZZLE_X,
+  SWIZZLE_Z;
+
+   v-emit(v-MOV(writemask(a, WRITEMASK_XYZ), src_reg(1.0f)));
+
+   vec4_instruction *test_mov =
+  v-MOV(c, swizzle(src_reg(b), BRW_SWIZZLE4(SWIZZLE_W,
+ SWIZZLE_W,
+ SWIZZLE_W,
+ SWIZZLE_W)));
+   v-emit(test_mov);
+
+   copy_propagation(v);
+
+   /* should not copy propagate */
+   EXPECT_EQ(test_mov-src[0].reg, b.reg);
+   EXPECT_EQ(test_mov-src[0].swizzle, BRW_SWIZZLE4(SWIZZLE_W,
+SWIZZLE_W,
+SWIZZLE_W,
+SWIZZLE_W));
+}
-- 
1.8.5.3

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev