summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_vec4_cse.cpp')
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_cse.cpp24
1 files changed, 1 insertions, 23 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp b/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp
index 5fb8f31..2c29d9f 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp
@@ -89,28 +89,6 @@ is_expression(const vec4_instruction *const inst)
}
static bool
-is_expression_commutative(const vec4_instruction *inst)
-{
- switch (inst->opcode) {
- case BRW_OPCODE_AND:
- case BRW_OPCODE_OR:
- case BRW_OPCODE_XOR:
- case BRW_OPCODE_ADD:
- case BRW_OPCODE_MUL:
- return true;
- case BRW_OPCODE_SEL:
- /* MIN and MAX are commutative. */
- if (inst->conditional_mod == BRW_CONDITIONAL_GE ||
- inst->conditional_mod == BRW_CONDITIONAL_L) {
- return true;
- }
- /* fallthrough */
- default:
- return false;
- }
-}
-
-static bool
operands_match(const vec4_instruction *a, const vec4_instruction *b)
{
const src_reg *xs = a->src;
@@ -120,7 +98,7 @@ operands_match(const vec4_instruction *a, const vec4_instruction *b)
return xs[0].equals(ys[0]) &&
((xs[1].equals(ys[1]) && xs[2].equals(ys[2])) ||
(xs[2].equals(ys[1]) && xs[1].equals(ys[2])));
- } else if (!is_expression_commutative(a)) {
+ } else if (!a->is_commutative()) {
return xs[0].equals(ys[0]) && xs[1].equals(ys[1]) && xs[2].equals(ys[2]);
} else {
return (xs[0].equals(ys[0]) && xs[1].equals(ys[1])) ||