@@ -286,8 +286,8 @@ OuterProduct(vector<InputElTy, M> VecA, vector<InputElTy, N> VecB);
286286
287287template <typename InputElTy, SIZE_TYPE M>
288288typename hlsl::enable_if< hlsl::is_arithmetic<InputElTy > ::value, void>::type
289- InterlockedAccumulate(vector<InputElTy, M> Vec, RWByteAddressBuffer Res ,
290- uint StartOffset);
289+ InterlockedAccumulate(RWByteAddressBuffer Res, vector<InputElTy, M> Vec,
290+ uint StartOffset, uint Align = 64 );
291291
292292} // namespace linalg
293293} // namespace dx
@@ -1081,8 +1081,8 @@ provided matrix argument into the accumulator matrix.
10811081```c++
10821082template <typename InputElTy, SIZE_TYPE M>
10831083typename hlsl::enable_if<hlsl::is_arithmetic<InputElTy>::value, void>::type
1084- InterlockedAccumulate(vector<InputElTy, M> Vec, RWByteAddressBuffer Res ,
1085- uint StartOffset);
1084+ InterlockedAccumulate(RWByteAddressBuffer Res, vector<InputElTy, M> Vec,
1085+ uint StartOffset, uint Align = 64 );
10861086```
10871087
10881088Atomically adds the vector data of ` Vec ` to the ` RWByteAddressBuffer ` target
@@ -1583,7 +1583,7 @@ declare <[NUMo] x [TYo]> @dx.op.linAlgMatVecMul.v[NUMo][TYo].[MatTy].v[NUMi][TYi
15831583 immarg i1, ; is output signed
15841584 <[NUMi] x [TYi]>, ; input vector
15851585 immarg i32 ; input interpretation type (DXIL::ComponentType)
1586- )
1586+ )
15871587```
15881588
15891589This operation implements a column-vector multiplication against an ` A ` matrix
@@ -1607,7 +1607,7 @@ declare <[NUMo] x [TYo]> @dx.op.linAlgMatVecMulAdd.v[NUMo][TYo].[MatTy].v[NUMi][
16071607 immarg i32, ; input interpretation type (DXIL::ComponentType)
16081608 <[NUMo] x [TYb]>, ; bias vector
16091609 immarg i32 ; bias interpretation type (DXIL::ComponentType)
1610- )
1610+ )
16111611```
16121612
16131613This operation implements a column-vector multiplication against an ` A ` matrix
@@ -1695,7 +1695,7 @@ declare <[NUMo] x [TYo]> @dx.op.linAlgConvert.v[NUMo][TYo].v[NUMi][TYi](
16951695 <[NUMi] x [TYi]>, ; input vector
16961696 immarg i32, ; input interpretation type (DXIL::ComponentType)
16971697 immarg i32 ; output interpretation type (DXIL::ComponentType)
1698- )
1698+ )
16991699```
17001700
17011701Converts an input vector containing data of the input interpretation type to a
@@ -1776,11 +1776,13 @@ represent all values of the format used in the shader's DXIL.
17761776> FP type, this may cause expected behavior differences.
17771777
17781778``` llvm
1779- declare void @dx.op.vectorAccumulateToDescriptor.v[NUM][TY](
1780- immarg i32, ; opcode
1781- <[NUM] x [TY]>, ; input vector
1782- %dx.types.Handle, ; destination RWByteAddressBuffer
1783- i32) ; buffer offset
1779+ declare void @dx.op.linAlgVectorAccumulateToDescriptor.v[NUM][TY](
1780+ immarg i32, ; opcode
1781+ <[NUM] x [TY]>, ; input vector
1782+ %dx.types.Handle, ; destination RWByteAddressBuffer
1783+ i32, ; buffer offset
1784+ i32 ; vector element alignment
1785+ )
17841786```
17851787
17861788Accumulates a vector to a RWByteAddressBuffer at a specified offset. Each
@@ -1801,7 +1803,7 @@ elements to the default value.
18011803
18021804The ` @dx.op.linAlgMatrixStoreToDescriptor ` ,
18031805` @dx.op.linAlgMatrixAccumulateToDescriptor ` , and
1804- ` @dx.op.vectorAccumulateToDescriptor ` operations write data to a
1806+ ` @dx.op.linAlgVectorAccumulateToDescriptor ` operations write data to a
18051807descriptor. Writes to out of bounds memory are a no-op. An implementation may
18061808either perform bounds checking on the full bounds of the store converting the
18071809whole store to a no-op if any elelemt is out of bounds, or it may perform
@@ -2266,8 +2268,8 @@ OuterProduct(vector<InputElTy, M> VecA, vector<InputElTy, N> VecB);
22662268
22672269template <typename InputElTy, SIZE_TYPE M>
22682270typename hlsl::enable_if< hlsl::is_arithmetic<InputElTy > ::value, void>::type
2269- InterlockedAccumulate(vector<InputElTy, M> Vec, RWByteAddressBuffer Res ,
2270- uint StartOffset);
2271+ InterlockedAccumulate(RWByteAddressBuffer Res, vector<InputElTy, M> Vec,
2272+ uint StartOffset, uint Align = 64 );
22712273
22722274} // namespace linalg
22732275} // namespace dx
0 commit comments