i965/fs: Allow CSE on math opcodes on Gen6+.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 25 Jul 2013 07:30:05 +0000 (00:30 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 10 Jun 2014 23:38:25 +0000 (16:38 -0700)
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@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
src/mesa/drivers/dri/i965/brw_fs_cse.cpp

index 94f657dd213241df8b6cd04ebe846ff1c6d32b24..e0e3935a4a3fda77abc2590e5b653ad0fe583622 100644 (file)
@@ -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;
    }