2008-10-28 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Tue, 28 Oct 2008 19:24:47 +0000 (19:24 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Tue, 28 Oct 2008 19:24:47 +0000 (19:24 -0000)
* basic-simd.cs: New tests for Vector2l.

svn path=/trunk/mono/; revision=117297

mono/mini/ChangeLog
mono/mini/basic-simd.cs

index 76d46ffa39ff170748dffbf26e17ffb78abeac49..29fc29719ffad0d2dae85ccf0f063add173e3a32 100644 (file)
@@ -1,3 +1,7 @@
+2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * basic-simd.cs: New tests for Vector2l.
+
 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
 
        * cpu-x86.md: Add long version of most packed int ops.
index 99f2a14c55e7626f8a98ec1ea3ac34952e39d15a..e90bb8700b8fea8c429f1bfda49c4dd8f6d9e9a0 100644 (file)
@@ -2,6 +2,145 @@ using System;
 using Mono.Simd;
 
 public class SimdTests {
+       public static unsafe int test_vector2l_cmp_gt () {
+               Vector2l a = new Vector2l (10, 5);
+               Vector2l b = new Vector2l (-1, 5);
+
+               Vector2l c = Vector2l.CompareGreaterThan (a, b);
+       
+               if (c.X != -1)
+                       return 1;
+               if (c.Y != 0)
+                       return 2;
+               return 0;
+       }
+
+       public static unsafe int test_vector2l_cmp_eq () {
+               Vector2l a = new Vector2l (0xFF,          5);
+               Vector2l b = new Vector2l (0xFF000000FFL, 5);
+
+               Vector2l c = Vector2l.CompareEqual (a, b);
+       
+               if (c.X != 0)
+                       return 1;
+               if (c.Y != -1)
+                       return 2;
+               return 0;
+       }
+
+       public static unsafe int test_vector2l_srl () {
+               Vector2l a = new Vector2l (1, 6);
+
+               Vector2l c = Vector2l.ShiftRightLogic (a, 1);
+       
+               if (c.X != 0)
+                       return 1;
+               if (c.Y != 3)
+                       return 2;
+               return 0;
+       }
+
+       public static unsafe int test_vector2l_unpack_high () {
+               Vector2l a = new Vector2l (1, 6);
+               Vector2l b = new Vector2l (3, 4);
+
+               Vector2l c = Vector2l.UnpackHigh (a, b);
+       
+               if (c.X != 6)
+                       return 1;
+               if (c.Y != 4)
+                       return 2;
+               return 0;
+       }
+
+       public static unsafe int test_vector2l_unpack_low () {
+               Vector2l a = new Vector2l (1, 6);
+               Vector2l b = new Vector2l (3, 4);
+
+               Vector2l c = Vector2l.UnpackLow (a, b);
+       
+               if (c.X != 1)
+                       return 1;
+               if (c.Y != 3)
+                       return 2;
+               return 0;
+       }
+
+       public static unsafe int test_vector2l_xor () {
+               Vector2l a = new Vector2l (1, 6);
+               Vector2l b = new Vector2l (3, 4);
+
+               Vector2l c = a ^ b;
+       
+               if (c.X != 2)
+                       return 1;
+               if (c.Y != 2)
+                       return 2;
+               return 0;
+       }
+
+       public static unsafe int test_vector2l_or () {
+               Vector2l a = new Vector2l (1, 6);
+               Vector2l b = new Vector2l (3, 4);
+
+               Vector2l c = a | b;
+       
+               if (c.X != 3)
+                       return 1;
+               if (c.Y != 6)
+                       return 2;
+               return 0;
+       }
+
+       public static unsafe int test_vector2l_and () {
+               Vector2l a = new Vector2l (1, 6);
+               Vector2l b = new Vector2l (3, 4);
+
+               Vector2l c = a & b;
+       
+               if (c.X != 1)
+                       return 1;
+               if (c.Y != 4)
+                       return 2;
+               return 0;
+       }
+
+       public static unsafe int test_vector2l_shl() {
+               Vector2l a = new Vector2l (1, 6);
+
+               Vector2l c = a << 3;
+       
+               if (c.X != 8)
+                       return 1;
+               if (c.Y != 48)
+                       return 2;
+               return 0;
+       }
+       public static unsafe int test_vector2l_sub() {
+               Vector2l a = new Vector2l (1, 6);
+               Vector2l b = new Vector2l (3, 4);
+
+               Vector2l c = a - b;
+       
+               if (c.X != -2)
+                       return 1;
+               if (c.Y != 2)
+                       return 2;
+               return 0;
+       }
+
+       public static unsafe int test_vector2l_add () {
+               Vector2l a = new Vector2l (1, 2);
+               Vector2l b = new Vector2l (3, 4);
+
+               Vector2l c = a + b;
+       
+               if (c.X != 4)
+                       return 1;
+               if (c.Y != 6)
+                       return 2;
+               return 0;
+       }
 
        public static unsafe int test_0_vector2d_dup () {
                Vector2d a = new Vector2d (3, 2);