Mesa (master): intel/compiler: invert the logic of lower_integer_multiplication()

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Aug 12 22:19:56 UTC 2019


Module: Mesa
Branch: master
Commit: 9217cf3b5e349f6fb09cfee23f0975398b0f6acb
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9217cf3b5e349f6fb09cfee23f0975398b0f6acb

Author: Paulo Zanoni <paulo.r.zanoni at intel.com>
Date:   Wed Jul 10 17:03:48 2019 -0700

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 at gmail.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>

---

 src/intel/compiler/brw_fs.cpp | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index 3db3332a208..ccf6c955202 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -4062,23 +4062,20 @@ fs_visitor::lower_integer_multiplication()
 
    foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
       if (inst->opcode == BRW_OPCODE_MUL) {
-         if (inst->dst.is_accumulator() ||
-             (inst->dst.type != BRW_REGISTER_TYPE_D &&
-              inst->dst.type != BRW_REGISTER_TYPE_UD))
-            continue;
-
-         if (devinfo->has_integer_dword_mul)
-            continue;
-
-         lower_mul_dword_inst(inst, block);
+         if (!inst->dst.is_accumulator() &&
+             (inst->dst.type == BRW_REGISTER_TYPE_D ||
+              inst->dst.type == BRW_REGISTER_TYPE_UD) &&
+             !devinfo->has_integer_dword_mul) {
+            lower_mul_dword_inst(inst, block);
+            inst->remove(block);
+            progress = true;
+         }
       } else if (inst->opcode == SHADER_OPCODE_MULH) {
          lower_mulh_inst(inst, block);
-      } else {
-         continue;
+         inst->remove(block);
+         progress = true;
       }
 
-      inst->remove(block);
-      progress = true;
    }
 
    if (progress)




More information about the mesa-commit mailing list