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

Side by Side Diff: test/mjsunit/harmony/simd.js

Issue 1309513005: Revert of [simd.js] Update to spec version 0.8.2. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 3 months 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 | « test/cctest/test-simd.cc ('k') | test/simdjs/testcfg.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Flags: --harmony-simd --harmony-tostring --harmony-reflect 5 // Flags: --harmony-simd --harmony-tostring --harmony-reflect
6 // Flags: --allow-natives-syntax --expose-natives-as natives --noalways-opt 6 // Flags: --allow-natives-syntax --expose-natives-as natives --noalways-opt
7 7
8 function lanesForType(typeName) { 8 function lanesForType(typeName) {
9 // The lane count follows the first 'x' in the type name, which begins with 9 // The lane count follows the first 'x' in the type name, which begins with
10 // 'float', 'int', or 'bool'. 10 // 'float', 'int', or 'bool'.
(...skipping 27 matching lines...) Expand all
38 for (var i = 0; i < lanes; i++) { 38 for (var i = 0; i < lanes; i++) {
39 var fromString = parseFn(laneStrings[i]), 39 var fromString = parseFn(laneStrings[i]),
40 fromValue = simdFn.extractLane(value, i); 40 fromValue = simdFn.extractLane(value, i);
41 if (Math.abs(fromString - fromValue) > Number.EPSILON) 41 if (Math.abs(fromString - fromValue) > Number.EPSILON)
42 return false; 42 return false;
43 } 43 }
44 return true; 44 return true;
45 } 45 }
46 46
47 47
48 var simdTypeNames = ['Float32x4', 'Int32x4', 'Uint32x4', 'Bool32x4', 48 var simdTypeNames = ['Float32x4', 'Int32x4', 'Bool32x4',
49 'Int16x8', 'Uint16x8', 'Bool16x8', 49 'Int16x8', 'Bool16x8',
50 'Int8x16', 'Uint8x16', 'Bool8x16']; 50 'Int8x16', 'Bool8x16'];
51 51
52 var nonSimdValues = [347, 1.275, NaN, "string", null, undefined, {}, 52 var nonSimdValues = [347, 1.275, NaN, "string", null, undefined, {},
53 function() {}]; 53 function() {}];
54 54
55 function checkTypeMatrix(type, fn) { 55 function checkTypeMatrix(type, fn) {
56 // Check against non-SIMD types. 56 // Check against non-SIMD types.
57 nonSimdValues.forEach(fn); 57 nonSimdValues.forEach(fn);
58 // Check against SIMD values of a different type. 58 // Check against SIMD values of a different type.
59 for (var i = 0; i < simdTypeNames.length; i++) { 59 for (var i = 0; i < simdTypeNames.length; i++) {
60 var otherType = simdTypeNames[i]; 60 var otherType = simdTypeNames[i];
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 test(1.1, 1); 205 test(1.1, 1);
206 test(-1, -1); 206 test(-1, -1);
207 test(-1.6, -1); 207 test(-1.6, -1);
208 test(2147483647, 2147483647); 208 test(2147483647, 2147483647);
209 test(2147483648, -2147483648); 209 test(2147483648, -2147483648);
210 test(2147483649, -2147483647); 210 test(2147483649, -2147483647);
211 test(4294967295, -1); 211 test(4294967295, -1);
212 test(4294967296, 0); 212 test(4294967296, 0);
213 test(4294967297, 1); 213 test(4294967297, 1);
214 break; 214 break;
215 case 'Uint32x4':
216 test(Infinity, 0);
217 test(-Infinity, 0);
218 test(NaN, 0);
219 test(0, 0);
220 test(-0, 0);
221 test(Number.MIN_VALUE, 0);
222 test(-Number.MIN_VALUE, 0);
223 test(0.1, 0);
224 test(-0.1, 0);
225 test(1, 1);
226 test(1.1, 1);
227 test(-1, 4294967295);
228 test(-1.6, 4294967295);
229 test(4294967295, 4294967295);
230 test(4294967296, 0);
231 test(4294967297, 1);
232 break;
233 case 'Int16x8': 215 case 'Int16x8':
234 test(Infinity, 0); 216 test(Infinity, 0);
235 test(-Infinity, 0); 217 test(-Infinity, 0);
236 test(NaN, 0); 218 test(NaN, 0);
237 test(0, 0); 219 test(0, 0);
238 test(-0, 0); 220 test(-0, 0);
239 test(Number.MIN_VALUE, 0); 221 test(Number.MIN_VALUE, 0);
240 test(-Number.MIN_VALUE, 0); 222 test(-Number.MIN_VALUE, 0);
241 test(0.1, 0); 223 test(0.1, 0);
242 test(-0.1, 0); 224 test(-0.1, 0);
243 test(1, 1); 225 test(1, 1);
244 test(1.1, 1); 226 test(1.1, 1);
245 test(-1, -1); 227 test(-1, -1);
246 test(-1.6, -1); 228 test(-1.6, -1);
247 test(32767, 32767); 229 test(32767, 32767);
248 test(32768, -32768); 230 test(32768, -32768);
249 test(32769, -32767); 231 test(32769, -32767);
250 test(65535, -1); 232 test(65535, -1);
251 test(65536, 0); 233 test(65536, 0);
252 test(65537, 1); 234 test(65537, 1);
253 break; 235 break;
254 case 'Uint16x8':
255 test(Infinity, 0);
256 test(-Infinity, 0);
257 test(NaN, 0);
258 test(0, 0);
259 test(-0, 0);
260 test(Number.MIN_VALUE, 0);
261 test(-Number.MIN_VALUE, 0);
262 test(0.1, 0);
263 test(-0.1, 0);
264 test(1, 1);
265 test(1.1, 1);
266 test(-1, 65535);
267 test(-1.6, 65535);
268 test(65535, 65535);
269 test(65536, 0);
270 test(65537, 1);
271 break;
272 case 'Int8x16': 236 case 'Int8x16':
273 test(Infinity, 0); 237 test(Infinity, 0);
274 test(-Infinity, 0); 238 test(-Infinity, 0);
275 test(NaN, 0); 239 test(NaN, 0);
276 test(0, 0); 240 test(0, 0);
277 test(-0, 0); 241 test(-0, 0);
278 test(Number.MIN_VALUE, 0); 242 test(Number.MIN_VALUE, 0);
279 test(-Number.MIN_VALUE, 0); 243 test(-Number.MIN_VALUE, 0);
280 test(0.1, 0); 244 test(0.1, 0);
281 test(-0.1, 0); 245 test(-0.1, 0);
282 test(1, 1); 246 test(1, 1);
283 test(1.1, 1); 247 test(1.1, 1);
284 test(-1, -1); 248 test(-1, -1);
285 test(-1.6, -1); 249 test(-1.6, -1);
286 test(127, 127); 250 test(127, 127);
287 test(128, -128); 251 test(128, -128);
288 test(129, -127); 252 test(129, -127);
289 test(255, -1); 253 test(255, -1);
290 test(256, 0); 254 test(256, 0);
291 test(257, 1); 255 test(257, 1);
292 break; 256 break;
293 case 'Uint8x16':
294 test(Infinity, 0);
295 test(-Infinity, 0);
296 test(NaN, 0);
297 test(0, 0);
298 test(-0, 0);
299 test(Number.MIN_VALUE, 0);
300 test(-Number.MIN_VALUE, 0);
301 test(0.1, 0);
302 test(-0.1, 0);
303 test(1, 1);
304 test(1.1, 1);
305 test(-1, 255);
306 test(-1.6, 255);
307 test(255, 255);
308 test(256, 0);
309 test(257, 1);
310 break;
311 case 'Bool32x4': 257 case 'Bool32x4':
312 case 'Bool16x8': 258 case 'Bool16x8':
313 case 'Bool8x16': 259 case 'Bool8x16':
314 test(true, true); 260 test(true, true);
315 test(false, false); 261 test(false, false);
316 test(0, false); 262 test(0, false);
317 test(1, true); 263 test(1, true);
318 test(0.1, true); 264 test(0.1, true);
319 test(NaN, false); 265 test(NaN, false);
320 test(null, false); 266 test(null, false);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 test(1, 2.5); 323 test(1, 2.5);
378 test(1, 1); 324 test(1, 1);
379 test(0, 0); 325 test(0, 0);
380 test(-0, +0); 326 test(-0, +0);
381 test(+0, -0); 327 test(+0, -0);
382 test(-0, -0); 328 test(-0, -0);
383 test(0, NaN); 329 test(0, NaN);
384 test(NaN, NaN); 330 test(NaN, NaN);
385 break; 331 break;
386 case 'Int32x4': 332 case 'Int32x4':
387 case 'Uint32x4':
388 case 'Int16x8': 333 case 'Int16x8':
389 case 'Uint16x8':
390 case 'Int8x16': 334 case 'Int8x16':
391 case 'Uint8x16':
392 test(1, 2); 335 test(1, 2);
393 test(1, 1); 336 test(1, 1);
394 test(1, -1); 337 test(1, -1);
395 break; 338 break;
396 case 'Bool32x4': 339 case 'Bool32x4':
397 case 'Bool16x8': 340 case 'Bool16x8':
398 case 'Bool8x16': 341 case 'Bool8x16':
399 test(true, false); 342 test(true, false);
400 test(false, true); 343 test(false, true);
401 break; 344 break;
(...skipping 29 matching lines...) Expand all
431 test(1, 2.5); 374 test(1, 2.5);
432 test(1, 1); 375 test(1, 1);
433 test(0, 0); 376 test(0, 0);
434 test(-0, +0); 377 test(-0, +0);
435 test(+0, -0); 378 test(+0, -0);
436 test(-0, -0); 379 test(-0, -0);
437 test(0, NaN); 380 test(0, NaN);
438 test(NaN, NaN); 381 test(NaN, NaN);
439 break; 382 break;
440 case 'Int32x4': 383 case 'Int32x4':
441 case 'Uint32x4':
442 case 'Int16x8': 384 case 'Int16x8':
443 case 'Uint16x8':
444 case 'Int8x16': 385 case 'Int8x16':
445 case 'Uint8x16':
446 test(1, 2); 386 test(1, 2);
447 test(1, 1); 387 test(1, 1);
448 test(1, -1); 388 test(1, -1);
449 break; 389 break;
450 case 'Bool32x4': 390 case 'Bool32x4':
451 case 'Bool16x8': 391 case 'Bool16x8':
452 case 'Bool8x16': 392 case 'Bool8x16':
453 test(true, false); 393 test(true, false);
454 test(false, true); 394 test(false, true);
455 break; 395 break;
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 assertSame(Object.getPrototypeOf(SIMD), Object.prototype); 551 assertSame(Object.getPrototypeOf(SIMD), Object.prototype);
612 assertSame(SIMD + "", "[object SIMD]"); 552 assertSame(SIMD + "", "[object SIMD]");
613 // The SIMD object is mutable. 553 // The SIMD object is mutable.
614 SIMD.foo = "foo"; 554 SIMD.foo = "foo";
615 assertSame(SIMD.foo, "foo"); 555 assertSame(SIMD.foo, "foo");
616 delete SIMD.foo; 556 delete SIMD.foo;
617 delete SIMD.Bool8x16; 557 delete SIMD.Bool8x16;
618 assertSame(SIMD.Bool8x16, undefined); 558 assertSame(SIMD.Bool8x16, undefined);
619 } 559 }
620 TestSIMDObject() 560 TestSIMDObject()
OLDNEW
« no previous file with comments | « test/cctest/test-simd.cc ('k') | test/simdjs/testcfg.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698