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

Author: Sviatoslav Peleshko <sviatoslav.peles...@globallogic.com>
Date:   Wed Oct 11 13:21:29 2023 +0300

intel/tools/i965_asm: Add dp4a and add3 instructions

Signed-off-by: Sviatoslav Peleshko <sviatoslav.peles...@globallogic.com>
Reviewed-by: Sagar Ghuge <sagar.gh...@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657>

---

 src/intel/tools/i965_gram.y | 8 ++++++++
 src/intel/tools/i965_lex.l  | 2 ++
 2 files changed, 10 insertions(+)

diff --git a/src/intel/tools/i965_gram.y b/src/intel/tools/i965_gram.y
index 3b94c76c364..c9f0c6cec6c 100644
--- a/src/intel/tools/i965_gram.y
+++ b/src/intel/tools/i965_gram.y
@@ -279,6 +279,12 @@ i965_asm_ternary_instruction(int opcode,
        case BRW_OPCODE_BFI2:
                brw_BFI2(p, dest, src0, src1, src2);
                break;
+       case BRW_OPCODE_DP4A:
+               brw_DP4A(p, dest, src0, src1, src2);
+               break;
+       case BRW_OPCODE_ADD3:
+               brw_ADD3(p, dest, src0, src1, src2);
+               break;
        default:
                fprintf(stderr, "Unsupported ternary opcode\n");
        }
@@ -957,6 +963,8 @@ ternaryopcodes:
        | BFI2
        | LRP
        | MAD
+       | DP4A
+       | ADD3
        ;
 
 /* Wait instruction */
diff --git a/src/intel/tools/i965_lex.l b/src/intel/tools/i965_lex.l
index 23b86037833..495c5ada74d 100644
--- a/src/intel/tools/i965_lex.l
+++ b/src/intel/tools/i965_lex.l
@@ -52,6 +52,7 @@ null          { BEGIN(REG); return NULL_TOKEN; }
 
  /* Opcodes */
 add            { yylval.integer = BRW_OPCODE_ADD; return ADD; }
+add3           { yylval.integer = BRW_OPCODE_ADD3; return ADD3; }
 addc           { yylval.integer = BRW_OPCODE_ADDC; return ADDC; }
 and            { yylval.integer = BRW_OPCODE_AND; return AND; }
 asr            { yylval.integer = BRW_OPCODE_ASR; return ASR; }
@@ -76,6 +77,7 @@ do            { yylval.integer = BRW_OPCODE_DO; return DO; }
 dp2            { yylval.integer = BRW_OPCODE_DP2; return DP2; }
 dp3            { yylval.integer = BRW_OPCODE_DP3; return DP3; }
 dp4            { yylval.integer = BRW_OPCODE_DP4; return DP4; }
+dp4a           { yylval.integer = BRW_OPCODE_DP4A; return DP4A; }
 dph            { yylval.integer = BRW_OPCODE_DPH; return DPH; }
 else           { yylval.integer = BRW_OPCODE_ELSE; return ELSE; }
 endif          { yylval.integer = BRW_OPCODE_ENDIF; return ENDIF; }

Reply via email to