testNeg.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. print("Correct");
  8. } else {
  9. print(">> Fail!");
  10. }
  11. }
  12. function testNeg() {
  13. print("Int32x4 neg");
  14. var a = SIMD.Int32x4(-4, -3, -2, -1);
  15. var c = SIMD.Int32x4.neg(a);
  16. equal(4, SIMD.Int32x4.extractLane(c, 0));
  17. equal(3, SIMD.Int32x4.extractLane(c, 1));
  18. equal(2, SIMD.Int32x4.extractLane(c, 2));
  19. equal(1, SIMD.Int32x4.extractLane(c, 3));
  20. c = SIMD.Int32x4.neg(SIMD.Int32x4(4, 3, 2, 1));
  21. equal(-4, SIMD.Int32x4.extractLane(c, 0));
  22. equal(-3, SIMD.Int32x4.extractLane(c, 1));
  23. equal(-2, SIMD.Int32x4.extractLane(c, 2));
  24. equal(-1, SIMD.Int32x4.extractLane(c, 3));
  25. var m = SIMD.Int32x4(16, 32, 64, 128);
  26. var n = SIMD.Int32x4(-1, -2, -3, -4);
  27. m = SIMD.Int32x4.neg(m);
  28. n = SIMD.Int32x4.neg(n);
  29. equal(-16, SIMD.Int32x4.extractLane(m, 0));
  30. equal(-32, SIMD.Int32x4.extractLane(m, 1));
  31. equal(-64, SIMD.Int32x4.extractLane(m, 2));
  32. equal(-128, SIMD.Int32x4.extractLane(m, 3));
  33. equal(1, SIMD.Int32x4.extractLane(n, 0));
  34. equal(2, SIMD.Int32x4.extractLane(n, 1));
  35. equal(3, SIMD.Int32x4.extractLane(n, 2));
  36. equal(4, SIMD.Int32x4.extractLane(n, 3));
  37. }
  38. testNeg();
  39. testNeg();
  40. testNeg();
  41. testNeg();
  42. testNeg();
  43. testNeg();
  44. testNeg();
  45. testNeg();