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

Side by Side Diff: test/mjsunit/math-mul.js

Issue 2154073002: [Turbofan]: Eliminate the check for -0 if it's not possible/observable. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fixes. Created 4 years, 5 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
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
Benedikt Meurer 2016/07/17 17:44:07 Can you move this file into mjsunit/compiler/ dire
mvstanton 2016/07/18 08:48:58 Done.
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: --allow-natives-syntax 5 // Flags: --allow-natives-syntax
6 6
7 // For TurboFan, make sure we can eliminate the -0 return value check
8 // by recognizing a constant value.
9 function gotaconstant(y) { return 15 * y; }
10 assertEquals(45, gotaconstant(3));
11 gotaconstant(3);
12 %OptimizeFunctionOnNextCall(gotaconstant);
13 gotaconstant(3);
14
15 function gotaconstant_truncated(x, y) { return x * y | 0; }
16 assertEquals(45, gotaconstant_truncated(3, 15));
17 gotaconstant_truncated(3, 15);
18 %OptimizeFunctionOnNextCall(gotaconstant_truncated);
19 gotaconstant_truncated(3, 15);
20
7 function test(x, y) { return x * y; } 21 function test(x, y) { return x * y; }
8 22
9 assertEquals(12, test(3, 4)); 23 assertEquals(12, test(3, 4));
10 assertEquals(16, test(4, 4)); 24 assertEquals(16, test(4, 4));
11 25
12 %OptimizeFunctionOnNextCall(test); 26 %OptimizeFunctionOnNextCall(test);
13 assertEquals(27, test(9, 3)); 27 assertEquals(27, test(9, 3));
14 28
15 assertEquals(-0, test(-3, 0)); 29 assertEquals(-0, test(-3, 0));
16 assertEquals(-0, test(0, -0)); 30 assertEquals(-0, test(0, -0));
17 31
18 32
19 const SMI_MAX = (1 << 29) - 1 + (1 << 29); // Create without overflowing. 33 const SMI_MAX = (1 << 29) - 1 + (1 << 29); // Create without overflowing.
20 const SMI_MIN = -SMI_MAX - 1; // Create without overflowing. 34 const SMI_MIN = -SMI_MAX - 1; // Create without overflowing.
21 35
22 // multiply by 3 to avoid compiler optimizations that convert 2*x to x + x. 36 // multiply by 3 to avoid compiler optimizations that convert 2*x to x + x.
23 assertEquals(SMI_MAX + SMI_MAX + SMI_MAX, test(SMI_MAX, 3)); 37 assertEquals(SMI_MAX + SMI_MAX + SMI_MAX, test(SMI_MAX, 3));
OLDNEW
« src/compiler/simplified-lowering.cc ('K') | « src/compiler/simplified-operator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698