testAbsNeg.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. function equal(a, b) {
  6. if (a == b)
  7. {
  8. print("Correct");
  9. }
  10. else
  11. {
  12. print(">> Fail!");
  13. }
  14. }
  15. function testAbs() {
  16. print("Float32x4 abs");
  17. var a = SIMD.Float32x4(-4.0, -3.0, -2.0, -1.0);
  18. var c = SIMD.Float32x4.abs(a);
  19. equal(4.0, SIMD.Float32x4.extractLane(c, 0));
  20. equal(3.0, SIMD.Float32x4.extractLane(c, 1));
  21. equal(2.0, SIMD.Float32x4.extractLane(c, 2));
  22. equal(1.0, SIMD.Float32x4.extractLane(c, 3));
  23. c = SIMD.Float32x4.abs(SIMD.Float32x4(4.0, 3.0, 2.0, 1.0));
  24. equal(4.0, SIMD.Float32x4.extractLane(c, 0));
  25. equal(3.0, SIMD.Float32x4.extractLane(c, 1));
  26. equal(2.0, SIMD.Float32x4.extractLane(c, 2));
  27. equal(1.0, SIMD.Float32x4.extractLane(c, 3));
  28. }
  29. function testNeg() {
  30. print("Float32x4 neg");
  31. var a = SIMD.Float32x4(-4.0, -3.0, -2.0, -1.0);
  32. var c = SIMD.Float32x4.neg(a);
  33. equal(4.0, SIMD.Float32x4.extractLane(c, 0));
  34. equal(3.0, SIMD.Float32x4.extractLane(c, 1));
  35. equal(2.0, SIMD.Float32x4.extractLane(c, 2));
  36. equal(1.0, SIMD.Float32x4.extractLane(c, 3));
  37. c = SIMD.Float32x4.neg(SIMD.Float32x4(4.0, 3.0, 2.0, 1.0));
  38. equal(-4.0, SIMD.Float32x4.extractLane(c, 0));
  39. equal(-3.0, SIMD.Float32x4.extractLane(c, 1));
  40. equal(-2.0, SIMD.Float32x4.extractLane(c, 2));
  41. equal(-1.0, SIMD.Float32x4.extractLane(c, 3));
  42. }
  43. testAbs();
  44. testAbs();
  45. testAbs();
  46. testAbs();
  47. testAbs();
  48. testAbs();
  49. testAbs();
  50. testAbs();
  51. testNeg();
  52. testNeg();
  53. testNeg();
  54. testNeg();
  55. testNeg();
  56. testNeg();
  57. testNeg();
  58. testNeg();