Skip to content

Commit 5cc409e

Browse files
committed
adding single element access test
1 parent 8d371f1 commit 5cc409e

File tree

3 files changed

+24
-36
lines changed

3 files changed

+24
-36
lines changed

tools/clang/unittests/HLSLExec/LongVectorOps.def

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ OP(Bitwise, FirstBitLow, 1, "firstbitlow", "", "", "LongVectorOp", Bitwise, Defa
6161

6262
OP_DEFAULT_DEFINES(Unary, Initialize, 1, "TestInitialize", "",
6363
" -DFUNC_INITIALIZE=1")
64-
OP_DEFAULT_DEFINES(Unary, ArrayOperator, 1, "TestArrayOperator", "",
65-
" -DFUNC_ARRAY_OPERATOR=1")
64+
OP_DEFAULT_DEFINES(Unary, ArrayOperator_SingleAccess, 1, "TestArrayOperatorSingleAccess", "",
65+
" -DFUNC_ARRAY_OPERATOR_SINGLE_ACCESS=1")
6666

6767

6868
#define OP_CAST_DEFAULT(GROUP, SYMBOL) \

tools/clang/unittests/HLSLExec/LongVectors.cpp

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -769,24 +769,16 @@ BITWISE_OP(OpType::FirstBitLow, (FirstBitLow(A)));
769769
DEFAULT_OP_1(OpType::Initialize, (A));
770770

771771
template <typename T>
772-
struct Op<OpType::ArrayOperator, T, 1> : DefaultValidation<T> {};
772+
struct Op<OpType::ArrayOperator_SingleAccess, T, 1> : DefaultValidation<T> {};
773773

774-
template <typename T> struct ExpectedBuilder<OpType::ArrayOperator, T> {
775-
static std::vector<T> buildExpected(Op<OpType::ArrayOperator, T, 1>,
774+
template <typename T> struct ExpectedBuilder<OpType::ArrayOperator_SingleAccess, T> {
775+
static std::vector<T> buildExpected(Op<OpType::ArrayOperator_SingleAccess, T, 1>,
776776
const InputSets<T> &Inputs) {
777777
DXASSERT_NOMSG(Inputs.size() == 1);
778778
const size_t VectorSize = Inputs[0].size();
779-
std::vector<T> Expected;
780-
Expected.resize(VectorSize * 2);
781-
for (size_t I = 0; I < VectorSize; ++I) {
782-
// Writing the index and value into expected data.
783-
// Expected[I] = I;
784-
Expected[I] = Inputs[0][I];
785-
786-
// Reading the index and value from the previously written data,
787-
// Expected[2 * VectorSize + I] = Expected[I];
788-
Expected[VectorSize + I] = Expected[I];
789-
}
779+
std::vector<T> Expected = Inputs[0];
780+
Expected[0] = Inputs[0][VectorSize - 1];
781+
Expected[VectorSize - 1] = Expected[0];
790782
return Expected;
791783
}
792784
};
@@ -1609,25 +1601,25 @@ class DxilConf_SM69_Vectorized {
16091601
// Unary
16101602

16111603
HLK_TEST(Initialize, HLSLBool_t);
1612-
// HLK_TEST(ArrayOperator, HLSLBool_t);
1604+
HLK_TEST(ArrayOperator_SingleAccess, HLSLBool_t);
16131605
HLK_TEST(Initialize, int16_t);
1614-
// HLK_TEST(ArrayOperator, int16_t);
1606+
HLK_TEST(ArrayOperator_SingleAccess, int16_t);
16151607
HLK_TEST(Initialize, int32_t);
1616-
HLK_TEST(ArrayOperator, int32_t);
1608+
HLK_TEST(ArrayOperator_SingleAccess, int32_t);
16171609
HLK_TEST(Initialize, int64_t);
1618-
// HLK_TEST(ArrayOperator, int64_t);
1610+
HLK_TEST(ArrayOperator_SingleAccess, int64_t);
16191611
HLK_TEST(Initialize, uint16_t);
1620-
// HLK_TEST(ArrayOperator, uint16_t);
1612+
HLK_TEST(ArrayOperator_SingleAccess, uint16_t);
16211613
HLK_TEST(Initialize, uint32_t);
1622-
// HLK_TEST(ArrayOperator, uint32_t);
1614+
HLK_TEST(ArrayOperator_SingleAccess, uint32_t);
16231615
HLK_TEST(Initialize, uint64_t);
1624-
// HLK_TEST(ArrayOperator, uint64_t);
1616+
HLK_TEST(ArrayOperator_SingleAccess, uint64_t);
16251617
HLK_TEST(Initialize, HLSLHalf_t);
1626-
// HLK_TEST(ArrayOperator, HLSLHalf_t);
1618+
HLK_TEST(ArrayOperator_SingleAccess, HLSLHalf_t);
16271619
HLK_TEST(Initialize, float);
1628-
HLK_TEST(ArrayOperator, float);
1620+
HLK_TEST(ArrayOperator_SingleAccess, float);
16291621
HLK_TEST(Initialize, double);
1630-
// HLK_TEST(ArrayOperator, double);
1622+
HLK_TEST(ArrayOperator_SingleAccess, double);
16311623

16321624
HLK_TEST(ShuffleVector, HLSLBool_t);
16331625
HLK_TEST(ShuffleVector, int16_t);

tools/clang/unittests/HLSLExec/ShaderOpArith.xml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3985,7 +3985,7 @@ void MSMain(uint GID : SV_GroupIndex,
39853985
<Resource Name="InputVector1" Dimension="BUFFER" Width="8192" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
39863986
<Resource Name="InputVector2" Dimension="BUFFER" Width="8192" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
39873987
<Resource Name="InputVector3" Dimension="BUFFER" Width="8192" Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST" TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
3988-
<Resource Name="OutputVector" Dimension="BUFFER" Width="8192"
3988+
<Resource Name="OutputVector" Dimension="BUFFER" Width="16384"
39893989
Flags="ALLOW_UNORDERED_ACCESS" InitialResourceState="COPY_DEST"
39903990
TransitionTo="UNORDERED_ACCESS" Init="ByName" ReadBack="true" />
39913991
<RootValues>
@@ -4129,15 +4129,11 @@ void MSMain(uint GID : SV_GroupIndex,
41294129
const uint32_t OutNum = NUM;
41304130
#endif
41314131
4132-
#if FUNC_ARRAY_OPERATOR
4133-
vector<TYPE, OutNum> OutputVector;
4134-
vector<TYPE, OutNum> ReadVector;
4135-
for(uint i = 0; i < NUM; i++)
4136-
{
4137-
OutputVector[i] = Input1[i];
4138-
ReadVector[i] = OutputVector[i];
4139-
}
4140-
g_OutputVector.Store< vector<TYPE, OutNum> >(sizeof(TYPE) * OutNum, ReadVector);
4132+
#if FUNC_ARRAY_OPERATOR_SINGLE_ACCESS
4133+
vector<OUT_TYPE, OutNum> OutputVector = g_InputVector1.Load< vector<TYPE,
4134+
NUM> >(0);
4135+
OutputVector[0] = Input1[OutNum - 1];
4136+
OutputVector[OutNum - 1] = OutputVector[0];
41414137
#elif IS_UNARY_OP
41424138
vector<OUT_TYPE, OutNum> OutputVector = FUNC(Input1);
41434139
#elif IS_BINARY_OP

0 commit comments

Comments
 (0)