Mesa (master): intel/fs: Lower dword integer multiplies on XeHP.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Apr 16 08:39:03 UTC 2021


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

Author: Rafael Antognolli <rafael.antognolli at intel.com>
Date:   Tue Jan 29 16:34:30 2019 -0800

intel/fs: Lower dword integer multiplies on XeHP.

>From the BSpec:

 "When multiplying DW X DW, resulting dst can only be QW precision. If
 DW precision is required at output than MUL/MACH macro must be used."

So for now simply lower it. We might want to revisit it later.

Reviewed-by: Francisco Jerez <currojerez at riseup.net>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000>

---

 src/intel/compiler/brw_fs.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index 9cd9a0cd926..00499e92759 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -4231,7 +4231,8 @@ fs_visitor::lower_integer_multiplication()
          } else if (!inst->dst.is_accumulator() &&
                     (inst->dst.type == BRW_REGISTER_TYPE_D ||
                      inst->dst.type == BRW_REGISTER_TYPE_UD) &&
-                    !devinfo->has_integer_dword_mul) {
+                    (!devinfo->has_integer_dword_mul ||
+                     devinfo->verx10 >= 125)) {
             lower_mul_dword_inst(inst, block);
             inst->remove(block);
             progress = true;



More information about the mesa-commit mailing list