Create __builtin_LinAlg_MatrixAccumulateToMemory(MatrixRef, groupshared, int Offset, int Stride, int Layout) and lower it to dx.op.matrixAccumulateToMemory 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
TranslateLinAlgMatrixAccumulateToMemory
- Update the mapping table for
IOP___builtin_LinAlg_MatrixAccumulateToMemory from EmptyLower to TranslateLinAlgMatrixAccumulateToMemory
- Write frontend tests in
tools/clang/test/SemaHLSL/hlsl/linalg/builtins/matrixaccumulatetomemory
- 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/matrixaccumulatetomemory
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_MatrixAccumulateToMemory(MatrixRef, groupshared, int Offset, int Stride, int Layout)and lower it todx.op.matrixAccumulateToMemoryas specified in https://github.com/microsoft/hlsl-specs/blob/main/proposals/0035-linalg-matrix.mdChanges required:
utils/hct/gen_intrin_main.txtlib/HLSL/HLOperationLower.cppTranslateLinAlgMatrixAccumulateToMemoryIOP___builtin_LinAlg_MatrixAccumulateToMemoryfromEmptyLowertoTranslateLinAlgMatrixAccumulateToMemorytools/clang/test/SemaHLSL/hlsl/linalg/builtins/matrixaccumulatetomemorytools/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/matrixaccumulatetomemoryNote: 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.