Exemplo n.º 1
0
 public static Vector128 <bool> op_LogicalNot(Vector128 <bool> vector)
 => (Vector128.Create((byte)1) ^ vector.As <byte>()).As <bool>();
Exemplo n.º 2
0
 public static Vector128 <long> op_Division(Vector128 <long> vector, long scalar)
 => Vector128.Create(
     Sse2.X64.ConvertToInt64(vector) / scalar,
     Sse41.X64.Extract(vector, 1) / scalar);
Exemplo n.º 3
0
 public static Vector128 <long> op_Modulus(Vector128 <long> left, Vector128 <long> right)
 => Vector128.Create(
     Sse2.X64.ConvertToInt64(left) % Sse2.X64.ConvertToInt64(right),
     Sse41.X64.Extract(left, 1) % Sse41.X64.Extract(right, 1));
Exemplo n.º 4
0
 public static Vector128 <long> op_Multiply(Vector128 <long> vector, long scalar)
 => Vector128.Create(
     Sse2.X64.ConvertToInt64(vector) * scalar,
     Sse41.X64.Extract(vector, 1) * scalar);
Exemplo n.º 5
0
 public static Vector128 <long> op_Division(Vector128 <long> left, Vector128 <long> right)
 => Vector128.Create(
     Sse2.X64.ConvertToInt64(left) / Sse2.X64.ConvertToInt64(right),
     Sse41.X64.Extract(left, 1) / Sse41.X64.Extract(right, 1));
Exemplo n.º 6
0
        public static Vector128 <uint> op_LessThan(Vector128 <uint> left, Vector128 <uint> right)
        {
            var offset = Vector128.Create(int.MinValue);

            return(Sse2.CompareLessThan(Sse2.Add(left.As <int>(), offset), Sse2.Add(right.As <int>(), offset)).AsUInt32());
        }
Exemplo n.º 7
0
 public static Vector128 <short> op_Multiply(short scalar, Vector128 <short> vector)
 => op_Multiply(vector, Vector128.Create(scalar));
Exemplo n.º 8
0
 public static Vector128 <uint> op_Division(Vector128 <uint> vector, uint scalar)
 => Vector128.Create(
     Sse2.ConvertToUInt32(vector) / scalar,
     Sse41.Extract(vector, 1) / scalar,
     Sse41.Extract(vector, 2) / scalar,
     Sse41.Extract(vector, 3) / scalar);
Exemplo n.º 9
0
 public static Vector128 <uint> op_Modulus(Vector128 <uint> left, Vector128 <uint> right)
 => Vector128.Create(
     Sse2.ConvertToUInt32(left) % Sse2.ConvertToUInt32(right),
     Sse41.Extract(left, 1) % Sse41.Extract(right, 1),
     Sse41.Extract(left, 2) % Sse41.Extract(right, 2),
     Sse41.Extract(left, 3) % Sse41.Extract(right, 3));
Exemplo n.º 10
0
 public static Vector128 <uint> op_Multiply(uint scalar, Vector128 <uint> vector)
 => op_Multiply(vector, Vector128.Create(scalar));
Exemplo n.º 11
0
 public static Vector128 <uint> op_Division(Vector128 <uint> left, Vector128 <uint> right)
 => Vector128.Create(
     Sse2.ConvertToUInt32(left) / Sse2.ConvertToUInt32(right),
     Sse41.Extract(left, 1) / Sse41.Extract(right, 1),
     Sse41.Extract(left, 2) / Sse41.Extract(right, 2),
     Sse41.Extract(left, 3) / Sse41.Extract(right, 3));
Exemplo n.º 12
0
        public static Vector128 <ulong> op_GreaterThan(Vector128 <ulong> left, Vector128 <ulong> right)
        {
            var offset = Vector128.Create(long.MinValue);

            return(Sse42.CompareGreaterThan(Sse2.Add(left.As <long>(), offset), Sse2.Add(right.As <long>(), offset)).AsUInt64());
        }
Exemplo n.º 13
0
 public static Vector128 <ulong> op_Multiply(Vector128 <ulong> left, Vector128 <ulong> right)
 => Vector128.Create(
     Sse2.X64.ConvertToUInt64(left) * Sse2.X64.ConvertToUInt64(right),
     Sse41.X64.Extract(left, 1) * Sse41.X64.Extract(right, 1));
Exemplo n.º 14
0
 public static Vector128 <sbyte> op_Multiply(sbyte scalar, Vector128 <sbyte> vector)
 => op_Multiply(vector, Vector128.Create(scalar));
Exemplo n.º 15
0
 public static Vector128 <float> op_Modulus(Vector128 <float> left, Vector128 <float> right)
 => Vector128.Create(
     ((System.Runtime.Intrinsics.Vector128 <float>)left).ToScalar() % ((System.Runtime.Intrinsics.Vector128 <float>)right).ToScalar(),
     Sse41.Extract(left, 1) % Sse41.Extract(right, 1),
     Sse41.Extract(left, 2) % Sse41.Extract(right, 2),
     Sse41.Extract(left, 3) % Sse41.Extract(right, 3));
Exemplo n.º 16
0
        public static Vector128 <byte> op_LessThan(Vector128 <byte> left, Vector128 <byte> right)
        {
            var offset = Vector128.Create(sbyte.MinValue);

            return(Sse2.CompareLessThan(Sse2.Add(left.As <sbyte>(), offset), Sse2.Add(right.As <sbyte>(), offset)).AsByte());
        }