Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(589)

Side by Side Diff: crosstest/test_cast_main.cpp

Issue 2432373002: [SubZero] Fix f64 to/from i64 moves (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Addressed review comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « crosstest/test_cast.cpp ('k') | crosstest/test_cast_to_u1.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 std::cout << std::fixed << XSTR(Func) << "<" << FromString \ 47 std::cout << std::fixed << XSTR(Func) << "<" << FromString \
48 << ", " XSTR(ToCName) ">(" << Input << "): "; \ 48 << ", " XSTR(ToCName) ">(" << Input << "): "; \
49 if (sizeof(ToCName) == 1) \ 49 if (sizeof(ToCName) == 1) \
50 std::cout << "sz=" << (int)ResultSz << " llc=" << (int)ResultLlc; \ 50 std::cout << "sz=" << (int)ResultSz << " llc=" << (int)ResultLlc; \
51 else \ 51 else \
52 std::cout << "sz=" << ResultSz << " llc=" << ResultLlc; \ 52 std::cout << "sz=" << ResultSz << " llc=" << ResultLlc; \
53 std::cout << "\n"; \ 53 std::cout << "\n"; \
54 } \ 54 } \
55 } while (0) 55 } while (0)
56 56
57 #define COMPARE_ARG(Func, FromCName, ToCName, Input, FromString) \
58 do { \
59 ToCName ResultSz, ResultLlc; \
60 ResultLlc = Func<FromCName, ToCName>(1, Input, 2); \
61 ResultSz = Subzero_::Func<FromCName, ToCName>(1, Input, 2); \
62 ++TotalTests; \
63 if (!memcmp(&ResultLlc, &ResultSz, sizeof(ToCName))) { \
64 ++Passes; \
65 } else { \
66 ++Failures; \
67 std::cout << std::fixed << XSTR(Func) << "<" << FromString \
68 << ", " XSTR(ToCName) ">(" << Input << "): "; \
69 if (sizeof(ToCName) == 1) \
70 std::cout << "sz=" << (int)ResultSz << " llc=" << (int)ResultLlc; \
71 else \
72 std::cout << "sz=" << ResultSz << " llc=" << ResultLlc; \
73 std::cout << "\n"; \
74 } \
75 } while (0)
76
57 #define COMPARE_VEC(Func, FromCName, ToCName, Input, FromString, ToString) \ 77 #define COMPARE_VEC(Func, FromCName, ToCName, Input, FromString, ToString) \
58 do { \ 78 do { \
59 ToCName ResultSz, ResultLlc; \ 79 ToCName ResultSz, ResultLlc; \
60 ResultLlc = Func<FromCName, ToCName>(Input); \ 80 ResultLlc = Func<FromCName, ToCName>(Input); \
61 ResultSz = Subzero_::Func<FromCName, ToCName>(Input); \ 81 ResultSz = Subzero_::Func<FromCName, ToCName>(Input); \
62 ++TotalTests; \ 82 ++TotalTests; \
63 if (!memcmp(&ResultLlc, &ResultSz, sizeof(ToCName))) { \ 83 if (!memcmp(&ResultLlc, &ResultSz, sizeof(ToCName))) { \
64 ++Passes; \ 84 ++Passes; \
65 } else { \ 85 } else { \
66 ++Failures; \ 86 ++Failures; \
(...skipping 13 matching lines...) Expand all
80 COMPARE(cast, FromType, uint8_t, Val, FromTypeString); 100 COMPARE(cast, FromType, uint8_t, Val, FromTypeString);
81 COMPARE(cast, FromType, myint8_t, Val, FromTypeString); 101 COMPARE(cast, FromType, myint8_t, Val, FromTypeString);
82 COMPARE(cast, FromType, uint16_t, Val, FromTypeString); 102 COMPARE(cast, FromType, uint16_t, Val, FromTypeString);
83 COMPARE(cast, FromType, int16_t, Val, FromTypeString); 103 COMPARE(cast, FromType, int16_t, Val, FromTypeString);
84 COMPARE(cast, FromType, uint32_t, Val, FromTypeString); 104 COMPARE(cast, FromType, uint32_t, Val, FromTypeString);
85 COMPARE(cast, FromType, int32_t, Val, FromTypeString); 105 COMPARE(cast, FromType, int32_t, Val, FromTypeString);
86 COMPARE(cast, FromType, uint64, Val, FromTypeString); 106 COMPARE(cast, FromType, uint64, Val, FromTypeString);
87 COMPARE(cast, FromType, int64, Val, FromTypeString); 107 COMPARE(cast, FromType, int64, Val, FromTypeString);
88 COMPARE(cast, FromType, float, Val, FromTypeString); 108 COMPARE(cast, FromType, float, Val, FromTypeString);
89 COMPARE(cast, FromType, double, Val, FromTypeString); 109 COMPARE(cast, FromType, double, Val, FromTypeString);
110 COMPARE_ARG(cast, FromType, bool, Val, FromTypeString);
111 COMPARE_ARG(cast, FromType, uint8_t, Val, FromTypeString);
112 COMPARE_ARG(cast, FromType, myint8_t, Val, FromTypeString);
113 COMPARE_ARG(cast, FromType, uint16_t, Val, FromTypeString);
114 COMPARE_ARG(cast, FromType, int16_t, Val, FromTypeString);
115 COMPARE_ARG(cast, FromType, uint32_t, Val, FromTypeString);
116 COMPARE_ARG(cast, FromType, int32_t, Val, FromTypeString);
117 COMPARE_ARG(cast, FromType, uint64, Val, FromTypeString);
118 COMPARE_ARG(cast, FromType, int64, Val, FromTypeString);
119 COMPARE_ARG(cast, FromType, float, Val, FromTypeString);
120 COMPARE_ARG(cast, FromType, double, Val, FromTypeString);
90 } 121 }
91 122
92 template <typename FromType, typename ToType> 123 template <typename FromType, typename ToType>
93 void testVector(size_t &TotalTests, size_t &Passes, size_t &Failures, 124 void testVector(size_t &TotalTests, size_t &Passes, size_t &Failures,
94 const char *FromTypeString, const char *ToTypeString) { 125 const char *FromTypeString, const char *ToTypeString) {
95 const static size_t NumElementsInType = Vectors<FromType>::NumElements; 126 const static size_t NumElementsInType = Vectors<FromType>::NumElements;
96 PRNG Index; 127 PRNG Index;
97 static const float NegInf = -1.0 / 0.0; 128 static const float NegInf = -1.0 / 0.0;
98 static const float PosInf = 1.0 / 0.0; 129 static const float PosInf = 1.0 / 0.0;
99 static const float Nan = 0.0 / 0.0; 130 static const float Nan = 0.0 / 0.0;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 testValue<uint16_t>(Val, TotalTests, Passes, Failures, "uint16_t"); 222 testValue<uint16_t>(Val, TotalTests, Passes, Failures, "uint16_t");
192 } 223 }
193 for (size_t i = 0; i < NumValsSi16; ++i) { 224 for (size_t i = 0; i < NumValsSi16; ++i) {
194 int16_t Val = ValsSi16[i]; 225 int16_t Val = ValsSi16[i];
195 testValue<int16_t>(Val, TotalTests, Passes, Failures, "int16_t"); 226 testValue<int16_t>(Val, TotalTests, Passes, Failures, "int16_t");
196 } 227 }
197 for (size_t i = 0; i < NumValsUi32; ++i) { 228 for (size_t i = 0; i < NumValsUi32; ++i) {
198 uint32_t Val = ValsUi32[i]; 229 uint32_t Val = ValsUi32[i];
199 testValue<uint32_t>(Val, TotalTests, Passes, Failures, "uint32_t"); 230 testValue<uint32_t>(Val, TotalTests, Passes, Failures, "uint32_t");
200 COMPARE(castBits, uint32_t, float, Val, "uint32_t"); 231 COMPARE(castBits, uint32_t, float, Val, "uint32_t");
232 COMPARE_ARG(castBits, uint32_t, float, Val, "uint32_t");
201 } 233 }
202 for (size_t i = 0; i < NumValsSi32; ++i) { 234 for (size_t i = 0; i < NumValsSi32; ++i) {
203 int32_t Val = ValsSi32[i]; 235 int32_t Val = ValsSi32[i];
204 testValue<int32_t>(Val, TotalTests, Passes, Failures, "int32_t"); 236 testValue<int32_t>(Val, TotalTests, Passes, Failures, "int32_t");
205 } 237 }
206 for (size_t i = 0; i < NumValsUi64; ++i) { 238 for (size_t i = 0; i < NumValsUi64; ++i) {
207 uint64 Val = ValsUi64[i]; 239 uint64 Val = ValsUi64[i];
208 testValue<uint64>(Val, TotalTests, Passes, Failures, "uint64"); 240 testValue<uint64>(Val, TotalTests, Passes, Failures, "uint64");
209 COMPARE(castBits, uint64, double, Val, "uint64"); 241 COMPARE(castBits, uint64, double, Val, "uint64");
242 COMPARE_ARG(castBits, uint64, double, Val, "uint64");
210 } 243 }
211 for (size_t i = 0; i < NumValsSi64; ++i) { 244 for (size_t i = 0; i < NumValsSi64; ++i) {
212 int64 Val = ValsSi64[i]; 245 int64 Val = ValsSi64[i];
213 testValue<int64>(Val, TotalTests, Passes, Failures, "int64"); 246 testValue<int64>(Val, TotalTests, Passes, Failures, "int64");
214 } 247 }
215 for (size_t i = 0; i < NumValsF32; ++i) { 248 for (size_t i = 0; i < NumValsF32; ++i) {
216 for (unsigned j = 0; j < 2; ++j) { 249 for (unsigned j = 0; j < 2; ++j) {
217 float Val = ValsF32[i]; 250 float Val = ValsF32[i];
218 if (j > 0) 251 if (j > 0)
219 Val = -Val; 252 Val = -Val;
220 testValue<float>(Val, TotalTests, Passes, Failures, "float"); 253 testValue<float>(Val, TotalTests, Passes, Failures, "float");
221 COMPARE(castBits, float, uint32_t, Val, "float"); 254 COMPARE(castBits, float, uint32_t, Val, "float");
255 COMPARE_ARG(castBits, float, uint32_t, Val, "float");
222 } 256 }
223 } 257 }
224 for (size_t i = 0; i < NumValsF64; ++i) { 258 for (size_t i = 0; i < NumValsF64; ++i) {
225 for (unsigned j = 0; j < 2; ++j) { 259 for (unsigned j = 0; j < 2; ++j) {
226 double Val = ValsF64[i]; 260 double Val = ValsF64[i];
227 if (j > 0) 261 if (j > 0)
228 Val = -Val; 262 Val = -Val;
229 testValue<double>(Val, TotalTests, Passes, Failures, "double"); 263 testValue<double>(Val, TotalTests, Passes, Failures, "double");
230 COMPARE(castBits, double, uint64, Val, "double"); 264 COMPARE(castBits, double, uint64, Val, "double");
265 COMPARE_ARG(castBits, double, uint64, Val, "double");
231 } 266 }
232 } 267 }
268
233 testVector<v4ui32, v4f32>(TotalTests, Passes, Failures, "v4ui32", "v4f32"); 269 testVector<v4ui32, v4f32>(TotalTests, Passes, Failures, "v4ui32", "v4f32");
234 testVector<v4si32, v4f32>(TotalTests, Passes, Failures, "v4si32", "v4f32"); 270 testVector<v4si32, v4f32>(TotalTests, Passes, Failures, "v4si32", "v4f32");
235 testVector<v4f32, v4si32>(TotalTests, Passes, Failures, "v4f32", "v4si32"); 271 testVector<v4f32, v4si32>(TotalTests, Passes, Failures, "v4f32", "v4si32");
236 testVector<v4f32, v4ui32>(TotalTests, Passes, Failures, "v4f32", "v4ui32"); 272 testVector<v4f32, v4ui32>(TotalTests, Passes, Failures, "v4f32", "v4ui32");
237 273
238 std::cout << "TotalTests=" << TotalTests << " Passes=" << Passes 274 std::cout << "TotalTests=" << TotalTests << " Passes=" << Passes
239 << " Failures=" << Failures << "\n"; 275 << " Failures=" << Failures << "\n";
240 return Failures; 276 return Failures;
241 } 277 }
OLDNEW
« no previous file with comments | « crosstest/test_cast.cpp ('k') | crosstest/test_cast_to_u1.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698