Mesa (master): i965/fs: Add support for the MAC instruction.

Matt Turner mattst88 at kemper.freedesktop.org
Thu Apr 17 05:44:56 UTC 2014


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

Author: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
Date:   Fri Mar 28 15:28:32 2014 +0200

i965/fs: Add support for the MAC instruction.

This allows us to generate the MAC (multiply-accumulate) instruction,
which can be used to implement some expressions in fewer instructions
than doing a series of MUL and ADDs.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Matt Turner <mattst88 at gmail.com>
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>

---

 src/mesa/drivers/dri/i965/brw_fs.cpp           |    1 +
 src/mesa/drivers/dri/i965/brw_fs_generator.cpp |    3 +++
 2 files changed, 4 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 075857f..c550c41 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -196,6 +196,7 @@ ALU3(MAD)
 ALU2_ACC(ADDC)
 ALU2_ACC(SUBB)
 ALU2(SEL)
+ALU2(MAC)
 
 /** Gen4 predicated IF. */
 fs_inst *
diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
index 1cf35b4..c6b4aae 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
@@ -1545,6 +1545,9 @@ fs_generator::generate_code(exec_list *instructions, FILE *dump_file)
          assert(brw->gen >= 7);
          brw_SUBB(p, dst, src[0], src[1]);
          break;
+      case BRW_OPCODE_MAC:
+         brw_MAC(p, dst, src[0], src[1]);
+         break;
 
       case BRW_OPCODE_BFE:
          assert(brw->gen >= 7);




More information about the mesa-commit mailing list