summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/asm.js/testBug1099216.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/asm.js/testBug1099216.js')
-rw-r--r--js/src/jit-test/tests/asm.js/testBug1099216.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/asm.js/testBug1099216.js b/js/src/jit-test/tests/asm.js/testBug1099216.js
new file mode 100644
index 000000000..3514f307d
--- /dev/null
+++ b/js/src/jit-test/tests/asm.js/testBug1099216.js
@@ -0,0 +1,61 @@
+if (typeof SIMD === 'undefined' || !isSimdAvailable()) {
+ print("won't run tests as simd extensions aren't activated yet");
+ quit(0);
+}
+
+(function(global) {
+ "use asm";
+ var frd = global.Math.fround;
+ var fx4 = global.SIMD.Float32x4;
+ var fc4 = fx4.check;
+ var fsp = fx4.splat;
+ function s(){}
+ function d(x){x=fc4(x);}
+ function e() {
+ var x = frd(0);
+ x = frd(x / x);
+ s();
+ d(fsp(x));
+ }
+ return e;
+})(this)();
+
+(function(m) {
+ "use asm"
+ var k = m.SIMD.Bool32x4
+ var g = m.SIMD.Int32x4
+ var gc = g.check;
+ var h = g.select
+ function f() {
+ var x = k(0, 0, 0, 0)
+ var y = g(1, 2, 3, 4)
+ return gc(h(x, y, y))
+ }
+ return f;
+})(this)();
+
+t = (function(global) {
+ "use asm"
+ var toF = global.Math.fround
+ var f4 = global.SIMD.Float32x4
+ var f4c = f4.check
+ function p(x, y, width, value, max_iterations) {
+ x = x | 0
+ y = y | 0
+ width = width | 0
+ value = value | 0
+ max_iterations = max_iterations | 0
+ }
+ function m(xf, yf, yd, max_iterations) {
+ xf = toF(xf)
+ yf = toF(yf)
+ yd = toF(yd)
+ max_iterations = max_iterations | 0
+ var _ = f4(0, 0, 0, 0), c_im4 = f4(0, 0, 0, 0)
+ c_im4 = f4(yf, yd, yd, yf)
+ return f4c(c_im4);
+ }
+ return {p:p,m:m};
+})(this)
+t.p();
+t.m();