Mesa (main): intel/fs: Refactor some cmod propagation tests

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Aug 30 21:11:44 UTC 2021


Module: Mesa
Branch: main
Commit: 3afefb0818da96b06c07d0cf18142962e61be75c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3afefb0818da96b06c07d0cf18142962e61be75c

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Wed Jul 21 13:56:34 2021 -0700

intel/fs: Refactor some cmod propagation tests

This will simplify some later changes to these tests.

v2: Combine test_positive_saturate_prop and test_negative_saturate_prop
into a single function.  Suggested by Marcin.

Reviewed-by: Marcin Ślusarz <marcin.slusarz at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12045>

---

 src/intel/compiler/test_fs_cmod_propagation.cpp | 278 +++++++++++++-----------
 1 file changed, 154 insertions(+), 124 deletions(-)

diff --git a/src/intel/compiler/test_fs_cmod_propagation.cpp b/src/intel/compiler/test_fs_cmod_propagation.cpp
index e157a92b3c3..50e4efc137e 100644
--- a/src/intel/compiler/test_fs_cmod_propagation.cpp
+++ b/src/intel/compiler/test_fs_cmod_propagation.cpp
@@ -40,15 +40,12 @@ public:
    struct gl_shader_program *shader_prog;
    fs_visitor *v;
 
-   void test_positive_float_saturate_prop(enum brw_conditional_mod before,
-                                          enum brw_conditional_mod after,
-                                          enum opcode op);
-
-   void test_negative_float_saturate_prop(enum brw_conditional_mod before,
-                                          enum opcode op);
-
-   void test_negative_int_saturate_prop(enum brw_conditional_mod before,
-                                        enum opcode op);
+   void test_saturate_prop(enum brw_conditional_mod before,
+                           enum brw_conditional_mod after,
+                           enum opcode op,
+                           enum brw_reg_type add_type,
+                           enum brw_reg_type op_type,
+                           bool expected_cmod_prop_progress);
 };
 
 class cmod_propagation_fs_visitor : public fs_visitor
@@ -1504,53 +1501,31 @@ TEST_F(cmod_propagation_test, signed_unsigned_comparison_mismatch)
 }
 
 void
-cmod_propagation_test::test_positive_float_saturate_prop(enum brw_conditional_mod before,
-                                                         enum brw_conditional_mod after,
-                                                         enum opcode op)
+cmod_propagation_test::test_saturate_prop(enum brw_conditional_mod before,
+                                          enum brw_conditional_mod after,
+                                          enum opcode op,
+                                          enum brw_reg_type add_type,
+                                          enum brw_reg_type op_type,
+                                          bool expected_cmod_prop_progress)
 {
    const fs_builder &bld = v->bld;
-   fs_reg dest = v->vgrf(glsl_type::float_type);
-   fs_reg src0 = v->vgrf(glsl_type::float_type);
-   fs_reg src1 = v->vgrf(glsl_type::float_type);
-   fs_reg zero(brw_imm_f(0.0f));
-   bld.ADD(dest, src0, src1)->saturate = true;
-
-   assert(op == BRW_OPCODE_CMP || op == BRW_OPCODE_MOV);
-   if (op == BRW_OPCODE_CMP)
-      bld.CMP(bld.null_reg_f(), dest, zero, before);
-   else
-      bld.MOV(bld.null_reg_f(), dest)->conditional_mod = before;
-
-   v->calculate_cfg();
-   bblock_t *block0 = v->cfg->blocks[0];
-
-   EXPECT_EQ(0, block0->start_ip);
-   EXPECT_EQ(1, block0->end_ip);
-
-   EXPECT_TRUE(cmod_propagation(v));
-   EXPECT_EQ(0, block0->start_ip);
-   EXPECT_EQ(0, block0->end_ip);
-   EXPECT_EQ(BRW_OPCODE_ADD, instruction(block0, 0)->opcode);
-   EXPECT_TRUE(instruction(block0, 0)->saturate);
-   EXPECT_EQ(after, instruction(block0, 0)->conditional_mod);
-}
+   fs_reg dest = bld.vgrf(add_type);
+   fs_reg src0 = bld.vgrf(add_type);
+   fs_reg src1 = bld.vgrf(add_type);
+   fs_reg zero(brw_imm_ud(0));
 
-void
-cmod_propagation_test::test_negative_float_saturate_prop(enum brw_conditional_mod before,
-                                                         enum opcode op)
-{
-   const fs_builder &bld = v->bld;
-   fs_reg dest = v->vgrf(glsl_type::float_type);
-   fs_reg src0 = v->vgrf(glsl_type::float_type);
-   fs_reg src1 = v->vgrf(glsl_type::float_type);
-   fs_reg zero(brw_imm_f(0.0f));
    bld.ADD(dest, src0, src1)->saturate = true;
 
    assert(op == BRW_OPCODE_CMP || op == BRW_OPCODE_MOV);
-   if (op == BRW_OPCODE_CMP)
-      bld.CMP(bld.null_reg_f(), dest, zero, before);
-   else
-      bld.MOV(bld.null_reg_f(), dest)->conditional_mod = before;
+   if (op == BRW_OPCODE_CMP) {
+      bld.CMP(bld.vgrf(op_type, 0),
+              retype(dest, op_type),
+              retype(zero, op_type),
+              before);
+   } else {
+      bld.MOV(bld.vgrf(op_type, 0), retype(dest, op_type))
+         ->conditional_mod = before;
+   }
 
    v->calculate_cfg();
    bblock_t *block0 = v->cfg->blocks[0];
@@ -1558,49 +1533,31 @@ cmod_propagation_test::test_negative_float_saturate_prop(enum brw_conditional_mo
    EXPECT_EQ(0, block0->start_ip);
    EXPECT_EQ(1, block0->end_ip);
 
-   EXPECT_FALSE(cmod_propagation(v));
+   EXPECT_EQ(expected_cmod_prop_progress, cmod_propagation(v));
    EXPECT_EQ(0, block0->start_ip);
-   EXPECT_EQ(1, block0->end_ip);
-   EXPECT_EQ(BRW_OPCODE_ADD, instruction(block0, 0)->opcode);
-   EXPECT_TRUE(instruction(block0, 0)->saturate);
-   EXPECT_EQ(BRW_CONDITIONAL_NONE, instruction(block0, 0)->conditional_mod);
-   EXPECT_EQ(op, instruction(block0, 1)->opcode);
-   EXPECT_FALSE(instruction(block0, 1)->saturate);
-   EXPECT_EQ(before, instruction(block0, 1)->conditional_mod);
-}
 
-void
-cmod_propagation_test::test_negative_int_saturate_prop(enum brw_conditional_mod before,
-                                                       enum opcode op)
-{
-   const fs_builder &bld = v->bld;
-   fs_reg dest = v->vgrf(glsl_type::int_type);
-   fs_reg src0 = v->vgrf(glsl_type::int_type);
-   fs_reg src1 = v->vgrf(glsl_type::int_type);
-   fs_reg zero(brw_imm_d(0));
-   bld.ADD(dest, src0, src1)->saturate = true;
-
-   assert(op == BRW_OPCODE_CMP || op == BRW_OPCODE_MOV);
-   if (op == BRW_OPCODE_CMP)
-      bld.CMP(bld.null_reg_d(), dest, zero, before);
-   else
-      bld.MOV(bld.null_reg_d(), dest)->conditional_mod = before;
-
-   v->calculate_cfg();
-   bblock_t *block0 = v->cfg->blocks[0];
-
-   EXPECT_EQ(0, block0->start_ip);
-   EXPECT_EQ(1, block0->end_ip);
-
-   EXPECT_FALSE(cmod_propagation(v));
-   EXPECT_EQ(0, block0->start_ip);
-   EXPECT_EQ(1, block0->end_ip);
    EXPECT_EQ(BRW_OPCODE_ADD, instruction(block0, 0)->opcode);
+   EXPECT_EQ(add_type, instruction(block0, 0)->dst.type);
+   EXPECT_EQ(add_type, instruction(block0, 0)->src[0].type);
+   EXPECT_EQ(add_type, instruction(block0, 0)->src[1].type);
    EXPECT_TRUE(instruction(block0, 0)->saturate);
-   EXPECT_EQ(BRW_CONDITIONAL_NONE, instruction(block0, 0)->conditional_mod);
-   EXPECT_EQ(op, instruction(block0, 1)->opcode);
-   EXPECT_FALSE(instruction(block0, 1)->saturate);
-   EXPECT_EQ(before, instruction(block0, 1)->conditional_mod);
+
+   if (expected_cmod_prop_progress) {
+      EXPECT_EQ(0, block0->end_ip);
+      EXPECT_EQ(after, instruction(block0, 0)->conditional_mod);
+   } else {
+      EXPECT_EQ(BRW_CONDITIONAL_NONE, instruction(block0, 0)->conditional_mod);
+
+      /* This is ASSERT_EQ because if end_ip is 0, the instruction(block0, 1)
+       * calls will not work properly, and the test will give weird results.
+       */
+      ASSERT_EQ(1, block0->end_ip);
+      EXPECT_EQ(op, instruction(block0, 1)->opcode);
+      EXPECT_EQ(op_type, instruction(block0, 1)->dst.type);
+      EXPECT_EQ(op_type, instruction(block0, 1)->src[0].type);
+      EXPECT_FALSE(instruction(block0, 1)->saturate);
+      EXPECT_EQ(before, instruction(block0, 1)->conditional_mod);
+   }
 }
 
 TEST_F(cmod_propagation_test, float_saturate_nz_cmp)
@@ -1616,8 +1573,10 @@ TEST_F(cmod_propagation_test, float_saturate_nz_cmp)
     * = After =
     * 0: add.sat.g.f0(8)  dest  src0  src1
     */
-   test_positive_float_saturate_prop(BRW_CONDITIONAL_NZ, BRW_CONDITIONAL_G,
-                                     BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_NZ, BRW_CONDITIONAL_G,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      true);
 }
 
 TEST_F(cmod_propagation_test, float_saturate_nz_mov)
@@ -1633,8 +1592,10 @@ TEST_F(cmod_propagation_test, float_saturate_nz_mov)
     * = After =
     * 0: add.sat.g.f0(8)  dest  src0  src1
     */
-   test_positive_float_saturate_prop(BRW_CONDITIONAL_NZ, BRW_CONDITIONAL_G,
-                            BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_NZ, BRW_CONDITIONAL_G,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      true);
 }
 
 TEST_F(cmod_propagation_test, float_saturate_z_cmp)
@@ -1650,8 +1611,10 @@ TEST_F(cmod_propagation_test, float_saturate_z_cmp)
     * = After =
     * 0: add.sat.le.f0(8)  dest  src0  src1
     */
-   test_positive_float_saturate_prop(BRW_CONDITIONAL_Z, BRW_CONDITIONAL_LE,
-                                     BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_Z, BRW_CONDITIONAL_LE,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      true);
 }
 
 TEST_F(cmod_propagation_test, float_saturate_z_mov)
@@ -1669,10 +1632,15 @@ TEST_F(cmod_propagation_test, float_saturate_z_mov)
     */
 #if 1
    /* cmod propagation bails on every MOV except MOV.NZ. */
-   test_negative_float_saturate_prop(BRW_CONDITIONAL_Z, BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_Z, BRW_CONDITIONAL_Z,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      false);
 #else
-   test_positive_float_saturate_prop(BRW_CONDITIONAL_Z, BRW_CONDITIONAL_LE,
-                                     BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_Z, BRW_CONDITIONAL_LE,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      true);
 #endif
 }
 
@@ -1689,8 +1657,10 @@ TEST_F(cmod_propagation_test, float_saturate_g_cmp)
     * = After =
     * 0: add.sat.g.f0(8)  dest  src0  src1
     */
-   test_positive_float_saturate_prop(BRW_CONDITIONAL_G, BRW_CONDITIONAL_G,
-                                     BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_G, BRW_CONDITIONAL_G,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      true);
 }
 
 TEST_F(cmod_propagation_test, float_saturate_g_mov)
@@ -1708,10 +1678,15 @@ TEST_F(cmod_propagation_test, float_saturate_g_mov)
     */
 #if 1
    /* cmod propagation bails on every MOV except MOV.NZ. */
-   test_negative_float_saturate_prop(BRW_CONDITIONAL_G, BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_G, BRW_CONDITIONAL_G,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      false);
 #else
-   test_positive_float_saturate_prop(BRW_CONDITIONAL_G, BRW_CONDITIONAL_G,
-                                     BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_G, BRW_CONDITIONAL_G,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      true);
 #endif
 }
 
@@ -1728,8 +1703,10 @@ TEST_F(cmod_propagation_test, float_saturate_le_cmp)
     * = After =
     * 0: add.sat.le.f0(8)  dest  src0  src1
     */
-   test_positive_float_saturate_prop(BRW_CONDITIONAL_LE, BRW_CONDITIONAL_LE,
-                                     BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_LE, BRW_CONDITIONAL_LE,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      true);
 }
 
 TEST_F(cmod_propagation_test, float_saturate_le_mov)
@@ -1747,10 +1724,15 @@ TEST_F(cmod_propagation_test, float_saturate_le_mov)
     */
 #if 1
    /* cmod propagation bails on every MOV except MOV.NZ. */
-   test_negative_float_saturate_prop(BRW_CONDITIONAL_LE, BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_LE, BRW_CONDITIONAL_LE,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      false);
 #else
-   test_positive_float_saturate_prop(BRW_CONDITIONAL_LE, BRW_CONDITIONAL_LE,
-                                     BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_LE, BRW_CONDITIONAL_LE,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      true);
 #endif
 }
 
@@ -1767,7 +1749,10 @@ TEST_F(cmod_propagation_test, float_saturate_l_cmp)
     * = After =
     * No change
     */
-   test_negative_float_saturate_prop(BRW_CONDITIONAL_L, BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_L, BRW_CONDITIONAL_L,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      false);
 }
 
 #if 0
@@ -1784,7 +1769,10 @@ TEST_F(cmod_propagation_test, float_saturate_l_mov)
     * = After =
     * No change
     */
-   test_negative_float_saturate_prop(BRW_CONDITIONAL_L, BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_L, BRW_CONDITIONAL_L,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      false);
 }
 #endif
 
@@ -1801,7 +1789,10 @@ TEST_F(cmod_propagation_test, float_saturate_ge_cmp)
     * = After =
     * No change
     */
-   test_negative_float_saturate_prop(BRW_CONDITIONAL_GE, BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_GE, BRW_CONDITIONAL_GE,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, float_saturate_ge_mov)
@@ -1817,7 +1808,10 @@ TEST_F(cmod_propagation_test, float_saturate_ge_mov)
     * = After =
     * No change
     */
-   test_negative_float_saturate_prop(BRW_CONDITIONAL_GE, BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_GE, BRW_CONDITIONAL_GE,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_nz_cmp)
@@ -1830,7 +1824,10 @@ TEST_F(cmod_propagation_test, int_saturate_nz_cmp)
     * = After =
     * No change.
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_NZ, BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_NZ, BRW_CONDITIONAL_NZ,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_nz_mov)
@@ -1843,7 +1840,10 @@ TEST_F(cmod_propagation_test, int_saturate_nz_mov)
     * = After =
     * No change.
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_NZ, BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_NZ, BRW_CONDITIONAL_NZ,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_z_cmp)
@@ -1856,7 +1856,10 @@ TEST_F(cmod_propagation_test, int_saturate_z_cmp)
     * = After =
     * No change.
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_Z, BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_Z, BRW_CONDITIONAL_Z,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_z_mov)
@@ -1872,7 +1875,10 @@ TEST_F(cmod_propagation_test, int_saturate_z_mov)
     * = After =
     * No change.
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_Z, BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_Z, BRW_CONDITIONAL_Z,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_g_cmp)
@@ -1885,7 +1891,10 @@ TEST_F(cmod_propagation_test, int_saturate_g_cmp)
     * = After =
     * No change.
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_G, BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_G, BRW_CONDITIONAL_G,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_g_mov)
@@ -1898,7 +1907,10 @@ TEST_F(cmod_propagation_test, int_saturate_g_mov)
     * = After =
     * No change.
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_G, BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_G, BRW_CONDITIONAL_G,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_le_cmp)
@@ -1911,7 +1923,10 @@ TEST_F(cmod_propagation_test, int_saturate_le_cmp)
     * = After =
     * No change.
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_LE, BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_LE, BRW_CONDITIONAL_LE,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_le_mov)
@@ -1924,7 +1939,10 @@ TEST_F(cmod_propagation_test, int_saturate_le_mov)
     * = After =
     * No change.
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_LE, BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_LE, BRW_CONDITIONAL_LE,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_l_cmp)
@@ -1937,7 +1955,10 @@ TEST_F(cmod_propagation_test, int_saturate_l_cmp)
     * = After =
     * No change
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_L, BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_L, BRW_CONDITIONAL_L,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_l_mov)
@@ -1950,7 +1971,10 @@ TEST_F(cmod_propagation_test, int_saturate_l_mov)
     * = After =
     * No change
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_L, BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_L, BRW_CONDITIONAL_L,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_ge_cmp)
@@ -1963,7 +1987,10 @@ TEST_F(cmod_propagation_test, int_saturate_ge_cmp)
     * = After =
     * No change
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_GE, BRW_OPCODE_CMP);
+   test_saturate_prop(BRW_CONDITIONAL_GE, BRW_CONDITIONAL_GE,
+                      BRW_OPCODE_CMP,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, int_saturate_ge_mov)
@@ -1976,7 +2003,10 @@ TEST_F(cmod_propagation_test, int_saturate_ge_mov)
     * = After =
     * No change
     */
-   test_negative_int_saturate_prop(BRW_CONDITIONAL_GE, BRW_OPCODE_MOV);
+   test_saturate_prop(BRW_CONDITIONAL_GE, BRW_CONDITIONAL_GE,
+                      BRW_OPCODE_MOV,
+                      BRW_REGISTER_TYPE_D, BRW_REGISTER_TYPE_D,
+                      false);
 }
 
 TEST_F(cmod_propagation_test, not_to_or)



More information about the mesa-commit mailing list