intel/compiler: invert the logic of lower_integer_multiplication()

Invert the logic of how progress is handled: remove the continue
statements and mark progress inside the places where it actually
happens.

We're going to add a new lowering that also looks for BRW_OPCODE_MUL,
so inverting the logic here makes the resulting code much easier to
follow.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
This commit is contained in:
Paulo Zanoni
2019-07-10 17:03:48 -07:00
committed by Caio Marcelo de Oliveira Filho
parent 6ba4717924
commit 9217cf3b5e

View File

@@ -4062,23 +4062,20 @@ fs_visitor::lower_integer_multiplication()
foreach_block_and_inst_safe(block, fs_inst, inst, cfg) { foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
if (inst->opcode == BRW_OPCODE_MUL) { if (inst->opcode == BRW_OPCODE_MUL) {
if (inst->dst.is_accumulator() || if (!inst->dst.is_accumulator() &&
(inst->dst.type != BRW_REGISTER_TYPE_D && (inst->dst.type == BRW_REGISTER_TYPE_D ||
inst->dst.type != BRW_REGISTER_TYPE_UD)) inst->dst.type == BRW_REGISTER_TYPE_UD) &&
continue; !devinfo->has_integer_dword_mul) {
lower_mul_dword_inst(inst, block);
if (devinfo->has_integer_dword_mul) inst->remove(block);
continue; progress = true;
}
lower_mul_dword_inst(inst, block);
} else if (inst->opcode == SHADER_OPCODE_MULH) { } else if (inst->opcode == SHADER_OPCODE_MULH) {
lower_mulh_inst(inst, block); lower_mulh_inst(inst, block);
} else { inst->remove(block);
continue; progress = true;
} }
inst->remove(block);
progress = true;
} }
if (progress) if (progress)