testComparisons.js 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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 testComparisons() {
  13. print("Int8x16 lessThan");
  14. var m = SIMD.Int8x16(50, 100, 10, 1, 50, 100, 10, 1, 50, 100, 10, 1, 50, 100, 10, 1);
  15. var n = SIMD.Int8x16(100, 100, 1, 10, 100, 100, 1, 10, 100, 100, 1, 10, 100, 100, 1, 10);
  16. var cmp;
  17. cmp = SIMD.Int8x16.lessThan(m, n);
  18. equal(true, SIMD.Bool8x16.extractLane(cmp, 0));
  19. equal(false, SIMD.Bool8x16.extractLane(cmp, 1));
  20. equal(false, SIMD.Bool8x16.extractLane(cmp, 2));
  21. equal(true, SIMD.Bool8x16.extractLane(cmp, 3));
  22. equal(true, SIMD.Bool8x16.extractLane(cmp, 4));
  23. equal(false, SIMD.Bool8x16.extractLane(cmp, 5));
  24. equal(false, SIMD.Bool8x16.extractLane(cmp, 6));
  25. equal(true, SIMD.Bool8x16.extractLane(cmp, 7));
  26. equal(true, SIMD.Bool8x16.extractLane(cmp, 8));
  27. equal(false, SIMD.Bool8x16.extractLane(cmp, 9));
  28. equal(false, SIMD.Bool8x16.extractLane(cmp, 10));
  29. equal(true, SIMD.Bool8x16.extractLane(cmp, 11));
  30. equal(true, SIMD.Bool8x16.extractLane(cmp, 12));
  31. equal(false, SIMD.Bool8x16.extractLane(cmp, 13));
  32. equal(false, SIMD.Bool8x16.extractLane(cmp, 14));
  33. equal(true, SIMD.Bool8x16.extractLane(cmp, 15));
  34. print("Int8x16 equal");
  35. cmp = SIMD.Int8x16.equal(m, n);
  36. equal(false, SIMD.Bool8x16.extractLane(cmp, 0));
  37. equal(true, SIMD.Bool8x16.extractLane(cmp, 1));
  38. equal(false, SIMD.Bool8x16.extractLane(cmp, 2));
  39. equal(false, SIMD.Bool8x16.extractLane(cmp, 3));
  40. equal(false, SIMD.Bool8x16.extractLane(cmp, 4));
  41. equal(true, SIMD.Bool8x16.extractLane(cmp, 5));
  42. equal(false, SIMD.Bool8x16.extractLane(cmp, 6));
  43. equal(false, SIMD.Bool8x16.extractLane(cmp, 7));
  44. equal(false, SIMD.Bool8x16.extractLane(cmp, 8));
  45. equal(true, SIMD.Bool8x16.extractLane(cmp, 9));
  46. equal(false, SIMD.Bool8x16.extractLane(cmp, 10));
  47. equal(false, SIMD.Bool8x16.extractLane(cmp, 11));
  48. equal(false, SIMD.Bool8x16.extractLane(cmp, 12));
  49. equal(true, SIMD.Bool8x16.extractLane(cmp, 13));
  50. equal(false, SIMD.Bool8x16.extractLane(cmp, 14));
  51. equal(false, SIMD.Bool8x16.extractLane(cmp, 15));
  52. print("Int8x16 greaterThan");
  53. cmp = SIMD.Int8x16.greaterThan(m, n);
  54. equal(false, SIMD.Bool8x16.extractLane(cmp, 0));
  55. equal(false, SIMD.Bool8x16.extractLane(cmp, 1));
  56. equal(true, SIMD.Bool8x16.extractLane(cmp, 2));
  57. equal(false, SIMD.Bool8x16.extractLane(cmp, 3));
  58. equal(false, SIMD.Bool8x16.extractLane(cmp, 4));
  59. equal(false, SIMD.Bool8x16.extractLane(cmp, 5));
  60. equal(true, SIMD.Bool8x16.extractLane(cmp, 6));
  61. equal(false, SIMD.Bool8x16.extractLane(cmp, 7));
  62. equal(false, SIMD.Bool8x16.extractLane(cmp, 8));
  63. equal(false, SIMD.Bool8x16.extractLane(cmp, 9));
  64. equal(true, SIMD.Bool8x16.extractLane(cmp, 10));
  65. equal(false, SIMD.Bool8x16.extractLane(cmp, 11));
  66. equal(false, SIMD.Bool8x16.extractLane(cmp, 12));
  67. equal(false, SIMD.Bool8x16.extractLane(cmp, 13));
  68. equal(true, SIMD.Bool8x16.extractLane(cmp, 14));
  69. equal(false, SIMD.Bool8x16.extractLane(cmp, 15));
  70. }
  71. testComparisons();
  72. testComparisons();
  73. testComparisons();
  74. testComparisons();
  75. testComparisons();
  76. testComparisons();
  77. testComparisons();
  78. testComparisons();