Fix array index in test initialization.
Index() % NumElementsInType should be Index() % NumValues.
BUG=none
R=stichnot@chromium.org
Review URL: https://codereview.chromium.org/404553007
diff --git a/crosstest/test_arith_main.cpp b/crosstest/test_arith_main.cpp
index d9bbbe9..1c67b6b 100644
--- a/crosstest/test_arith_main.cpp
+++ b/crosstest/test_arith_main.cpp
@@ -19,9 +19,6 @@
#include "test_arith.h"
}
-volatile unsigned Values[] = INT_VALUE_ARRAY;
-const static size_t NumValues = sizeof(Values) / sizeof(*Values);
-
template <class T> bool inputsMayTriggerException(T Value1, T Value2) {
// Avoid HW divide-by-zero exception.
if (Value2 == 0)
@@ -37,6 +34,8 @@
void testsInt(size_t &TotalTests, size_t &Passes, size_t &Failures) {
typedef TypeUnsigned (*FuncTypeUnsigned)(TypeUnsigned, TypeUnsigned);
typedef TypeSigned (*FuncTypeSigned)(TypeSigned, TypeSigned);
+ volatile unsigned Values[] = INT_VALUE_ARRAY;
+ const static size_t NumValues = sizeof(Values) / sizeof(*Values);
static struct {
const char *Name;
FuncTypeUnsigned FuncLlc;
@@ -160,6 +159,8 @@
void testsVecInt(size_t &TotalTests, size_t &Passes, size_t &Failures) {
typedef TypeUnsigned (*FuncTypeUnsigned)(TypeUnsigned, TypeUnsigned);
typedef TypeSigned (*FuncTypeSigned)(TypeSigned, TypeSigned);
+ volatile unsigned Values[] = INT_VALUE_ARRAY;
+ const static size_t NumValues = sizeof(Values) / sizeof(*Values);
static struct {
const char *Name;
FuncTypeUnsigned FuncLlc;
@@ -192,8 +193,8 @@
// Initialize the test vectors.
TypeUnsigned Value1, Value2;
for (size_t j = 0; j < NumElementsInType;) {
- ElementTypeUnsigned Element1 = Values[Index() % NumElementsInType];
- ElementTypeUnsigned Element2 = Values[Index() % NumElementsInType];
+ ElementTypeUnsigned Element1 = Values[Index() % NumValues];
+ ElementTypeUnsigned Element2 = Values[Index() % NumValues];
if (Funcs[f].ExcludeDivExceptions &&
inputsMayTriggerException<ElementTypeSigned>(Element1, Element2))
continue;
@@ -310,8 +311,8 @@
// Initialize the test vectors.
v4f32 Value1, Value2;
for (size_t j = 0; j < NumElementsInType; ++j) {
- Value1[j] = Values[Index() % NumElementsInType];
- Value2[j] = Values[Index() % NumElementsInType];
+ Value1[j] = Values[Index() % NumValues];
+ Value2[j] = Values[Index() % NumValues];
}
// Perform the test.
v4f32 ResultSz = Funcs[f].FuncSz(Value1, Value2);