| OLD | NEW |
| 1 //===- subzero/crosstest/test_cast_main.cpp - Driver for tests ------------===// | 1 //===- subzero/crosstest/test_cast_main.cpp - Driver for tests ------------===// |
| 2 // | 2 // |
| 3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 // | 9 // |
| 10 // Driver for crosstesting cast operations. | 10 // Driver for crosstesting cast operations. |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 COMPARE(cast, FromType, int32_t, Val, FromTypeString); | 85 COMPARE(cast, FromType, int32_t, Val, FromTypeString); |
| 86 COMPARE(cast, FromType, uint64, Val, FromTypeString); | 86 COMPARE(cast, FromType, uint64, Val, FromTypeString); |
| 87 COMPARE(cast, FromType, int64, Val, FromTypeString); | 87 COMPARE(cast, FromType, int64, Val, FromTypeString); |
| 88 COMPARE(cast, FromType, float, Val, FromTypeString); | 88 COMPARE(cast, FromType, float, Val, FromTypeString); |
| 89 COMPARE(cast, FromType, double, Val, FromTypeString); | 89 COMPARE(cast, FromType, double, Val, FromTypeString); |
| 90 } | 90 } |
| 91 | 91 |
| 92 template <typename FromType, typename ToType> | 92 template <typename FromType, typename ToType> |
| 93 void testVector(size_t &TotalTests, size_t &Passes, size_t &Failures, | 93 void testVector(size_t &TotalTests, size_t &Passes, size_t &Failures, |
| 94 const char *FromTypeString, const char *ToTypeString) { | 94 const char *FromTypeString, const char *ToTypeString) { |
| 95 #ifndef ARM32 | |
| 96 // TODO(jpp): remove this once vector support is implemented. | |
| 97 const static size_t NumElementsInType = Vectors<FromType>::NumElements; | 95 const static size_t NumElementsInType = Vectors<FromType>::NumElements; |
| 98 PRNG Index; | 96 PRNG Index; |
| 99 static const float NegInf = -1.0 / 0.0; | 97 static const float NegInf = -1.0 / 0.0; |
| 100 static const float PosInf = 1.0 / 0.0; | 98 static const float PosInf = 1.0 / 0.0; |
| 101 static const float Nan = 0.0 / 0.0; | 99 static const float Nan = 0.0 / 0.0; |
| 102 static const float NegNan = -0.0 / 0.0; | 100 static const float NegNan = -0.0 / 0.0; |
| 103 volatile float Values[] = FP_VALUE_ARRAY(NegInf, PosInf, NegNan, Nan); | 101 volatile float Values[] = FP_VALUE_ARRAY(NegInf, PosInf, NegNan, Nan); |
| 104 static const size_t NumValues = sizeof(Values) / sizeof(*Values); | 102 static const size_t NumValues = sizeof(Values) / sizeof(*Values); |
| 105 const size_t MaxTestsPerFunc = 20000; | 103 const size_t MaxTestsPerFunc = 20000; |
| 106 for (size_t i = 0; i < MaxTestsPerFunc; ++i) { | 104 for (size_t i = 0; i < MaxTestsPerFunc; ++i) { |
| 107 // Initialize the test vectors. | 105 // Initialize the test vectors. |
| 108 FromType Value; | 106 FromType Value; |
| 109 for (size_t j = 0; j < NumElementsInType; ++j) { | 107 for (size_t j = 0; j < NumElementsInType; ++j) { |
| 110 Value[j] = Values[Index() % NumValues]; | 108 Value[j] = Values[Index() % NumValues]; |
| 111 } | 109 } |
| 112 COMPARE_VEC(cast, FromType, ToType, Value, FromTypeString, ToTypeString); | 110 COMPARE_VEC(cast, FromType, ToType, Value, FromTypeString, ToTypeString); |
| 113 } | 111 } |
| 114 #endif // ARM32 | |
| 115 } | 112 } |
| 116 | 113 |
| 117 int main(int argc, char *argv[]) { | 114 int main(int argc, char *argv[]) { |
| 118 size_t TotalTests = 0; | 115 size_t TotalTests = 0; |
| 119 size_t Passes = 0; | 116 size_t Passes = 0; |
| 120 size_t Failures = 0; | 117 size_t Failures = 0; |
| 121 | 118 |
| 122 volatile bool ValsUi1[] = {false, true}; | 119 volatile bool ValsUi1[] = {false, true}; |
| 123 static const size_t NumValsUi1 = sizeof(ValsUi1) / sizeof(*ValsUi1); | 120 static const size_t NumValsUi1 = sizeof(ValsUi1) / sizeof(*ValsUi1); |
| 124 volatile uint8_t ValsUi8[] = {0, 1, 0x7e, 0x7f, 0x80, 0x81, 0xfe, 0xff}; | 121 volatile uint8_t ValsUi8[] = {0, 1, 0x7e, 0x7f, 0x80, 0x81, 0xfe, 0xff}; |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 } | 232 } |
| 236 testVector<v4ui32, v4f32>(TotalTests, Passes, Failures, "v4ui32", "v4f32"); | 233 testVector<v4ui32, v4f32>(TotalTests, Passes, Failures, "v4ui32", "v4f32"); |
| 237 testVector<v4si32, v4f32>(TotalTests, Passes, Failures, "v4si32", "v4f32"); | 234 testVector<v4si32, v4f32>(TotalTests, Passes, Failures, "v4si32", "v4f32"); |
| 238 testVector<v4f32, v4si32>(TotalTests, Passes, Failures, "v4f32", "v4si32"); | 235 testVector<v4f32, v4si32>(TotalTests, Passes, Failures, "v4f32", "v4si32"); |
| 239 testVector<v4f32, v4ui32>(TotalTests, Passes, Failures, "v4f32", "v4ui32"); | 236 testVector<v4f32, v4ui32>(TotalTests, Passes, Failures, "v4f32", "v4ui32"); |
| 240 | 237 |
| 241 std::cout << "TotalTests=" << TotalTests << " Passes=" << Passes | 238 std::cout << "TotalTests=" << TotalTests << " Passes=" << Passes |
| 242 << " Failures=" << Failures << "\n"; | 239 << " Failures=" << Failures << "\n"; |
| 243 return Failures; | 240 return Failures; |
| 244 } | 241 } |
| OLD | NEW |