Mesa (master): i965/fs: Allow CSE on math opcodes on Gen6+.

Kenneth Graunke kwg at kemper.freedesktop.org
Tue Jun 10 23:39:04 UTC 2014


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

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu Jul 25 00:30:05 2013 -0700

i965/fs: Allow CSE on math opcodes on Gen6+.

total instructions in shared programs: 2081469 -> 2081248 (-0.01%)
instructions in affected programs:     22606 -> 22385 (-0.98%)
No programs were hurt by this patch.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Matt Turner <mattst88 at gmail.com>
Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

---

 src/mesa/drivers/dri/i965/brw_fs_cse.cpp |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
index 94f657d..e0e3935 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
@@ -73,6 +73,17 @@ is_expression(const fs_inst *const inst)
    case FS_OPCODE_CINTERP:
    case FS_OPCODE_LINTERP:
       return true;
+   case SHADER_OPCODE_RCP:
+   case SHADER_OPCODE_RSQ:
+   case SHADER_OPCODE_SQRT:
+   case SHADER_OPCODE_EXP2:
+   case SHADER_OPCODE_LOG2:
+   case SHADER_OPCODE_POW:
+   case SHADER_OPCODE_INT_QUOTIENT:
+   case SHADER_OPCODE_INT_REMAINDER:
+   case SHADER_OPCODE_SIN:
+   case SHADER_OPCODE_COS:
+      return inst->mlen == 0;
    default:
       return false;
    }




More information about the mesa-commit mailing list