Mesa (master): i965/fs: Relax type check in cmod propagation.
Matt Turner
mattst88 at kemper.freedesktop.org
Wed Apr 1 20:53:48 UTC 2015
Module: Mesa
Branch: master
Commit: a03d0ba78f33e43df2ca7a9e4c58fdc9fbc9876a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a03d0ba78f33e43df2ca7a9e4c58fdc9fbc9876a
Author: Matt Turner <mattst88 at gmail.com>
Date: Thu Mar 26 10:09:54 2015 -0700
i965/fs: Relax type check in cmod propagation.
The thing we want to avoid is int/float comparisons, but int/unsigned
comparisons with 0 are equivalent.
total instructions in shared programs: 6194829 -> 6193996 (-0.01%)
instructions in affected programs: 117192 -> 116359 (-0.71%)
helped: 471
Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>
---
src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
index 798fef3..469f2ea 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
@@ -111,7 +111,9 @@ opt_cmod_propagation_local(bblock_t *block)
break;
/* Comparisons operate differently for ints and floats */
- if (scan_inst->dst.type != inst->dst.type)
+ if (scan_inst->dst.type != inst->dst.type &&
+ (scan_inst->dst.type == BRW_REGISTER_TYPE_F ||
+ inst->dst.type == BRW_REGISTER_TYPE_F))
break;
/* If the instruction generating inst's source also wrote the
More information about the mesa-commit
mailing list