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

Unified Diff: test/mjsunit/regress/math-min.js

Issue 1695283002: [crankshaft][arm][mips] Fix Math.min(0, 0) (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: mips64 too Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/crankshaft/mips64/lithium-codegen-mips64.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/regress/math-min.js
diff --git a/test/mjsunit/regress/math-min.js b/test/mjsunit/regress/math-min.js
new file mode 100644
index 0000000000000000000000000000000000000000..942e9d0b7d2c6cc8a51998890a95e6fadb02becb
--- /dev/null
+++ b/test/mjsunit/regress/math-min.js
@@ -0,0 +1,66 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+var a = new Float64Array(4);
+a[2] *= -1;
+a[3] *= -1;
+assertEquals(0, a[0]);
+assertEquals(0, a[1]);
+assertEquals(-0, a[2]);
+assertEquals(-0, a[3]);
+
+function f1() {
+ var z = a[0];
+ // Same register.
+ assertEquals(0, Math.min(z, z));
+}
+
+function f2() {
+ // Different registers.
+ assertEquals(0, Math.min(a[0], a[1]));
+}
+
+function f3() {
+ // Zero and minus zero.
+ assertEquals(-0, Math.min(a[1], a[2]));
+}
+
+function f4() {
+ // Zero and minus zero, reversed order.
+ assertEquals(-0, Math.min(a[2], a[1]));
+}
+
+function f5() {
+ // Minus zero, same register.
+ var m_z = a[2];
+ assertEquals(-0, Math.min(m_z, m_z));
+}
+
+function f6() {
+ // Minus zero, different registers.
+ assertEquals(-0, Math.min(a[2], a[3]));
+}
+
+for (var i = 0; i < 3; i++) {
+ f1();
+ f2();
+ f3();
+ f4();
+ f5();
+ f6();
+}
+%OptimizeFunctionOnNextCall(f1);
+%OptimizeFunctionOnNextCall(f2);
+%OptimizeFunctionOnNextCall(f3);
+%OptimizeFunctionOnNextCall(f4);
+%OptimizeFunctionOnNextCall(f5);
+%OptimizeFunctionOnNextCall(f6);
+f1();
+f2();
+f3();
+f4();
+f5();
+f6();
« no previous file with comments | « src/crankshaft/mips64/lithium-codegen-mips64.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698