Create __builtin_LinAlg_MatrixOuterProduct(MatrixRef, vector, vector) and lower it to dx.op.matrixOuterProduct 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
TranslateLinAlgMatrixOuterProduct
- Update the mapping table for
IOP___builtin_LinAlg_MatrixOuterProduct from EmptyLower to TranslateLinAlgMatrixOuterProduct
- Write frontend tests in
tools/clang/test/SemaHLSL/hlsl/linalg/builtins/matrixouterproduct
- 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/matrixouterproduct
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.
Create
__builtin_LinAlg_MatrixOuterProduct(MatrixRef, vector, vector)and lower it todx.op.matrixOuterProductas specified in https://github.com/microsoft/hlsl-specs/blob/main/proposals/0035-linalg-matrix.mdChanges required:
utils/hct/gen_intrin_main.txtlib/HLSL/HLOperationLower.cppTranslateLinAlgMatrixOuterProductIOP___builtin_LinAlg_MatrixOuterProductfromEmptyLowertoTranslateLinAlgMatrixOuterProducttools/clang/test/SemaHLSL/hlsl/linalg/builtins/matrixouterproducttools/clang/test/SemaHLSL/hlsl/linalg/builtinsutils/hct/hctdb.py(be sure to check allowed stages)tools/clang/test/CodeGenDXIL/hlsl/linalg/builtinstools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixouterproductNote: 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.