testWithLane.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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 equalNaN(a) {
  13. if (isNaN(a)) {
  14. print("Correct");
  15. } else {
  16. print(">> Fail!");
  17. }
  18. }
  19. function testReplaceLane1() {
  20. print("Float32x4 Lane1");
  21. var a = SIMD.Float32x4(16.0, 9.0, 4.0, 1.0);
  22. var c = SIMD.Float32x4.replaceLane(a, 0, 20.0);
  23. equal(20.0, SIMD.Float32x4.extractLane(c, 0));
  24. equal(9.0, SIMD.Float32x4.extractLane(c, 1));
  25. equal(4.0, SIMD.Float32x4.extractLane(c, 2));
  26. equal(1.0, SIMD.Float32x4.extractLane(c, 3));
  27. }
  28. function testReplaceLane2() {
  29. print("Float32x4 Lane2");
  30. var a = SIMD.Float32x4(16.0, 9.0, 4.0, 1.0);
  31. var c = SIMD.Float32x4.replaceLane(a, 1, 20.0);
  32. equal(16.0, SIMD.Float32x4.extractLane(c, 0));
  33. equal(20.0, SIMD.Float32x4.extractLane(c, 1));
  34. equal(4.0, SIMD.Float32x4.extractLane(c, 2));
  35. equal(1.0, SIMD.Float32x4.extractLane(c, 3));
  36. }
  37. function testReplaceLane3() {
  38. print("Float32x4 Lane3");
  39. var a = SIMD.Float32x4(16.0, 9.0, 4.0, 1.0);
  40. var c = SIMD.Float32x4.replaceLane(a, 2, 20.0);
  41. equal(16.0, SIMD.Float32x4.extractLane(c, 0));
  42. equal(9.0, SIMD.Float32x4.extractLane(c, 1));
  43. equal(20.0, SIMD.Float32x4.extractLane(c, 2));
  44. equal(1.0, SIMD.Float32x4.extractLane(c, 3));
  45. }
  46. function testReplaceLane4() {
  47. print("Float32x4 Lane4");
  48. var a = SIMD.Float32x4(16.0, 9.0, 4.0, 1.0);
  49. var c = SIMD.Float32x4.replaceLane(a, 3, 20.0);
  50. equal(16.0, SIMD.Float32x4.extractLane(c, 0));
  51. equal(9.0, SIMD.Float32x4.extractLane(c, 1));
  52. equal(4.0, SIMD.Float32x4.extractLane(c, 2));
  53. equal(20.0, SIMD.Float32x4.extractLane(c, 3));
  54. }
  55. testReplaceLane1();
  56. testReplaceLane1();
  57. testReplaceLane1();
  58. testReplaceLane1();
  59. testReplaceLane1();
  60. testReplaceLane1();
  61. testReplaceLane1();
  62. testReplaceLane1();
  63. testReplaceLane2();
  64. testReplaceLane2();
  65. testReplaceLane2();
  66. testReplaceLane2();
  67. testReplaceLane2();
  68. testReplaceLane2();
  69. testReplaceLane2();
  70. testReplaceLane2();
  71. testReplaceLane3();
  72. testReplaceLane3();
  73. testReplaceLane3();
  74. testReplaceLane3();
  75. testReplaceLane3();
  76. testReplaceLane3();
  77. testReplaceLane3();
  78. testReplaceLane3();
  79. testReplaceLane4();
  80. testReplaceLane4();
  81. testReplaceLane4();
  82. testReplaceLane4();
  83. testReplaceLane4();
  84. testReplaceLane4();
  85. testReplaceLane4();
  86. testReplaceLane4();