@@ -769,24 +769,16 @@ BITWISE_OP(OpType::FirstBitLow, (FirstBitLow(A)));
769769DEFAULT_OP_1 (OpType::Initialize, (A));
770770
771771template <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 );
0 commit comments