//------------------------------------------------------------------------------------------------------- // Copyright (C) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. //------------------------------------------------------------------------------------------------------- function equal(a, b) { if (a == b) { print("Correct"); } else { print(">> Fail!"); } } function testSwizzle() { print("Int32x4 Shuffle"); var a = SIMD.Int32x4(1, 2, 3, 4); var k = true; var xyxy = SIMD.Int32x4.swizzle(a, 0, ["1"], false, true); var zwzw = SIMD.Int32x4.swizzle(a, 2, "3", 2, [3]); var xxxx = SIMD.Int32x4.swizzle(a, 0, 0, 0, 0); equal(1, SIMD.Int32x4.extractLane(xyxy, 0)); equal(2, SIMD.Int32x4.extractLane(xyxy, 1)); equal(1, SIMD.Int32x4.extractLane(xyxy, 2)); equal(2, SIMD.Int32x4.extractLane(xyxy, 3)); equal(3, SIMD.Int32x4.extractLane(zwzw, 0)); equal(4, SIMD.Int32x4.extractLane(zwzw, 1)); equal(3, SIMD.Int32x4.extractLane(zwzw, 2)); equal(4, SIMD.Int32x4.extractLane(zwzw, 3)); equal(1, SIMD.Int32x4.extractLane(xxxx, 0)); equal(1, SIMD.Int32x4.extractLane(xxxx, 1)); equal(1, SIMD.Int32x4.extractLane(xxxx, 2)); equal(1, SIMD.Int32x4.extractLane(xxxx, 3)); } function testShuffle() { print("Int32x4 ShuffleMix"); var a = SIMD.Int32x4(1, 2, 3, 4); var b = SIMD.Int32x4(5, 6, 7, 8); var xyxy = SIMD.Int32x4.shuffle(a, b, false, true, "4", [5]); var zwzw = SIMD.Int32x4.shuffle(a, b, 2, 3, 6, 7); var xxxx = SIMD.Int32x4.shuffle(a, b, 0, 0, 4, 4); equal(1, SIMD.Int32x4.extractLane(xyxy, 0)); equal(2, SIMD.Int32x4.extractLane(xyxy, 1)); equal(5, SIMD.Int32x4.extractLane(xyxy, 2)); equal(6, SIMD.Int32x4.extractLane(xyxy, 3)); equal(3, SIMD.Int32x4.extractLane(zwzw, 0)); equal(4, SIMD.Int32x4.extractLane(zwzw, 1)); equal(7, SIMD.Int32x4.extractLane(zwzw, 2)); equal(8, SIMD.Int32x4.extractLane(zwzw, 3)); equal(1, SIMD.Int32x4.extractLane(xxxx, 0)); equal(1, SIMD.Int32x4.extractLane(xxxx, 1)); equal(5, SIMD.Int32x4.extractLane(xxxx, 2)); equal(5, SIMD.Int32x4.extractLane(xxxx, 3)); } testSwizzle(); testSwizzle(); testSwizzle(); testSwizzle(); testSwizzle(); testSwizzle(); testSwizzle(); testSwizzle(); testShuffle(); testShuffle(); testShuffle(); testShuffle(); testShuffle(); testShuffle(); testShuffle(); testShuffle();