summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2014-07-15 21:27:08 -0700
committerKenneth Graunke <kenneth@whitecape.org>2014-07-15 22:12:15 -0700
commita2de6562783ea87ca5fbcb67dbd36c2f345f2054 (patch)
tree734c685741d7d9c0f15730afa5ec846b497962fa /src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
parentcf1b5eee7f36af29d1d5caba3538ad4985e51f81 (diff)
downloadexternal_mesa3d-a2de6562783ea87ca5fbcb67dbd36c2f345f2054.zip
external_mesa3d-a2de6562783ea87ca5fbcb67dbd36c2f345f2054.tar.gz
external_mesa3d-a2de6562783ea87ca5fbcb67dbd36c2f345f2054.tar.bz2
i965: Don't copy propagate abs into Broadwell logic instructions.
It's not clear what abs on logical instructions means on Broadwell, and it doesn't appear to do anything sensible. Fixes 270 Piglit tests (the bitand/bitor/bitxor tests with abs). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81157 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Matt Turner <mattst88@gmail.com> Cc: "10.2" <mesa-stable@lists.freedesktop.org>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
index 10e19d8..62e64a6 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
@@ -338,12 +338,9 @@ fs_visitor::try_copy_propagate(fs_inst *inst, int arg, acp_entry *entry)
if (has_source_modifiers && entry->dst.type != inst->src[arg].type)
return false;
- if (brw->gen >= 8) {
- if (entry->src.negate) {
- if (is_logic_op(inst->opcode)) {
- return false;
- }
- }
+ if (brw->gen >= 8 && (entry->src.negate || entry->src.abs) &&
+ is_logic_op(inst->opcode)) {
+ return false;
}
inst->src[arg].file = entry->src.file;