浏览代码

adding a unit test to make sure we allow ints in simd shift right

adding copyright header
nikolayk 9 年之前
父节点
当前提交
38f26c92f5
共有 3 个文件被更改,包括 55 次插入0 次删除
  1. 2 0
      test/Bugs/b108.baseline
  2. 45 0
      test/Bugs/b108.js
  3. 8 0
      test/Bugs/rlexe.xml

+ 2 - 0
test/Bugs/b108.baseline

@@ -0,0 +1,2 @@
+Successfully compiled asm.js code
+SIMD.Int32x4(1, 2, 3, 4)

+ 45 - 0
test/Bugs/b108.js

@@ -0,0 +1,45 @@
+//-------------------------------------------------------------------------------------------------------
+// Copyright (C) Microsoft Corporation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
+//-------------------------------------------------------------------------------------------------------
+
+
+function asmModule(stdlib, imports,buffer) {
+    "use asm";
+    var i4 = stdlib.SIMD.Int32x4;
+    var i4check = i4.check;
+    var i4shiftLeftByScalar = i4.shiftLeftByScalar;
+    var i4shiftRightByScalar = i4.shiftRightByScalar;
+    var u4 = stdlib.SIMD.Uint32x4;
+    var u4check = u4.check;
+    var u4shiftLeftByScalar = u4.shiftLeftByScalar  ;
+    var u4shiftRightByScalar= u4.shiftRightByScalar ;
+    var loopCOUNT = 3;
+
+    function func1(a)
+    {
+        a = i4check(a);
+        var x = u4(0, 0, 0, 0);
+        var y = u4(0, 0, 0, 0);
+        var loopIndex = 0;
+        var loopCOUNT = 3;
+
+        while ( (loopIndex|0) < (loopCOUNT|0)) {
+            x = u4shiftLeftByScalar(x, loopIndex);
+            y = u4shiftRightByScalar(y, loopIndex);
+
+            loopIndex = (loopIndex + 1) | 0;
+        }
+        return i4check(a);
+    }
+    return {func1:func1};
+}
+
+var buffer = new ArrayBuffer(0x10000);
+var m = asmModule(this, {}, buffer);
+
+var v = SIMD.Int32x4(1, 2, 3, 4 );
+
+var ret1 = m.func1(v);
+print(ret1);
+

+ 8 - 0
test/Bugs/rlexe.xml

@@ -315,4 +315,12 @@
       <compile-flags>-simdjs -testtrace:asmjs  -asmjs -maic:0</compile-flags>
     </default>
   </test>
+  <test>
+    <default>
+      <files>b108.js</files>
+      <baseline>b108.baseline</baseline>
+      <tags>exclude_dynapogo,exclude_ship</tags>
+      <compile-flags>-simdjs  -asmjs -testtrace:asmjs -asmjsstoponerror</compile-flags>
+    </default>
+  </test>
 </regress-exe>