summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ion/bug1072188.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/ion/bug1072188.js')
-rw-r--r--js/src/jit-test/tests/ion/bug1072188.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/ion/bug1072188.js b/js/src/jit-test/tests/ion/bug1072188.js
new file mode 100644
index 000000000..dc13baf6a
--- /dev/null
+++ b/js/src/jit-test/tests/ion/bug1072188.js
@@ -0,0 +1,24 @@
+
+setJitCompilerOption("baseline.warmup.trigger", 10);
+setJitCompilerOption("ion.warmup.trigger", 30);
+var i;
+
+var uceFault = function (i) {
+ if (i > 98)
+ uceFault = function (i) { return true; };
+ return false;
+}
+
+var sqrt5 = Math.sqrt(5);
+var phi = (1 + sqrt5) / 2;
+function range_analysis_truncate(i) {
+ var fib = (Math.pow(phi, i) - Math.pow(1 - phi, i)) / sqrt5;
+ var x = (fib >> 8) * (fib >> 6);
+ if (uceFault(i) || uceFault(i))
+ assertEq(x, (fib >> 8) * (fib >> 6));
+ return x | 0;
+}
+
+for (i = 0; i < 100; i++) {
+ range_analysis_truncate(i);
+}