Mesa (master): i965: Add is_3src() to backend_instruction.

Matt Turner mattst88 at kemper.freedesktop.org
Sat Jan 24 01:56:21 UTC 2015


Module: Mesa
Branch: master
Commit: 215b081c2ac5d7a9d1e6a46a52633997f8ae3576
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=215b081c2ac5d7a9d1e6a46a52633997f8ae3576

Author: Matt Turner <mattst88 at gmail.com>
Date:   Mon Dec 29 19:29:21 2014 -0800

i965: Add is_3src() to backend_instruction.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/i965/brw_shader.cpp                |    6 ++++++
 src/mesa/drivers/dri/i965/brw_shader.h                  |    1 +
 src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp |    6 +-----
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index cbdf976..be30d97 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -678,6 +678,12 @@ backend_reg::is_accumulator() const
 }
 
 bool
+backend_instruction::is_3src() const
+{
+   return opcode < ARRAY_SIZE(opcode_descs) && opcode_descs[opcode].nsrc == 3;
+}
+
+bool
 backend_instruction::is_tex() const
 {
    return (opcode == SHADER_OPCODE_TEX ||
diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h
index 54d770e..6fc86e1 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.h
+++ b/src/mesa/drivers/dri/i965/brw_shader.h
@@ -82,6 +82,7 @@ struct bblock_t;
 
 #ifdef __cplusplus
 struct backend_instruction : public exec_node {
+   bool is_3src() const;
    bool is_tex() const;
    bool is_math() const;
    bool is_control_flow() const;
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
index 9e47dd9..bf15941 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
@@ -308,11 +308,7 @@ try_copy_propagate(struct brw_context *brw, vec4_instruction *inst,
        inst->opcode == SHADER_OPCODE_GEN4_SCRATCH_WRITE)
       return false;
 
-   bool is_3src_inst = (inst->opcode == BRW_OPCODE_LRP ||
-                        inst->opcode == BRW_OPCODE_MAD ||
-                        inst->opcode == BRW_OPCODE_BFE ||
-                        inst->opcode == BRW_OPCODE_BFI2);
-   if (is_3src_inst && value.file == UNIFORM)
+   if (inst->is_3src() && value.file == UNIFORM)
       return false;
 
    if (inst->is_send_from_grf())




More information about the mesa-commit mailing list