Skip to content

Commit aba4445

Browse files
authored
[SM6.10][Bugfix] Add missing 64bit DXIL op overloads (#8354)
Fixes #8289 DXIL ops that accept numeric types were supposed to also accept 64 bit wide types. This PR update them. Changes in `lib/DXIL/DxilOperations.cpp` are generated
1 parent 56dcdbc commit aba4445

File tree

7 files changed

+139
-38
lines changed

7 files changed

+139
-38
lines changed

lib/DXIL/DxilOperations.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2838,8 +2838,8 @@ static const OP::OpCodeProperty ExperimentalOps_OpCodeProps[] = {
28382838
"linAlgFillMatrix",
28392839
Attribute::None,
28402840
2,
2841-
{{0x200}, {0x63}},
2842-
{{0x0}, {0x0}}}, // Overloads: o,hfwi
2841+
{{0x200}, {0xe7}},
2842+
{{0x0}, {0x0}}}, // Overloads: o,hfdwil
28432843
{OC::LinAlgCopyConvertMatrix,
28442844
"LinAlgCopyConvertMatrix",
28452845
OCC::LinAlgCopyConvertMatrix,
@@ -2862,8 +2862,8 @@ static const OP::OpCodeProperty ExperimentalOps_OpCodeProps[] = {
28622862
"linAlgMatrixLoadFromMemory",
28632863
Attribute::None,
28642864
2,
2865-
{{0x200}, {0x63}},
2866-
{{0x0}, {0x0}}}, // Overloads: o,hfwi
2865+
{{0x200}, {0xe7}},
2866+
{{0x0}, {0x0}}}, // Overloads: o,hfdwil
28672867
{OC::LinAlgMatrixLength,
28682868
"LinAlgMatrixLength",
28692869
OCC::LinAlgMatrixLength,
@@ -2886,16 +2886,16 @@ static const OP::OpCodeProperty ExperimentalOps_OpCodeProps[] = {
28862886
"linAlgMatrixGetElement",
28872887
Attribute::None,
28882888
2,
2889-
{{0x63}, {0x200}},
2890-
{{0x0}, {0x0}}}, // Overloads: hfwi,o
2889+
{{0xe7}, {0x200}},
2890+
{{0x0}, {0x0}}}, // Overloads: hfdwil,o
28912891
{OC::LinAlgMatrixSetElement,
28922892
"LinAlgMatrixSetElement",
28932893
OCC::LinAlgMatrixSetElement,
28942894
"linAlgMatrixSetElement",
28952895
Attribute::None,
28962896
3,
2897-
{{0x200}, {0x200}, {0x63}},
2898-
{{0x0}, {0x0}, {0x0}}}, // Overloads: o,o,hfwi
2897+
{{0x200}, {0x200}, {0xe7}},
2898+
{{0x0}, {0x0}, {0x0}}}, // Overloads: o,o,hfdwil
28992899
{OC::LinAlgMatrixStoreToDescriptor,
29002900
"LinAlgMatrixStoreToDescriptor",
29012901
OCC::LinAlgMatrixStoreToDescriptor,
@@ -2910,8 +2910,8 @@ static const OP::OpCodeProperty ExperimentalOps_OpCodeProps[] = {
29102910
"linAlgMatrixStoreToMemory",
29112911
Attribute::None,
29122912
2,
2913-
{{0x200}, {0x63}},
2914-
{{0x0}, {0x0}}}, // Overloads: o,hfwi
2913+
{{0x200}, {0xe7}},
2914+
{{0x0}, {0x0}}}, // Overloads: o,hfdwil
29152915
{OC::LinAlgMatrixQueryAccumulatorLayout,
29162916
"LinAlgMatrixQueryAccumulatorLayout",
29172917
OCC::LinAlgMatrixQueryAccumulatorLayout,
@@ -2943,15 +2943,15 @@ static const OP::OpCodeProperty ExperimentalOps_OpCodeProps[] = {
29432943
Attribute::None,
29442944
3,
29452945
{{0x400}, {0x200}, {0x400}},
2946-
{{0x63}, {0x0}, {0x63}}}, // Overloads: <hfwi,o,<hfwi
2946+
{{0xe7}, {0x0}, {0xe7}}}, // Overloads: <hfdwil,o,<hfdwil
29472947
{OC::LinAlgMatVecMulAdd,
29482948
"LinAlgMatVecMulAdd",
29492949
OCC::LinAlgMatVecMulAdd,
29502950
"linAlgMatVecMulAdd",
29512951
Attribute::None,
29522952
4,
29532953
{{0x400}, {0x200}, {0x400}, {0x400}},
2954-
{{0x63}, {0x0}, {0x63}, {0x63}}}, // Overloads: <hfwi,o,<hfwi,<hfwi
2954+
{{0xe7}, {0x0}, {0xe7}, {0xe7}}}, // Overloads: <hfdwil,o,<hfdwil,<hfdwil
29552955
{OC::LinAlgMatrixAccumulateToDescriptor,
29562956
"LinAlgMatrixAccumulateToDescriptor",
29572957
OCC::LinAlgMatrixAccumulateToDescriptor,
@@ -2966,24 +2966,24 @@ static const OP::OpCodeProperty ExperimentalOps_OpCodeProps[] = {
29662966
"linAlgMatrixAccumulateToMemory",
29672967
Attribute::None,
29682968
2,
2969-
{{0x200}, {0x63}},
2970-
{{0x0}, {0x0}}}, // Overloads: o,hfwi
2969+
{{0x200}, {0xe7}},
2970+
{{0x0}, {0x0}}}, // Overloads: o,hfdwil
29712971
{OC::LinAlgMatrixOuterProduct,
29722972
"LinAlgMatrixOuterProduct",
29732973
OCC::LinAlgMatrixOuterProduct,
29742974
"linAlgMatrixOuterProduct",
29752975
Attribute::None,
29762976
3,
29772977
{{0x200}, {0x400}, {0x400}},
2978-
{{0x0}, {0x63}, {0x63}}}, // Overloads: o,<hfwi,<hfwi
2978+
{{0x0}, {0xe7}, {0xe7}}}, // Overloads: o,<hfdwil,<hfdwil
29792979
{OC::LinAlgConvert,
29802980
"LinAlgConvert",
29812981
OCC::LinAlgConvert,
29822982
"linAlgConvert",
29832983
Attribute::None,
29842984
2,
29852985
{{0x400}, {0x400}},
2986-
{{0x63}, {0x63}}}, // Overloads: <hfwi,<hfwi
2986+
{{0xe7}, {0xe7}}}, // Overloads: <hfdwil,<hfdwil
29872987

29882988
{OC::ReservedE0,
29892989
"ReservedE0",

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

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,18 @@ void main() {
1111
// CHECK-SAME: ; LinAlgConvert(inputVector,inputInterpretation,outputInterpretation)
1212

1313
// CHECK2: call void @"dx.hl.op..void (i32, <4 x i32>*, <4 x float>, i32, i32)"
14-
// CHECK2-SAME: (i32 422, <4 x i32>* %result, <4 x float> %{{.*}}, i32 1, i32 2)
15-
float4 vec = {9.0, 8.0, 7.0, 6.0};
16-
int4 result;
17-
__builtin_LinAlg_Convert(result, vec, 1, 2);
14+
// CHECK2-SAME: (i32 422, <4 x i32>* %result1, <4 x float> %{{.*}}, i32 1, i32 2)
15+
float4 vec1 = {9.0, 8.0, 7.0, 6.0};
16+
int4 result1;
17+
__builtin_LinAlg_Convert(result1, vec1, 1, 2);
18+
19+
// CHECK: %{{.*}} = call <4 x i64> @dx.op.linAlgConvert.v4i64.v4f64
20+
// CHECK-SAME: (i32 -2147483618, <4 x double> <double 9.000000e+00, double 8.000000e+00, double 7.000000e+00, double 6.000000e+00>, i32 1, i32 2)
21+
// CHECK-SAME: ; LinAlgConvert(inputVector,inputInterpretation,outputInterpretation)
22+
23+
// CHECK2: call void @"dx.hl.op..void (i32, <4 x i64>*, <4 x double>, i32, i32)"
24+
// CHECK2-SAME: (i32 422, <4 x i64>* %result2, <4 x double> %{{.*}}, i32 1, i32 2)
25+
double4 vec2 = {9.0, 8.0, 7.0, 6.0};
26+
vector<int64_t, 4> result2;
27+
__builtin_LinAlg_Convert(result2, vec2, 1, 2);
1828
}

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

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,32 @@ void main() {
1313
// CHECK2-SAME: (i32 402, %dx.types.LinAlgMatrixC4M5N4U1S2* {{.*}}, i32 5),
1414
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(4, 5, 4, 1, 2)]] mat1;
1515
__builtin_LinAlg_FillMatrix(mat1, 5);
16-
16+
1717
// CHECK: %{{.*}} = call %dx.types.LinAlgMatrixC5M3N4U0S0 @dx.op.linAlgFillMatrix.mC5M3N4U0S0.f32
1818
// CHECK-SAME: (i32 -2147483636, float {{.*}}) ; LinAlgFillMatrix(value)
19-
19+
2020
// CHECK2: call void @"dx.hl.op..void (i32, %dx.types.LinAlgMatrixC5M3N4U0S0*, float)"
2121
// CHECK2-SAME: (i32 402, %dx.types.LinAlgMatrixC5M3N4U0S0* {{.*}}, float 0x40091EB860000000)
2222
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(5, 3, 4, 0, 0)]] mat2;
2323
__builtin_LinAlg_FillMatrix(mat2, 3.14);
24+
25+
26+
// CHECK: %{{.*}} = call %dx.types.LinAlgMatrixC5M3N4U0S0 @dx.op.linAlgFillMatrix.mC5M3N4U0S0.f64
27+
// CHECK-SAME: (i32 -2147483636, double {{.*}}) ; LinAlgFillMatrix(value)
28+
29+
// CHECK2: call void @"dx.hl.op..void (i32, %dx.types.LinAlgMatrixC5M3N4U0S0*, double)"
30+
// CHECK2-SAME: (i32 402, %dx.types.LinAlgMatrixC5M3N4U0S0* {{.*}}, double %{{.+}})
31+
double dVal = 9.87;
32+
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(5, 3, 4, 0, 0)]] mat3;
33+
__builtin_LinAlg_FillMatrix(mat2, dVal);
34+
35+
36+
// CHECK: %{{.*}} = call %dx.types.LinAlgMatrixC5M3N4U0S0 @dx.op.linAlgFillMatrix.mC5M3N4U0S0.i64
37+
// CHECK-SAME: (i32 -2147483636, i64 {{.*}}) ; LinAlgFillMatrix(value)
38+
39+
// CHECK2: call void @"dx.hl.op..void (i32, %dx.types.LinAlgMatrixC5M3N4U0S0*, i64)"
40+
// CHECK2-SAME: (i32 402, %dx.types.LinAlgMatrixC5M3N4U0S0* {{.*}}, i64 %{{.+}})
41+
int64_t i64Val = 12345;
42+
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(5, 3, 4, 0, 0)]] mat4;
43+
__builtin_LinAlg_FillMatrix(mat2, i64Val);
2444
}

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,23 @@ void main() {
2525
// CHECK2-SAME: (i32 404, float* %elem2, %dx.types.LinAlgMatrixC4M5N4U1S2 {{.*}}, i32 1)
2626
float elem2;
2727
__builtin_LinAlg_MatrixGetElement(elem2, mat, 1);
28+
29+
// CHECK: call double @dx.op.linAlgMatrixGetElement.f64.mC4M5N4U1S2(i32 -2147483630,
30+
// CHECK-SAME: %dx.types.LinAlgMatrixC4M5N4U1S2 {{.*}}, i32 1)
31+
// CHECK-SAME: ; LinAlgMatrixGetElement(matrix,threadLocalIndex)
32+
33+
// CHECK2: call void @"dx.hl.op..void (i32, double*, %dx.types.LinAlgMatrixC4M5N4U1S2, i32)"
34+
// CHECK2-SAME: (i32 404, double* %elem3, %dx.types.LinAlgMatrixC4M5N4U1S2 {{.*}}, i32 1)
35+
double elem3;
36+
__builtin_LinAlg_MatrixGetElement(elem3, mat, 1);
37+
38+
39+
// CHECK: call i64 @dx.op.linAlgMatrixGetElement.i64.mC4M5N4U1S2(i32 -2147483630,
40+
// CHECK-SAME: %dx.types.LinAlgMatrixC4M5N4U1S2 {{.*}}, i32 1)
41+
// CHECK-SAME: ; LinAlgMatrixGetElement(matrix,threadLocalIndex)
42+
43+
// CHECK2: call void @"dx.hl.op..void (i32, i64*, %dx.types.LinAlgMatrixC4M5N4U1S2, i32)"
44+
// CHECK2-SAME: (i32 404, i64* %elem4, %dx.types.LinAlgMatrixC4M5N4U1S2 {{.*}}, i32 1)
45+
int64_t elem4;
46+
__builtin_LinAlg_MatrixGetElement(elem4, mat, 1);
2847
}

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

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,36 @@
66
void main() {
77
// CHECK-LABEL: define void @main()
88

9-
float4 lhs = {1,2,3,4};
10-
float4 rhs = {4,3,2,1};
9+
float4 lhs1 = {1,2,3,4};
10+
float4 rhs1 = {4,3,2,1};
1111

1212
// CHECK: call %dx.types.LinAlgMatrixC2M2N2U2S2 @dx.op.linAlgMatrixOuterProduct.mC2M2N2U2S2.v4f32.v4f32
1313
// CHECK-SAME: (i32 -2147483619, <4 x float> {{.*}}, <4 x float> {{.*}}) ; LinAlgMatrixOuterProduct(vectorA,vectorB)
1414

1515
// CHECK2: call void @"dx.hl.op..void (i32, %dx.types.LinAlgMatrixC2M2N2U2S2*, <4 x float>, <4 x float>)"
1616
// CHECK2: (i32 417, %dx.types.LinAlgMatrixC2M2N2U2S2* {{.*}}, <4 x float> {{.*}}, <4 x float> {{.*}})
17-
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(2, 2, 2, 2, 2)]] mat;
18-
__builtin_LinAlg_MatrixOuterProduct(mat, lhs, rhs);
17+
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(2, 2, 2, 2, 2)]] mat1;
18+
__builtin_LinAlg_MatrixOuterProduct(mat1, lhs1, rhs1);
19+
20+
double4 lhs2 = {1,2,3,4};
21+
double4 rhs2 = {4,3,2,1};
22+
23+
// CHECK: call %dx.types.LinAlgMatrixC2M2N2U2S2 @dx.op.linAlgMatrixOuterProduct.mC2M2N2U2S2.v4f64.v4f64
24+
// CHECK-SAME: (i32 -2147483619, <4 x double> {{.*}}, <4 x double> {{.*}}) ; LinAlgMatrixOuterProduct(vectorA,vectorB)
25+
26+
// CHECK2: call void @"dx.hl.op..void (i32, %dx.types.LinAlgMatrixC2M2N2U2S2*, <4 x double>, <4 x double>)"
27+
// CHECK2: (i32 417, %dx.types.LinAlgMatrixC2M2N2U2S2* {{.*}}, <4 x double> {{.*}}, <4 x double> {{.*}})
28+
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(2, 2, 2, 2, 2)]] mat2;
29+
__builtin_LinAlg_MatrixOuterProduct(mat2, lhs2, rhs2);
30+
31+
vector<int64_t, 4> lhs3 = {1,2,3,4};
32+
vector<int64_t, 4> rhs3 = {4,3,2,1};
33+
34+
// CHECK: call %dx.types.LinAlgMatrixC2M2N2U2S2 @dx.op.linAlgMatrixOuterProduct.mC2M2N2U2S2.v4i64.v4i64
35+
// CHECK-SAME: (i32 -2147483619, <4 x i64> {{.*}}, <4 x i64> {{.*}}) ; LinAlgMatrixOuterProduct(vectorA,vectorB)
36+
37+
// CHECK2: call void @"dx.hl.op..void (i32, %dx.types.LinAlgMatrixC2M2N2U2S2*, <4 x i64>, <4 x i64>)"
38+
// CHECK2: (i32 417, %dx.types.LinAlgMatrixC2M2N2U2S2* {{.*}}, <4 x i64> {{.*}}, <4 x i64> {{.*}})
39+
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(2, 2, 2, 2, 2)]] mat3;
40+
__builtin_LinAlg_MatrixOuterProduct(mat3, lhs3, rhs3);
1941
}

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

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[numthreads(1,1,1)]
66
void main() {
77
// CHECK-LABEL: define void @main()
8-
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(5, 3, 4, 0, 0)]] mat;
8+
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(5, 3, 4, 0, 0)]] mat1;
99
float4 vec = {1,2,3,4};
1010
float4 result;
1111

@@ -18,5 +18,35 @@ void main() {
1818
// CHECK2-SAME: i32, <4 x float>, i32)"(i32 419, <4 x float>* %result, %dx.types.LinAlgMatrixC5M3N4U0S0 %{{[0-9]+}},
1919
// CHECK2-SAME: i1 true, <4 x float> %{{[0-9]+}}, i32 1, <4 x float> %{{[0-9]+}}, i32 0)
2020

21-
__builtin_LinAlg_MatrixVectorMultiplyAdd(result, mat, true, vec, 1, result, 0);
21+
__builtin_LinAlg_MatrixVectorMultiplyAdd(result, mat1, true, vec, 1, result, 0);
22+
23+
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(5, 3, 4, 0, 0)]] mat2;
24+
double4 vec2 = {1,2,3,4};
25+
double4 result2;
26+
27+
// CHECK: call <4 x double> @dx.op.linAlgMatVecMulAdd.v4f64.mC5M3N4U0S0.v4f64.v4f64(i32 -2147483622,
28+
// CHECK-SAME: %dx.types.LinAlgMatrixC5M3N4U0S0 {{.*}}, i1 true, <4 x double> <double 1.000000e+00,
29+
// CHECK-SAME: double 2.000000e+00, double 3.000000e+00, double 4.000000e+00>, i32 1, <4 x double> {{.*}}, i32 0)
30+
// CHECK-SAME: ; LinAlgMatVecMulAdd(matrix,isOutputSigned,inputVector,inputInterpretation,biasVector,biasInterpretation)
31+
32+
// CHECK2: call void @"dx.hl.op..void (i32, <4 x double>*, %dx.types.LinAlgMatrixC5M3N4U0S0, i1, <4 x double>,
33+
// CHECK2-SAME: i32, <4 x double>, i32)"(i32 419, <4 x double>* %result2, %dx.types.LinAlgMatrixC5M3N4U0S0 %{{[0-9]+}},
34+
// CHECK2-SAME: i1 true, <4 x double> %{{[0-9]+}}, i32 1, <4 x double> %{{[0-9]+}}, i32 0)
35+
36+
__builtin_LinAlg_MatrixVectorMultiplyAdd(result2, mat2, true, vec2, 1, result2, 0);
37+
38+
__builtin_LinAlgMatrix [[__LinAlgMatrix_Attributes(5, 3, 4, 0, 0)]] mat3;
39+
vector<int64_t, 4> vec3 = {1,2,3,4};
40+
vector<int64_t, 4> result3;
41+
42+
// CHECK: call <4 x i64> @dx.op.linAlgMatVecMulAdd.v4i64.mC5M3N4U0S0.v4i64.v4i64(i32 -2147483622,
43+
// CHECK-SAME: %dx.types.LinAlgMatrixC5M3N4U0S0 {{.*}}, i1 true, <4 x i64> <i64 1,
44+
// CHECK-SAME: i64 2, i64 3, i64 4>, i32 1, <4 x i64> {{.*}}, i32 0)
45+
// CHECK-SAME: ; LinAlgMatVecMulAdd(matrix,isOutputSigned,inputVector,inputInterpretation,biasVector,biasInterpretation)
46+
47+
// CHECK2: call void @"dx.hl.op..void (i32, <4 x i64>*, %dx.types.LinAlgMatrixC5M3N4U0S0, i1, <4 x i64>,
48+
// CHECK2-SAME: i32, <4 x i64>, i32)"(i32 419, <4 x i64>* %result3, %dx.types.LinAlgMatrixC5M3N4U0S0 %{{[0-9]+}},
49+
// CHECK2-SAME: i1 true, <4 x i64> %{{[0-9]+}}, i32 1, <4 x i64> %{{[0-9]+}}, i32 0)
50+
51+
__builtin_LinAlg_MatrixVectorMultiplyAdd(result3, mat3, true, vec3, 1, result3, 0);
2252
}

utils/hct/hctdb.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6270,7 +6270,7 @@ def populate_ExperimentalOps(self):
62706270
"LinAlgFillMatrix",
62716271
"LinAlgFillMatrix",
62726272
"fills a matrix with a scalar value",
6273-
"o,hfwi",
6273+
"o,hfdwil",
62746274
"",
62756275
[
62766276
db_dxil_param(0, "$x0", "", "resulting matrix"),
@@ -6318,7 +6318,7 @@ def populate_ExperimentalOps(self):
63186318
"LinAlgMatrixLoadFromMemory",
63196319
"LinAlgMatrixLoadFromMemory",
63206320
"fills a matrix with data from a groupshared array",
6321-
"o,hfwi",
6321+
"o,hfdwil",
63226322
"",
63236323
[
63246324
db_dxil_param(0, "$x0", "", "resulting matrix"),
@@ -6367,7 +6367,7 @@ def populate_ExperimentalOps(self):
63676367
"LinAlgMatrixGetElement",
63686368
"LinAlgMatrixGetElement",
63696369
"returns the element of the matrix corresponding to the provided thread-local index",
6370-
"hfwi,o",
6370+
"hfdwil,o",
63716371
"",
63726372
[
63736373
db_dxil_param(0, "$x0", "", "operation result"),
@@ -6382,7 +6382,7 @@ def populate_ExperimentalOps(self):
63826382
"LinAlgMatrixSetElement",
63836383
"LinAlgMatrixSetElement",
63846384
"sets the element of the matrix corresponding to the provided thread-local index",
6385-
"o,o,hfwi",
6385+
"o,o,hfdwil",
63866386
"",
63876387
[
63886388
db_dxil_param(0, "$x0", "", "resulting matrix"),
@@ -6420,7 +6420,7 @@ def populate_ExperimentalOps(self):
64206420
"LinAlgMatrixStoreToMemory",
64216421
"LinAlgMatrixStoreToMemory",
64226422
"stores a matrix to groupshared memory",
6423-
"o,hfwi",
6423+
"o,hfdwil",
64246424
"",
64256425
[
64266426
db_dxil_param(0, "v", "", ""),
@@ -6480,7 +6480,7 @@ def populate_ExperimentalOps(self):
64806480
"LinAlgMatVecMul",
64816481
"LinAlgMatVecMul",
64826482
"Multiplies a MxK dimension matrix and a K sized input vector",
6483-
"<hfwi,o,<hfwi",
6483+
"<hfdwil,o,<hfdwil",
64846484
"",
64856485
[
64866486
db_dxil_param(0, "$x0", "", "operation result"),
@@ -6495,7 +6495,7 @@ def populate_ExperimentalOps(self):
64956495
"LinAlgMatVecMulAdd",
64966496
"LinAlgMatVecMulAdd",
64976497
"Multiplies a MxK dimension matrix and a K sized input vector then adds a M sized bias vector",
6498-
"<hfwi,o,<hfwi,<hfwi",
6498+
"<hfdwil,o,<hfdwil,<hfdwil",
64996499
"",
65006500
[
65016501
db_dxil_param(0, "$x0", "", "operation result"),
@@ -6540,7 +6540,7 @@ def populate_ExperimentalOps(self):
65406540
"LinAlgMatrixAccumulateToMemory",
65416541
"LinAlgMatrixAccumulateToMemory",
65426542
"accumulates a matrix to groupshared memory",
6543-
"o,hfwi",
6543+
"o,hfdwil",
65446544
"",
65456545
[
65466546
db_dxil_param(0, "v", "", ""),
@@ -6563,7 +6563,7 @@ def populate_ExperimentalOps(self):
65636563
"LinAlgMatrixOuterProduct",
65646564
"LinAlgMatrixOuterProduct",
65656565
"Outer products an M sized vector and a N sized vector producing an MxN matrix",
6566-
"o,<hfwi,<hfwi",
6566+
"o,<hfdwil,<hfdwil",
65676567
"",
65686568
[
65696569
db_dxil_param(0, "$x0", "", "resulting matrix"),
@@ -6576,7 +6576,7 @@ def populate_ExperimentalOps(self):
65766576
"LinAlgConvert",
65776577
"LinAlgConvert",
65786578
"Convert vector components from one interpretation to another",
6579-
"<hfwi,<hfwi",
6579+
"<hfdwil,<hfdwil",
65806580
"",
65816581
[
65826582
db_dxil_param(0, "$x0", "", "operation result"),

0 commit comments

Comments
 (0)