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

Side by Side Diff: test/cctest/compiler/test-branch-combine.cc

Issue 501323002: Replace our homegrown ARRAY_SIZE() with Chrome's arraysize(). (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "test/cctest/cctest.h" 7 #include "test/cctest/cctest.h"
8 #include "test/cctest/compiler/codegen-tester.h" 8 #include "test/cctest/compiler/codegen-tester.h"
9 #include "test/cctest/compiler/value-helper.h" 9 #include "test/cctest/compiler/value-helper.h"
10 10
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 } 353 }
354 } 354 }
355 virtual int32_t expected(int32_t a, int32_t b) { 355 virtual int32_t expected(int32_t a, int32_t b) {
356 if (invert) return !w.Int32Compare(a, b) ? eq_constant : ne_constant; 356 if (invert) return !w.Int32Compare(a, b) ? eq_constant : ne_constant;
357 return w.Int32Compare(a, b) ? eq_constant : ne_constant; 357 return w.Int32Compare(a, b) ? eq_constant : ne_constant;
358 } 358 }
359 }; 359 };
360 360
361 361
362 TEST(BranchCombineInt32CmpAllInputShapes_materialized) { 362 TEST(BranchCombineInt32CmpAllInputShapes_materialized) {
363 for (size_t i = 0; i < ARRAY_SIZE(int32cmp_opcodes); i++) { 363 for (size_t i = 0; i < arraysize(int32cmp_opcodes); i++) {
364 CmpMaterializeBoolGen gen(int32cmp_opcodes[i], false); 364 CmpMaterializeBoolGen gen(int32cmp_opcodes[i], false);
365 Int32BinopInputShapeTester tester(&gen); 365 Int32BinopInputShapeTester tester(&gen);
366 tester.TestAllInputShapes(); 366 tester.TestAllInputShapes();
367 } 367 }
368 } 368 }
369 369
370 370
371 TEST(BranchCombineInt32CmpAllInputShapes_inverted_materialized) { 371 TEST(BranchCombineInt32CmpAllInputShapes_inverted_materialized) {
372 for (size_t i = 0; i < ARRAY_SIZE(int32cmp_opcodes); i++) { 372 for (size_t i = 0; i < arraysize(int32cmp_opcodes); i++) {
373 CmpMaterializeBoolGen gen(int32cmp_opcodes[i], true); 373 CmpMaterializeBoolGen gen(int32cmp_opcodes[i], true);
374 Int32BinopInputShapeTester tester(&gen); 374 Int32BinopInputShapeTester tester(&gen);
375 tester.TestAllInputShapes(); 375 tester.TestAllInputShapes();
376 } 376 }
377 } 377 }
378 378
379 379
380 TEST(BranchCombineInt32CmpAllInputShapes_branch_true) { 380 TEST(BranchCombineInt32CmpAllInputShapes_branch_true) {
381 for (int i = 0; i < static_cast<int>(ARRAY_SIZE(int32cmp_opcodes)); i++) { 381 for (int i = 0; i < static_cast<int>(arraysize(int32cmp_opcodes)); i++) {
382 CmpBranchGen gen(int32cmp_opcodes[i], false, false, 995 + i, -1011 - i); 382 CmpBranchGen gen(int32cmp_opcodes[i], false, false, 995 + i, -1011 - i);
383 Int32BinopInputShapeTester tester(&gen); 383 Int32BinopInputShapeTester tester(&gen);
384 tester.TestAllInputShapes(); 384 tester.TestAllInputShapes();
385 } 385 }
386 } 386 }
387 387
388 388
389 TEST(BranchCombineInt32CmpAllInputShapes_branch_false) { 389 TEST(BranchCombineInt32CmpAllInputShapes_branch_false) {
390 for (int i = 0; i < static_cast<int>(ARRAY_SIZE(int32cmp_opcodes)); i++) { 390 for (int i = 0; i < static_cast<int>(arraysize(int32cmp_opcodes)); i++) {
391 CmpBranchGen gen(int32cmp_opcodes[i], false, true, 795 + i, -2011 - i); 391 CmpBranchGen gen(int32cmp_opcodes[i], false, true, 795 + i, -2011 - i);
392 Int32BinopInputShapeTester tester(&gen); 392 Int32BinopInputShapeTester tester(&gen);
393 tester.TestAllInputShapes(); 393 tester.TestAllInputShapes();
394 } 394 }
395 } 395 }
396 396
397 397
398 TEST(BranchCombineInt32CmpAllInputShapes_inverse_branch_true) { 398 TEST(BranchCombineInt32CmpAllInputShapes_inverse_branch_true) {
399 for (int i = 0; i < static_cast<int>(ARRAY_SIZE(int32cmp_opcodes)); i++) { 399 for (int i = 0; i < static_cast<int>(arraysize(int32cmp_opcodes)); i++) {
400 CmpBranchGen gen(int32cmp_opcodes[i], true, false, 695 + i, -3011 - i); 400 CmpBranchGen gen(int32cmp_opcodes[i], true, false, 695 + i, -3011 - i);
401 Int32BinopInputShapeTester tester(&gen); 401 Int32BinopInputShapeTester tester(&gen);
402 tester.TestAllInputShapes(); 402 tester.TestAllInputShapes();
403 } 403 }
404 } 404 }
405 405
406 406
407 TEST(BranchCombineInt32CmpAllInputShapes_inverse_branch_false) { 407 TEST(BranchCombineInt32CmpAllInputShapes_inverse_branch_false) {
408 for (int i = 0; i < static_cast<int>(ARRAY_SIZE(int32cmp_opcodes)); i++) { 408 for (int i = 0; i < static_cast<int>(arraysize(int32cmp_opcodes)); i++) {
409 CmpBranchGen gen(int32cmp_opcodes[i], true, true, 595 + i, -4011 - i); 409 CmpBranchGen gen(int32cmp_opcodes[i], true, true, 595 + i, -4011 - i);
410 Int32BinopInputShapeTester tester(&gen); 410 Int32BinopInputShapeTester tester(&gen);
411 tester.TestAllInputShapes(); 411 tester.TestAllInputShapes();
412 } 412 }
413 } 413 }
414 414
415 415
416 TEST(BranchCombineFloat64Compares) { 416 TEST(BranchCombineFloat64Compares) {
417 double inf = V8_INFINITY; 417 double inf = V8_INFINITY;
418 double nan = v8::base::OS::nan_value(); 418 double nan = v8::base::OS::nan_value();
419 double inputs[] = {0.0, 1.0, -1.0, -inf, inf, nan}; 419 double inputs[] = {0.0, 1.0, -1.0, -inf, inf, nan};
420 420
421 int32_t eq_constant = -1733; 421 int32_t eq_constant = -1733;
422 int32_t ne_constant = 915118; 422 int32_t ne_constant = 915118;
423 423
424 double input_a = 0.0; 424 double input_a = 0.0;
425 double input_b = 0.0; 425 double input_b = 0.0;
426 426
427 CompareWrapper cmps[] = {CompareWrapper(IrOpcode::kFloat64Equal), 427 CompareWrapper cmps[] = {CompareWrapper(IrOpcode::kFloat64Equal),
428 CompareWrapper(IrOpcode::kFloat64LessThan), 428 CompareWrapper(IrOpcode::kFloat64LessThan),
429 CompareWrapper(IrOpcode::kFloat64LessThanOrEqual)}; 429 CompareWrapper(IrOpcode::kFloat64LessThanOrEqual)};
430 430
431 for (size_t c = 0; c < ARRAY_SIZE(cmps); c++) { 431 for (size_t c = 0; c < arraysize(cmps); c++) {
432 CompareWrapper cmp = cmps[c]; 432 CompareWrapper cmp = cmps[c];
433 for (int invert = 0; invert < 2; invert++) { 433 for (int invert = 0; invert < 2; invert++) {
434 RawMachineAssemblerTester<int32_t> m; 434 RawMachineAssemblerTester<int32_t> m;
435 Node* a = m.LoadFromPointer(&input_a, kMachFloat64); 435 Node* a = m.LoadFromPointer(&input_a, kMachFloat64);
436 Node* b = m.LoadFromPointer(&input_b, kMachFloat64); 436 Node* b = m.LoadFromPointer(&input_b, kMachFloat64);
437 437
438 MLabel blocka, blockb; 438 MLabel blocka, blockb;
439 Node* cond = cmp.MakeNode(&m, a, b); 439 Node* cond = cmp.MakeNode(&m, a, b);
440 if (invert) cond = m.Word32Equal(cond, m.Int32Constant(0)); 440 if (invert) cond = m.Word32Equal(cond, m.Int32Constant(0));
441 m.Branch(cond, &blocka, &blockb); 441 m.Branch(cond, &blocka, &blockb);
442 m.Bind(&blocka); 442 m.Bind(&blocka);
443 m.Return(m.Int32Constant(eq_constant)); 443 m.Return(m.Int32Constant(eq_constant));
444 m.Bind(&blockb); 444 m.Bind(&blockb);
445 m.Return(m.Int32Constant(ne_constant)); 445 m.Return(m.Int32Constant(ne_constant));
446 446
447 for (size_t i = 0; i < ARRAY_SIZE(inputs); i++) { 447 for (size_t i = 0; i < arraysize(inputs); i++) {
448 for (size_t j = 0; j < ARRAY_SIZE(inputs); j += 2) { 448 for (size_t j = 0; j < arraysize(inputs); j += 2) {
449 input_a = inputs[i]; 449 input_a = inputs[i];
450 input_b = inputs[i]; 450 input_b = inputs[i];
451 int32_t expected = 451 int32_t expected =
452 invert ? (cmp.Float64Compare(input_a, input_b) ? ne_constant 452 invert ? (cmp.Float64Compare(input_a, input_b) ? ne_constant
453 : eq_constant) 453 : eq_constant)
454 : (cmp.Float64Compare(input_a, input_b) ? eq_constant 454 : (cmp.Float64Compare(input_a, input_b) ? eq_constant
455 : ne_constant); 455 : ne_constant);
456 CHECK_EQ(expected, m.Call()); 456 CHECK_EQ(expected, m.Call());
457 } 457 }
458 } 458 }
459 } 459 }
460 } 460 }
461 } 461 }
462 #endif // V8_TURBOFAN_TARGET 462 #endif // V8_TURBOFAN_TARGET
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698