b208_asmjs.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft Corporation and contributors. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. function asmModule(stdlib, imports) {
  6. "use asm";
  7. var f4 = stdlib.SIMD.Float32x4;
  8. var f4check = f4.check;
  9. var f4min = f4.min;
  10. var f4max = f4.max;
  11. var f4sqrt = f4.sqrt;
  12. var fround = stdlib.Math.fround;
  13. function func1()
  14. {
  15. var x = f4(-1.0,42.0,-1.0,-1.0);
  16. var y = f4(-1.0,-1.0,-1.0,3.14);
  17. var res = f4(0.0,0.0,0.0,0.0);
  18. x = f4sqrt(x); //generate nans in the right positions
  19. y = f4sqrt(y);
  20. res = f4max(x,y);
  21. return f4check(res);
  22. }
  23. function func2()
  24. {
  25. var x = f4(-1.0,42.0,-1.0,-1.0);
  26. var y = f4(-1.0,-1.0,-1.0,3.14);
  27. var res = f4(0.0,0.0,0.0,0.0);
  28. x = f4sqrt(x); //generate nans in the right positions
  29. y = f4sqrt(y);
  30. res = f4min(x,y);
  31. return f4check(res);
  32. }
  33. return {func1:func1, func2:func2};
  34. }
  35. var m = asmModule(this, {});
  36. m.func1();
  37. m.func2();
  38. print (m.func1());
  39. print (m.func2());