* 1: mov.z(8) null:F dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * 0: add.z(8) dest:F src0:F src1:F
*/
test_mov_prop(BRW_CONDITIONAL_Z,
BRW_REGISTER_TYPE_F,
BRW_REGISTER_TYPE_F,
- false);
+ true);
}
TEST_F(cmod_propagation_test, fadd_fmov_l)
* 1: mov.l(8) null:F dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * 0: add.l(8) dest:F src0:F src1:F
*/
test_mov_prop(BRW_CONDITIONAL_L,
BRW_REGISTER_TYPE_F,
BRW_REGISTER_TYPE_F,
- false);
+ true);
}
TEST_F(cmod_propagation_test, fadd_fmov_g)
* 1: mov.g(8) null:F dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * 0: add.g(8) dest:F src0:F src1:F
*/
test_mov_prop(BRW_CONDITIONAL_G,
BRW_REGISTER_TYPE_F,
BRW_REGISTER_TYPE_F,
- false);
+ true);
}
TEST_F(cmod_propagation_test, fadd_fmov_le)
* 1: mov.le(8) null:F dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * 0: add.le(8) dest:F src0:F src1:F
*/
test_mov_prop(BRW_CONDITIONAL_LE,
BRW_REGISTER_TYPE_F,
BRW_REGISTER_TYPE_F,
- false);
+ true);
}
TEST_F(cmod_propagation_test, fadd_fmov_ge)
* 1: mov.ge(8) null:F dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * 0: add.ge(8) dest:F src0:F src1:F
*/
test_mov_prop(BRW_CONDITIONAL_GE,
BRW_REGISTER_TYPE_F,
BRW_REGISTER_TYPE_F,
- false);
+ true);
}
TEST_F(cmod_propagation_test, iadd_imov_nz)
* 1: mov.z(8) null:D dest:D
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * 0: add.z(8) dest:D src0:D src1:D
*/
test_mov_prop(BRW_CONDITIONAL_Z,
BRW_REGISTER_TYPE_D,
BRW_REGISTER_TYPE_D,
- false);
+ true);
}
TEST_F(cmod_propagation_test, iadd_imov_l)
* 1: mov.l(8) null:D dest:D
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * 0: add.l(8) dest:D src0:D src1:D
*/
test_mov_prop(BRW_CONDITIONAL_L,
BRW_REGISTER_TYPE_D,
BRW_REGISTER_TYPE_D,
- false);
+ true);
}
TEST_F(cmod_propagation_test, iadd_imov_g)
* 1: mov.g(8) null:D dest:D
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * 0: add.g(8) dest:D src0:D src1:D
*/
test_mov_prop(BRW_CONDITIONAL_G,
BRW_REGISTER_TYPE_D,
BRW_REGISTER_TYPE_D,
- false);
+ true);
}
TEST_F(cmod_propagation_test, iadd_imov_le)
* 1: mov.le(8) null:D dest:D
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * 0: add.le(8) dest:D src0:D src1:D
*/
test_mov_prop(BRW_CONDITIONAL_LE,
BRW_REGISTER_TYPE_D,
BRW_REGISTER_TYPE_D,
- false);
+ true);
}
TEST_F(cmod_propagation_test, iadd_imov_ge)
* 1: mov.ge(8) null:D dest:D
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * 0: add.ge(8) dest:D src0:D src1:D
*/
test_mov_prop(BRW_CONDITIONAL_GE,
BRW_REGISTER_TYPE_D,
BRW_REGISTER_TYPE_D,
- false);
+ true);
}
TEST_F(cmod_propagation_test, iadd_umov_nz)
* 1: mov.z(8) null:UD dest:D
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
- *
- * In spite of the type conversion, the Z test would be safe to propagate.
+ * 0: add.z(8) dest:D src0:D src1:D
*/
test_mov_prop(BRW_CONDITIONAL_Z,
BRW_REGISTER_TYPE_D,
BRW_REGISTER_TYPE_UD,
- false);
+ true);
}
TEST_F(cmod_propagation_test, iadd_umov_l)
* 1: mov.l(8) null:UD dest:D
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* Due to the signed-to-usigned type conversion, the conditional modifier
* cannot be propagated to the ADD without changing at least the
* 1: mov.g(8) null:UD dest:D
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* In spite of the type conversion, this could be made to work by
* propagating NZ instead of G to the ADD.
* 1: mov.le(8) null:UD dest:D
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* In spite of the type conversion, this could be made to work by
* propagating Z instead of LE to the ADD.
* 1: mov.ge(8) null:UD dest:D
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* Due to the signed-to-usigned type conversion, the conditional modifier
* cannot be propagated to the ADD without changing at least the
* 1: mov.z(8) null:UD dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* The MOV changes the type from float to unsigned integer. If dest is in
* the range [-Inf, 1), the conversion will clamp it to zero. If dest is
* 1: mov.l(8) null:UD dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* The MOV changes the type from float to unsigned integer. If dest is in
* the range [-Inf, 1), the conversion will clamp it to zero. If dest is
* 1: mov.g(8) null:UD dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* The MOV changes the type from float to unsigned integer. If dest is in
* the range [-Inf, 1), the conversion will clamp it to zero. If dest is
* 1: mov.le(8) null:UD dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* The MOV changes the type from float to unsigned integer. If dest is in
* the range [-Inf, 1), the conversion will clamp it to zero. If dest is
* 1: mov.ge(8) null:UD dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* The MOV changes the type from float to unsigned integer. If dest is in
* the range [-Inf, 1), the conversion will clamp it to zero. If dest is
* 1: mov.z(8) null:D dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* The MOV changes the type from float to signed integer. If dest is in
* the range (-1, 1), the conversion will clamp it to zero. If dest is
* 1: mov.l(8) null:D dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* The MOV changes the type from float to signed integer. If dest is in
* the range (-1, 1), the conversion will clamp it to zero. If dest is
* 1: mov.g(8) null:D dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* The MOV changes the type from float to signed integer. If dest is in
* the range (-1, 1), the conversion will clamp it to zero. If dest is
* 1: mov.le(8) null:D dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* The MOV changes the type from float to signed integer. If dest is in
* the range (-1, 1), the conversion will clamp it to zero. If dest is
* 1: mov.ge(8) null:D dest:F
*
* = After =
- * No changes. cmod propagation bails on every MOV except MOV.NZ.
+ * No changes.
*
* The MOV changes the type from float to signed integer. If dest is in
* the range (-1, 1), the conversion will clamp it to zero. If dest is
* = After =
* 0: add.sat.le.f0(8) dest src0 src1
*/
-#if 1
- /* cmod propagation bails on every MOV except MOV.NZ. */
- test_saturate_prop(BRW_CONDITIONAL_Z, BRW_CONDITIONAL_Z,
- BRW_OPCODE_MOV,
- BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
- false);
-#else
test_saturate_prop(BRW_CONDITIONAL_Z, BRW_CONDITIONAL_LE,
BRW_OPCODE_MOV,
BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
true);
-#endif
}
TEST_F(cmod_propagation_test, float_saturate_g_cmp)
* = After =
* 0: add.sat.g.f0(8) dest src0 src1
*/
-#if 1
- /* cmod propagation bails on every MOV except MOV.NZ. */
- test_saturate_prop(BRW_CONDITIONAL_G, BRW_CONDITIONAL_G,
- BRW_OPCODE_MOV,
- BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
- false);
-#else
test_saturate_prop(BRW_CONDITIONAL_G, BRW_CONDITIONAL_G,
BRW_OPCODE_MOV,
BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
true);
-#endif
}
TEST_F(cmod_propagation_test, float_saturate_le_cmp)
* = After =
* 0: add.sat.le.f0(8) dest src0 src1
*/
-#if 1
- /* cmod propagation bails on every MOV except MOV.NZ. */
- test_saturate_prop(BRW_CONDITIONAL_LE, BRW_CONDITIONAL_LE,
- BRW_OPCODE_MOV,
- BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
- false);
-#else
test_saturate_prop(BRW_CONDITIONAL_LE, BRW_CONDITIONAL_LE,
BRW_OPCODE_MOV,
BRW_REGISTER_TYPE_F, BRW_REGISTER_TYPE_F,
true);
-#endif
}
TEST_F(cmod_propagation_test, float_saturate_l_cmp)