diff --git a/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs b/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs index e34610c1c45abb..2b766dc1e580cc 100644 --- a/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs +++ b/src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_Arm.cs @@ -318,6 +318,7 @@ ("_UnaryOpTestTemplate.template", "SimpleVecOpTest.template", new Dictionary { ["TemplateName"] = "Simple", ["TemplateValidationLogic"] = SimpleVecOpTest_ValidationLogic }), ("_BinaryOpTestTemplate.template", "VecPairBinOpTest.template", new Dictionary { ["TemplateName"] = "Simple", ["TemplateValidationLogic"] = VecPairBinOpTest_ValidationLogic }), ("_BinaryOp_SveTestTemplate.template", "SveVecPairBinOpTest.template", new Dictionary { ["TemplateName"] = "Simple", ["TemplateValidationLogic"] = VecPairBinOpTest_ValidationLogic }), + ("_BinaryOp_SveTestTemplate.template", "SveVecBinaryOpValidateTest.template", new Dictionary { ["TemplateName"] = "Simple", ["TemplateValidationLogic"] = SveValidateForEachRetElementCount_ValidationLogic }), ("_UnaryOpTestTemplate.template", "VecReduceUnOpTest.template", new Dictionary { ["TemplateName"] = "Simple", ["TemplateValidationLogic"] = VecReduceOpTest_ValidationLogic }), ("_BinaryOpTestTemplate.template", "VecBinOpTest.template", new Dictionary { ["TemplateName"] = "Simple", ["TemplateValidationLogic"] = SimpleVecOpTest_ValidationLogic }), ("_TernaryOpTestTemplate.template", "SimpleTernOpTest.template", new Dictionary { ["TemplateName"] = "Simple", ["TemplateValidationLogic"] = SimpleOpTest_ValidationLogic }), @@ -4337,8 +4338,8 @@ ("SveMasklessVecBinOpTest.template", new Dictionary {["TestName"] = "Sve_SaturatingIncrementByActiveElementCount_vector_uint", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "SaturatingIncrementByActiveElementCount", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "Helpers.getMaskUInt32()", ["ValidateIterResult"] = "result[i] != Helpers.AddSaturate(left[i], (uint)Helpers.NumberOfActiveElementsInMask(right))", ["GetIterResult"] = "Helpers.AddSaturate(left[i], Helpers.NumberOfActiveElementsInMask(right))"}), ("SveMasklessVecBinOpTest.template", new Dictionary {["TestName"] = "Sve_SaturatingIncrementByActiveElementCount_vector_ulong", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "SaturatingIncrementByActiveElementCount", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "Helpers.getMaskUInt64()", ["ValidateIterResult"] = "result[i] != Helpers.AddSaturate(left[i], (ulong)(Helpers.NumberOfActiveElementsInMask(right)))", ["GetIterResult"] = "Helpers.AddSaturate(left[i], (ulong)(Helpers.NumberOfActiveElementsInMask(right)))"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_Scale_float_int", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "Scale", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateEntry"] = "result[i] != Helpers.Scale(left[i], right[i])"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_Scale_double_long", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "Scale", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateEntry"] = "result[i] != Helpers.Scale(left[i], right[i])"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_Scale_float_int", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "Scale", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt32()", ["ValidateEntry"] = "result[i] != Helpers.Scale(left[i], right[i])"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_Scale_double_long", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "Scale", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetInt64()", ["ValidateEntry"] = "result[i] != Helpers.Scale(left[i], right[i])"}), ("SveScatterVectorBases.template", new Dictionary { ["TestName"] = "Sve_Scatter_bases_double_ulong", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "Scatter", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["NarrowingType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "Helpers.getMaskInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetDouble()"}), ("SveScatterVectorBases.template", new Dictionary { ["TestName"] = "Sve_Scatter_bases_long_ulong", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "Scatter", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["NarrowingType"] = "Int64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "Helpers.getMaskInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp3"] = "TestLibrary.Generator.GetInt64()"}), @@ -4524,16 +4525,16 @@ ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_UnzipOdd_uint", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "UnzipOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt32()", ["ValidateEntry"] = "result[index] != left[i + 1] || result[index + half] != right[i + 1]"}), ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_UnzipOdd_ulong", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "UnzipOdd", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "TestLibrary.Generator.GetUInt64()", ["ValidateEntry"] = "result[index] != left[i + 1] || result[index + half] != right[i + 1]"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_float", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "(UInt32) (TestLibrary.Generator.GetUInt32() % (UInt32)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt32) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_double", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "(UInt64) (TestLibrary.Generator.GetUInt64() % (UInt64)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt64) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_sbyte", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "(Byte) (TestLibrary.Generator.GetByte() % (Byte) (Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (Byte) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_short", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "(UInt16) (TestLibrary.Generator.GetUInt16() % (UInt16)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt16) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_int", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "(UInt32) (TestLibrary.Generator.GetUInt32() % (UInt32)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt32) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_long", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(UInt64) (TestLibrary.Generator.GetUInt64() % (UInt64)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt64) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_byte", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "(Byte) (TestLibrary.Generator.GetByte() % (Byte) (Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (Byte) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_ushort", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "(UInt16) (TestLibrary.Generator.GetUInt16() % (UInt16)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt16) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_uint", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "(UInt32) (TestLibrary.Generator.GetUInt32() % (UInt32)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt32) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_ulong", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "(UInt64) (TestLibrary.Generator.GetUInt64() % (UInt64)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt64) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_float", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "(UInt32) (TestLibrary.Generator.GetUInt32() % (UInt32)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt32) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_double", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "(UInt64) (TestLibrary.Generator.GetUInt64() % (UInt64)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt64) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_sbyte", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "SByte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "SByte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSByte()", ["NextValueOp2"] = "(Byte) (TestLibrary.Generator.GetByte() % (Byte) (Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (Byte) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_short", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt16()", ["NextValueOp2"] = "(UInt16) (TestLibrary.Generator.GetUInt16() % (UInt16)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt16) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_int", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt32()", ["NextValueOp2"] = "(UInt32) (TestLibrary.Generator.GetUInt32() % (UInt32)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt32) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_long", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Int64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Int64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetInt64()", ["NextValueOp2"] = "(UInt64) (TestLibrary.Generator.GetUInt64() % (UInt64)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt64) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_byte", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Byte", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Byte", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Byte", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetByte()", ["NextValueOp2"] = "(Byte) (TestLibrary.Generator.GetByte() % (Byte) (Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (Byte) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_ushort", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt16", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt16", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt16", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt16()", ["NextValueOp2"] = "(UInt16) (TestLibrary.Generator.GetUInt16() % (UInt16)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt16) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_uint", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["NextValueOp2"] = "(UInt32) (TestLibrary.Generator.GetUInt32() % (UInt32)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt32) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_VectorTableLookup_ulong", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "VectorTableLookup", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt64()", ["NextValueOp2"] = "(UInt64) (TestLibrary.Generator.GetUInt64() % (UInt64)(Op2ElementCount * 2))", ["ValidateEntry"] = "(right[i] < (UInt64) RetElementCount) ? (result[i] != left[right[i]]) : (result[i] != 0)"}), ("SveSimpleVecOpTest.template", new Dictionary { ["TestName"] = "Sve_ZeroExtend16_uint", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ZeroExtend16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt32", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt32", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetUInt32()", ["ValidateIterResult"] = "result[i] != Helpers.SignExtend(firstOp[i], 16, true)", ["GetIterResult"] = "Helpers.SignExtend(leftOp[i], 16, true)"}), ("SveSimpleVecOpTest.template", new Dictionary { ["TestName"] = "Sve_ZeroExtend16_ulong", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ZeroExtend16", ["RetVectorType"] = "Vector", ["RetBaseType"] = "UInt64", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "UInt64", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "(TestLibrary.Generator.GetUInt64() & 0x3FFFFFFFFFFFFFFF)", ["ValidateIterResult"] = "result[i] != Helpers.SignExtend(firstOp[i], 16, true)", ["GetIterResult"] = "Helpers.SignExtend(leftOp[i], 16, true)"}), @@ -4702,10 +4703,10 @@ ("SveSimpleVecOpTest.template", new Dictionary { ["TestName"] = "Sve_ReciprocalExponent_double", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReciprocalExponent", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateIterResult"] = "result[i] != Helpers.ReciprocalExponent(firstOp[i])", ["GetIterResult"] = "Helpers.ReciprocalExponent(leftOp[i])"}), ("SveSimpleVecOpTest.template", new Dictionary { ["TestName"] = "Sve_ReciprocalSqrtEstimate_float", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReciprocalSqrtEstimate", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateIterResult"] = "result[i] != Helpers.ReciprocalSqrtEstimate(firstOp[i])", ["GetIterResult"] = "Helpers.ReciprocalSqrtEstimate(leftOp[i])"}), ("SveSimpleVecOpTest.template", new Dictionary { ["TestName"] = "Sve_ReciprocalSqrtEstimate_double", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReciprocalSqrtEstimate", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateIterResult"] = "result[i] != Helpers.ReciprocalSqrtEstimate(firstOp[i])", ["GetIterResult"] = "Helpers.ReciprocalSqrtEstimate(leftOp[i])"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_ReciprocalSqrtStep_float", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReciprocalSqrtStep", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateEntry"] = "result[i] != Helpers.FPReciprocalSqrtStepFused(left[i], right[i])"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_ReciprocalSqrtStep_double", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReciprocalSqrtStep", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateEntry"] = "result[i] != Helpers.FPReciprocalSqrtStepFused(left[i], right[i])"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_ReciprocalStep_float", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReciprocalStep", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateEntry"] = "result[i] != Helpers.FPReciprocalStepFused(left[i], right[i])"}), - ("SveVecPairBinOpTest.template", new Dictionary { ["TestName"] = "Sve_ReciprocalStep_double", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReciprocalStep", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateEntry"] = "result[i] != Helpers.FPReciprocalStepFused(left[i], right[i])"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_ReciprocalSqrtStep_float", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReciprocalSqrtStep", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateEntry"] = "result[i] != Helpers.FPReciprocalSqrtStepFused(left[i], right[i])"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_ReciprocalSqrtStep_double", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReciprocalSqrtStep", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateEntry"] = "result[i] != Helpers.FPReciprocalSqrtStepFused(left[i], right[i])"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_ReciprocalStep_float", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReciprocalStep", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Single", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["NextValueOp2"] = "TestLibrary.Generator.GetSingle()", ["ValidateEntry"] = "result[i] != Helpers.FPReciprocalStepFused(left[i], right[i])"}), + ("SveVecBinaryOpValidateTest.template", new Dictionary { ["TestName"] = "Sve_ReciprocalStep_double", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReciprocalStep", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["Op2VectorType"] = "Vector", ["Op2BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["NextValueOp2"] = "TestLibrary.Generator.GetDouble()", ["ValidateEntry"] = "result[i] != Helpers.FPReciprocalStepFused(left[i], right[i])"}), ("SveSimpleVecOpTest.template", new Dictionary { ["TestName"] = "Sve_ReverseElement_float", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReverseElement", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Single", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Single", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetSingle()", ["ValidateIterResult"] = "result[i] != firstOp[RetElementCount - i - 1]", ["GetIterResult"] = "leftOp[RetElementCount - i - 1]"}), ("SveSimpleVecOpTest.template", new Dictionary { ["TestName"] = "Sve_ReverseElement_double", ["Isa"] = "Sve", ["LoadIsa"] = "Sve", ["Method"] = "ReverseElement", ["RetVectorType"] = "Vector", ["RetBaseType"] = "Double", ["Op1VectorType"] = "Vector", ["Op1BaseType"] = "Double", ["LargestVectorSize"] = "64", ["NextValueOp1"] = "TestLibrary.Generator.GetDouble()", ["ValidateIterResult"] = "result[i] != firstOp[RetElementCount - i - 1]", ["GetIterResult"] = "leftOp[RetElementCount - i - 1]"}),