Skip to content

Commit f3e2270

Browse files
authored
[SM6.10] LinAlg: Update MatrixAccumulateToMemory to match spec (#8658)
Adds the new parameter to MatrixAccumulateToMemory as specified in microsoft/hlsl-specs#879 Fixes #8637
1 parent 1f8a14a commit f3e2270

24 files changed

Lines changed: 92 additions & 60 deletions

File tree

include/dxc/DXIL/DxilInstructions.h

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10867,7 +10867,7 @@ struct DxilInst_LinAlgMatrixAccumulateToMemory {
1086710867
// Validation support
1086810868
bool isAllowed() const { return true; }
1086910869
bool isArgumentListValid() const {
10870-
if (6 != llvm::dyn_cast<llvm::CallInst>(Instr)->getNumArgOperands())
10870+
if (7 != llvm::dyn_cast<llvm::CallInst>(Instr)->getNumArgOperands())
1087110871
return false;
1087210872
return true;
1087310873
}
@@ -10877,21 +10877,24 @@ struct DxilInst_LinAlgMatrixAccumulateToMemory {
1087710877
enum OperandIdx {
1087810878
arg_matrix = 1,
1087910879
arg_memory = 2,
10880-
arg_offset = 3,
10881-
arg_stride = 4,
10882-
arg_layout = 5,
10880+
arg_targetType = 3,
10881+
arg_offset = 4,
10882+
arg_stride = 5,
10883+
arg_layout = 6,
1088310884
};
1088410885
// Accessors
1088510886
llvm::Value *get_matrix() const { return Instr->getOperand(1); }
1088610887
void set_matrix(llvm::Value *val) { Instr->setOperand(1, val); }
1088710888
llvm::Value *get_memory() const { return Instr->getOperand(2); }
1088810889
void set_memory(llvm::Value *val) { Instr->setOperand(2, val); }
10889-
llvm::Value *get_offset() const { return Instr->getOperand(3); }
10890-
void set_offset(llvm::Value *val) { Instr->setOperand(3, val); }
10891-
llvm::Value *get_stride() const { return Instr->getOperand(4); }
10892-
void set_stride(llvm::Value *val) { Instr->setOperand(4, val); }
10893-
llvm::Value *get_layout() const { return Instr->getOperand(5); }
10894-
void set_layout(llvm::Value *val) { Instr->setOperand(5, val); }
10890+
llvm::Value *get_targetType() const { return Instr->getOperand(3); }
10891+
void set_targetType(llvm::Value *val) { Instr->setOperand(3, val); }
10892+
llvm::Value *get_offset() const { return Instr->getOperand(4); }
10893+
void set_offset(llvm::Value *val) { Instr->setOperand(4, val); }
10894+
llvm::Value *get_stride() const { return Instr->getOperand(5); }
10895+
void set_stride(llvm::Value *val) { Instr->setOperand(5, val); }
10896+
llvm::Value *get_layout() const { return Instr->getOperand(6); }
10897+
void set_layout(llvm::Value *val) { Instr->setOperand(6, val); }
1089510898
};
1089610899

1089710900
/// This instruction Outer products an M sized vector and a N sized vector

lib/DXIL/DxilOperations.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6669,6 +6669,7 @@ Function *OP::GetOpFunc(OpCode opCode, Type *pOverloadType) {
66696669
A(pI32);
66706670
A(pI32);
66716671
A(pI32);
6672+
A(pI32);
66726673
break;
66736674
case OpCode::LinAlgMatrixOuterProduct:
66746675
A(EXT(0));

lib/HLSL/HLOperationLower.cpp

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7115,7 +7115,7 @@ Value *TranslateLinAlgMatrixLoadFromMemory(
71157115
return nullptr;
71167116
}
71177117

7118-
Value *TranslateLinAlgMatrixAccumStoreToMemory(
7118+
Value *TranslateLinAlgMatrixStoreToMemory(
71197119
CallInst *CI, IntrinsicOp IOP, OP::OpCode OpCode,
71207120
HLOperationLowerHelper &Helper, HLObjectOperationLowerHelper *ObjHelper,
71217121
bool &Translated) {
@@ -7139,6 +7139,31 @@ Value *TranslateLinAlgMatrixAccumStoreToMemory(
71397139
{OpArg, Matrix, ArrPtr, Offset, Stride, Layout});
71407140
}
71417141

7142+
Value *TranslateLinAlgMatrixAccumToMemory(
7143+
CallInst *CI, IntrinsicOp IOP, OP::OpCode OpCode,
7144+
HLOperationLowerHelper &Helper, HLObjectOperationLowerHelper *ObjHelper,
7145+
bool &Translated) {
7146+
hlsl::OP *HlslOp = &Helper.hlslOP;
7147+
IRBuilder<> Builder(CI);
7148+
7149+
Value *Matrix = CI->getArgOperand(1);
7150+
Value *Arr = CI->getArgOperand(2);
7151+
Value *TargetType = CI->getArgOperand(3);
7152+
Value *Offset = CI->getArgOperand(4);
7153+
Value *Stride = CI->getArgOperand(5);
7154+
Value *Layout = CI->getArgOperand(6);
7155+
7156+
Value *Zero = Builder.getInt32(0);
7157+
Value *ArrPtr = Builder.CreateGEP(Arr, {Zero, Zero});
7158+
Type *ArrEltTy = ArrPtr->getType()->getPointerElementType();
7159+
7160+
Constant *OpArg = HlslOp->GetU32Const((unsigned)OpCode);
7161+
Function *DxilFunc = HlslOp->GetOpFunc(OpCode, {Matrix->getType(), ArrEltTy});
7162+
7163+
return Builder.CreateCall(
7164+
DxilFunc, {OpArg, Matrix, ArrPtr, TargetType, Offset, Stride, Layout});
7165+
}
7166+
71427167
Value *TranslateLinAlgConvert(CallInst *CI, IntrinsicOp IOP, OP::OpCode OpCode,
71437168
HLOperationLowerHelper &Helper,
71447169
HLObjectOperationLowerHelper *ObjHelper,
@@ -7948,7 +7973,7 @@ constexpr IntrinsicLower gLowerTable[] = {
79487973
TranslateLinAlgMatrixAccumStoreToDescriptor,
79497974
DXIL::OpCode::LinAlgMatrixStoreToDescriptor},
79507975
{IntrinsicOp::IOP___builtin_LinAlg_MatrixStoreToMemory,
7951-
TranslateLinAlgMatrixAccumStoreToMemory,
7976+
TranslateLinAlgMatrixStoreToMemory,
79527977
DXIL::OpCode::LinAlgMatrixStoreToMemory},
79537978
{IntrinsicOp::IOP___builtin_LinAlg_MatrixAccumulate,
79547979
TranslateLinAlgMatrixAccumulate, DXIL::OpCode::LinAlgMatrixAccumulate},
@@ -7963,7 +7988,7 @@ constexpr IntrinsicLower gLowerTable[] = {
79637988
TranslateLinAlgMatrixAccumStoreToDescriptor,
79647989
DXIL::OpCode::LinAlgMatrixAccumulateToDescriptor},
79657990
{IntrinsicOp::IOP___builtin_LinAlg_MatrixAccumulateToMemory,
7966-
TranslateLinAlgMatrixAccumStoreToMemory,
7991+
TranslateLinAlgMatrixAccumToMemory,
79677992
DXIL::OpCode::LinAlgMatrixAccumulateToMemory},
79687993
{IntrinsicOp::IOP___builtin_LinAlg_MatrixOuterProduct,
79697994
TranslateLinAlgMatrixOuterProduct, DXIL::OpCode::LinAlgMatrixOuterProduct},

tools/clang/lib/Headers/hlsl/dx/linalg.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -354,8 +354,8 @@ class Matrix {
354354
void>::type
355355
InterlockedAccumulate(groupshared T Arr[Size], uint StartIdx, uint Stride,
356356
MatrixLayoutEnum Layout) {
357-
__builtin_LinAlg_MatrixAccumulateToMemory(__handle, Arr, StartIdx, Stride,
358-
Layout);
357+
__builtin_LinAlg_MatrixAccumulateToMemory(__handle, Arr, 0, StartIdx,
358+
Stride, Layout);
359359
}
360360

361361
template <ComponentEnum CompTy, MatrixUseEnum UseLocal = Use>

tools/clang/test/CodeGenDXIL/hlsl/linalg/api/matrix-class.hlsl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ void main(uint ID : SV_GroupID)
138138
// CHECK: call void @dx.op.linAlgMatrixAccumulateToMemory.mC9M4N4U2S1.f32(i32 -2147483620,
139139
// CHECK-SAME: %dx.types.LinAlgMatrixC9M4N4U2S1 %[[ACCUM0]],
140140
// CHECK-SAME: float addrspace(3)* getelementptr inbounds ([256 x float],
141-
// CHECK-SAME: [256 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 16, i32 1)
142-
// CHECK-SAME: ; LinAlgMatrixAccumulateToMemory(matrix,memory,offset,stride,layout)
141+
// CHECK-SAME: [256 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 16, i32 1)
142+
// CHECK-SAME: ; LinAlgMatrixAccumulateToMemory(matrix,memory,targetType,offset,stride,layout)
143143
AccMat1.InterlockedAccumulate(SharedArr, 0, 16, MatrixLayoutEnum::ColMajor);
144144

145145
// Matrix::Accumulate

tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixaccumulatetomemory/nominal.hlsl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ void main() {
1111

1212
// CHECK: call void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U1S2.f32(i32 -2147483620,
1313
// CHECK-SAME: %dx.types.LinAlgMatrixC4M5N4U1S2 %{{.*}}, float addrspace(3)* getelementptr inbounds ([64 x float],
14-
// CHECK-SAME: [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 1, i32 2, i32 3)
15-
// CHECK-SAME: ; LinAlgMatrixAccumulateToMemory(matrix,memory,offset,stride,layout)
14+
// CHECK-SAME: [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 9, i32 1, i32 2, i32 3)
15+
// CHECK-SAME: ; LinAlgMatrixAccumulateToMemory(matrix,memory,targetType,offset,stride,layout)
1616

1717
// CHECK2: call void @"dx.hl.op..void (i32, %dx.types.LinAlgMatrixC4M5N4U1S2,
18-
// CHECK2-SAME: [64 x float] addrspace(3)*, i32, i32, i32)"(i32 416,
18+
// CHECK2-SAME: [64 x float] addrspace(3)*, i32, i32, i32, i32)"(i32 416,
1919
// CHECK2-SAME: %dx.types.LinAlgMatrixC4M5N4U1S2 %{{.*}}, [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA",
20-
// CHECK2-SAME: i32 1, i32 2, i32 3)
20+
// CHECK2-SAME: i32 9, i32 1, i32 2, i32 3)
2121
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(4, 5, 4, 1, 2)]] mat;
2222
__builtin_LinAlg_FillMatrix(mat, 1);
23-
__builtin_LinAlg_MatrixAccumulateToMemory(mat, SharedArr, 1, 2, 3);
23+
__builtin_LinAlg_MatrixAccumulateToMemory(mat, SharedArr, 9, 1, 2, 3);
2424
}

tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-as.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ define void @mainAS() {
116116
call void @dx.op.linAlgMatrixStoreToDescriptor.mC4M5N4U0S2(i32 -2147483628, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, %dx.types.Handle %handle, i32 1, i32 2, i32 3, i32 4) ; LinAlgMatrixStoreToDescriptor(matrix,handle,offset,stride,layout,align)
117117

118118
; dx.op.linAlgMatrixAccumulateToMemory
119-
call void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32 -2147483620, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0) ; LinAlgMatrixAccumulateToMemory(matrix,memory,offset,stride,layout)
119+
call void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32 -2147483620, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0, i32 0) ; LinAlgMatrixAccumulateToMemory(matrix,memory,targetType,offset,stride,layout)
120120

121121
; dx.op.linAlgMatrixLoadFromMemory
122122
%v15 = call %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixLoadFromMemory.mC4M5N4U0S2.f32(i32 -2147483633, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0) ; LinAlgMatrixLoadFromMemory(memory,offset,stride,layout)
@@ -191,7 +191,7 @@ declare %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixSetElement.mC4M5N4U0
191191
declare void @dx.op.linAlgMatrixStoreToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32) #0
192192

193193
; Function Attrs: nounwind
194-
declare void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32) #0
194+
declare void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32, i32) #0
195195

196196
; Function Attrs: nounwind
197197
declare %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixLoadFromMemory.mC4M5N4U0S2.f32(i32, float addrspace(3)*, i32, i32, i32) #0

tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-cs.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ define void @mainCS() {
8989
call void @dx.op.linAlgMatrixStoreToDescriptor.mC4M5N4U0S2(i32 -2147483628, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, %dx.types.Handle %handle, i32 1, i32 2, i32 3, i32 4) ; LinAlgMatrixStoreToDescriptor(matrix,handle,offset,stride,layout,align)
9090

9191
; dx.op.linAlgMatrixAccumulateToMemory
92-
call void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32 -2147483620, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0) ; LinAlgMatrixAccumulateToMemory(matrix,memory,offset,stride,layout)
92+
call void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32 -2147483620, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0, i32 0) ; LinAlgMatrixAccumulateToMemory(matrix,memory,targetType,offset,stride,layout)
9393

9494
; dx.op.linAlgMatrixLoadFromMemory
9595
%v15 = call %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixLoadFromMemory.mC4M5N4U0S2.f32(i32 -2147483633, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0) ; LinAlgMatrixLoadFromMemory(memory,offset,stride,layout)
@@ -164,7 +164,7 @@ declare %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixSetElement.mC4M5N4U0
164164
declare void @dx.op.linAlgMatrixStoreToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32) #0
165165

166166
; Function Attrs: nounwind
167-
declare void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32) #0
167+
declare void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32, i32) #0
168168

169169
; Function Attrs: nounwind
170170
declare %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixLoadFromMemory.mC4M5N4U0S2.f32(i32, float addrspace(3)*, i32, i32, i32) #0

tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-ds.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ define void @MainDS() {
117117
call void @dx.op.linAlgMatrixStoreToDescriptor.mC4M5N4U0S2(i32 -2147483628, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, %dx.types.Handle %handle, i32 1, i32 2, i32 3, i32 4) ; LinAlgMatrixStoreToDescriptor(matrix,handle,offset,stride,layout,align)
118118

119119
; dx.op.linAlgMatrixAccumulateToMemory
120-
call void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32 -2147483620, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0) ; LinAlgMatrixAccumulateToMemory(matrix,memory,offset,stride,layout)
120+
call void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32 -2147483620, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0, i32 0) ; LinAlgMatrixAccumulateToMemory(matrix,memory,targetType,offset,stride,layout)
121121

122122
; dx.op.linAlgMatrixLoadFromMemory
123123
%v15 = call %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixLoadFromMemory.mC4M5N4U0S2.f32(i32 -2147483633, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0) ; LinAlgMatrixLoadFromMemory(memory,offset,stride,layout)
@@ -197,7 +197,7 @@ declare %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixSetElement.mC4M5N4U0
197197
declare void @dx.op.linAlgMatrixStoreToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32) #0
198198

199199
; Function Attrs: nounwind
200-
declare void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32) #0
200+
declare void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32, i32) #0
201201

202202
; Function Attrs: nounwind
203203
declare %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixLoadFromMemory.mC4M5N4U0S2.f32(i32, float addrspace(3)*, i32, i32, i32) #0

tools/clang/test/LitDXILValidation/LinAlgMatrix/linalgmatrix-gs.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ define void @MainGS() {
117117
call void @dx.op.linAlgMatrixStoreToDescriptor.mC4M5N4U0S2(i32 -2147483628, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, %dx.types.Handle %handle, i32 1, i32 2, i32 3, i32 4) ; LinAlgMatrixStoreToDescriptor(matrix,handle,offset,stride,layout,align)
118118

119119
; dx.op.linAlgMatrixAccumulateToMemory
120-
call void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32 -2147483620, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0) ; LinAlgMatrixAccumulateToMemory(matrix,memory,offset,stride,layout)
120+
call void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32 -2147483620, %dx.types.LinAlgMatrixC4M5N4U0S2 %v14, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0, i32 0) ; LinAlgMatrixAccumulateToMemory(matrix,memory,targetType,offset,stride,layout)
121121

122122
; dx.op.linAlgMatrixLoadFromMemory
123123
%v15 = call %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixLoadFromMemory.mC4M5N4U0S2.f32(i32 -2147483633, float addrspace(3)* getelementptr inbounds ([64 x float], [64 x float] addrspace(3)* @"\01?SharedArr@@3PAMA", i32 0, i32 0), i32 0, i32 0, i32 0) ; LinAlgMatrixLoadFromMemory(memory,offset,stride,layout)
@@ -196,7 +196,7 @@ declare %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixSetElement.mC4M5N4U0
196196
declare void @dx.op.linAlgMatrixStoreToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32) #0
197197

198198
; Function Attrs: nounwind
199-
declare void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32) #0
199+
declare void @dx.op.linAlgMatrixAccumulateToMemory.mC4M5N4U0S2.f32(i32, %dx.types.LinAlgMatrixC4M5N4U0S2, float addrspace(3)*, i32, i32, i32, i32) #0
200200

201201
; Function Attrs: nounwind
202202
declare %dx.types.LinAlgMatrixC4M5N4U0S2 @dx.op.linAlgMatrixLoadFromMemory.mC4M5N4U0S2.f32(i32, float addrspace(3)*, i32, i32, i32) #0

0 commit comments

Comments
 (0)