Skip to content

Implement Matrix VectorMultiplyAdd #7909

@V-FEXrt

Description

@V-FEXrt

Create __builtin_LinAlg_MatrixVectorMultiplyAdd(MatrixRef, vector, interp, bias, bias interp) and lower it to dx.op.matVecMulAdd as specified in https://github.com/microsoft/hlsl-specs/blob/main/proposals/0035-linalg-matrix.md

Changes required:

  • If necessary, update the intrinsic definition in utils/hct/gen_intrin_main.txt
  • In lib/HLSL/HLOperationLower.cpp
    • Create a new lowering function TranslateLinAlgMatrixVectorMultiplyAdd
    • Update the mapping table for IOP___builtin_LinAlg_MatrixVectorMultiplyAdd from EmptyLower to TranslateLinAlgMatrixVectorMultiplyAdd
  • Write frontend tests in tools/clang/test/SemaHLSL/hlsl/linalg/builtins/matrixvecmuladd
  • Update frontend tests in tools/clang/test/SemaHLSL/hlsl/linalg/builtins
  • If necessary, update the opcode definition in utils/hct/hctdb.py (be sure to check allowed stages)
  • Update codegen tests in tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins
  • For complex ops, write codegen tests in tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixvecmuladd

Note: The spec is not final therefore this issue may fall out of date. The spec is the source of truth and should be referenced during implementation.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions