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>
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -249,12 +249,9 @@ try_copy_propagate(struct brw_context *brw, vec4_instruction *inst,
|
||||
value.file != ATTR)
|
||||
return false;
|
||||
|
||||
if (brw->gen >= 8) {
|
||||
if (value.negate) {
|
||||
if (is_logic_op(inst->opcode)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (brw->gen >= 8 && (value.negate || value.abs) &&
|
||||
is_logic_op(inst->opcode)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (inst->src[arg].abs) {
|
||||
|
||||
Reference in New Issue
Block a user