2008-12-05 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Fri, 5 Dec 2008 22:17:25 +0000 (22:17 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Fri, 5 Dec 2008 22:17:25 +0000 (22:17 -0000)
* Vector8(u)s.cs: Add operator == and !=.

svn path=/trunk/mcs/; revision=120903

mcs/class/Mono.Simd/Mono.Simd/Changelog
mcs/class/Mono.Simd/Mono.Simd/Vector8s.cs
mcs/class/Mono.Simd/Mono.Simd/Vector8us.cs

index 4ddb2baa9fae27ecefdaccf767133c8aff2ec8fe..d57109692c12568413d560d4740963061aa6af27 100644 (file)
@@ -1,3 +1,7 @@
+2008-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * Vector8(u)s.cs: Add operator == and !=.
+
 2008-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
 
        * Vector4f.cs: Add operator == and !=.
index c122d0e8dc3299e07f72fecf651c0fb66bede58d..25aef3d5214f85535f837bcc8f379350e8a30982 100644 (file)
@@ -173,6 +173,28 @@ namespace Mono.Simd
                        return res;
                }
 
+               [Acceleration (AccelMode.SSE2)]
+               public unsafe static bool operator ==(Vector8s va, Vector8s vb)
+               {
+                       short *a = &va.v0;
+                       short *b = &vb.v0;
+                       for (int i = 0; i < 8; ++i)
+                               if (*a++ != *b++)
+                                       return false;
+                       return true;
+               }
+
+               [Acceleration (AccelMode.SSE2)]
+               public unsafe static bool operator !=(Vector8s va, Vector8s vb)
+               {
+                       short *a = &va.v0;
+                       short *b = &vb.v0;
+                       for (int i = 0; i < 8; ++i)
+                               if (*a++ != *b++)
+                                       return true;
+                       return false;
+               }
+
                [Acceleration (AccelMode.SSE2)]
                public static unsafe Vector8s UnpackLow (Vector8s va, Vector8s vb)
                {
index d189b75c70238740eda099a2b9be829c7cd213db..35cf414ecdbc9cbd2a1ff7b6d6974b4e93558e79 100644 (file)
@@ -178,6 +178,28 @@ namespace Mono.Simd
                        return res;
                }
 
+               [Acceleration (AccelMode.SSE2)]
+               public unsafe static bool operator ==(Vector8us va, Vector8us vb)
+               {
+                       ushort *a = &va.v0;
+                       ushort *b = &vb.v0;
+                       for (int i = 0; i < 8; ++i)
+                               if (*a++ != *b++)
+                                       return false;
+                       return true;
+               }
+
+               [Acceleration (AccelMode.SSE2)]
+               public unsafe static bool operator !=(Vector8us va, Vector8us vb)
+               {
+                       ushort *a = &va.v0;
+                       ushort *b = &vb.v0;
+                       for (int i = 0; i < 8; ++i)
+                               if (*a++ != *b++)
+                                       return true;
+                       return false;
+               }
+
                [Acceleration (AccelMode.SSE2)]
                public static unsafe Vector8us UnpackLow (Vector8us va, Vector8us vb)
                {