Index: test/codegen/lib/typed_data/int32x4_shuffle_test.dart |
diff --git a/test/codegen/lib/typed_data/int32x4_shuffle_test.dart b/test/codegen/lib/typed_data/int32x4_shuffle_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d2b4bc6e37ec3de983f89b8179e2049b424a588b |
--- /dev/null |
+++ b/test/codegen/lib/typed_data/int32x4_shuffle_test.dart |
@@ -0,0 +1,59 @@ |
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+// VMOptions=--optimization-counter-threshold=10 |
+ |
+// Library tag to be able to run in html test framework. |
+library uint32x4_shuffle_test; |
+ |
+import 'dart:typed_data'; |
+import "package:expect/expect.dart"; |
+ |
+void testShuffle() { |
+ var m = new Int32x4(1, 2, 3, 4); |
+ var c; |
+ c = m.shuffle(Int32x4.WZYX); |
+ Expect.equals(4, c.x); |
+ Expect.equals(3, c.y); |
+ Expect.equals(2, c.z); |
+ Expect.equals(1, c.w); |
+} |
+ |
+void testShuffleNonConstant(mask) { |
+ var m = new Int32x4(1, 2, 3, 4); |
+ var c; |
+ c = m.shuffle(mask); |
+ if (mask == 1) { |
+ Expect.equals(2, c.x); |
+ Expect.equals(1, c.y); |
+ Expect.equals(1, c.z); |
+ Expect.equals(1, c.w); |
+ } else { |
+ Expect.equals(Int32x4.YYYY + 1, mask); |
+ Expect.equals(3, c.x); |
+ Expect.equals(2, c.y); |
+ Expect.equals(2, c.z); |
+ Expect.equals(2, c.w); |
+ } |
+} |
+ |
+void testShuffleMix() { |
+ var m = new Int32x4(1, 2, 3, 4); |
+ var n = new Int32x4(5, 6, 7, 8); |
+ var c = m.shuffleMix(n, Int32x4.XYXY); |
+ Expect.equals(1, c.x); |
+ Expect.equals(2, c.y); |
+ Expect.equals(5, c.z); |
+ Expect.equals(6, c.w); |
+} |
+ |
+main() { |
+ var xxxx = Int32x4.XXXX + 1; |
+ var yyyy = Int32x4.YYYY + 1; |
+ for (int i = 0; i < 20; i++) { |
+ testShuffle(); |
+ testShuffleNonConstant(xxxx); |
+ testShuffleNonConstant(yyyy); |
+ testShuffleMix(); |
+ } |
+} |