Edit

Share via


Vector128<T> Struct

Definition

Represents a 128-bit vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.

generic <typename T>
 where T : value classpublic value class Vector128 : IEquatable<System::Runtime::Intrinsics::Vector128<T>>
generic <typename T>
public value class Vector128 : IEquatable<System::Runtime::Intrinsics::Vector128<T>>
public readonly struct Vector128<T> : IEquatable<System.Runtime.Intrinsics.Vector128<T>> where T : struct
public readonly struct Vector128<T> : IEquatable<System.Runtime.Intrinsics.Vector128<T>>
type Vector128<'T (requires 'T : struct)> = struct
type Vector128<'T> = struct
Public Structure Vector128(Of T)
Implements IEquatable(Of Vector128(Of T))

Type Parameters

T

The type of the elements in the vector.

Inheritance
Vector128<T>
Implements

Properties

AllBitsSet

Gets a new Vector128<T> with all bits set to 1.

Count

Gets the number of T that are in a Vector128<T>.

Indices

Gets a new Vector128<T> with the elements set to their index.

IsSupported

Gets a value that indicates whether T is supported.

Item[Int32]

Gets the element at the specified index.

One

Gets a new Vector128<T> with all elements initialized to one.

Zero

Gets a new Vector128<T> with all elements initialized to zero.

Methods

Equals(Object)

Determines whether the specified object is equal to the current instance.

Equals(Vector128<T>)

Determines whether the specified Vector128<T> is equal to the current instance.

GetHashCode()

Gets the hash code for the instance.

ToString()

Converts the current instance to an equivalent string representation.

Operators

Addition(Vector128<T>, Vector128<T>)

Adds two vectors to compute their sum.

BitwiseAnd(Vector128<T>, Vector128<T>)

Computes the bitwise-and of two vectors.

BitwiseOr(Vector128<T>, Vector128<T>)

Computes the bitwise-or of two vectors.

Division(Vector128<T>, T)

Divides a vector by a scalar to compute the per-element quotient.

Division(Vector128<T>, Vector128<T>)

Divides two vectors to compute their quotient.

Equality(Vector128<T>, Vector128<T>)

Compares two vectors to determine if all elements are equal.

ExclusiveOr(Vector128<T>, Vector128<T>)

Computes the exclusive-or of two vectors.

Inequality(Vector128<T>, Vector128<T>)

Compares two vectors to determine if any elements are not equal.

LeftShift(Vector128<T>, Int32)

Shifts each element of a vector left by the specified amount.

Multiply(T, Vector128<T>)

Multiplies a vector by a scalar to compute their product.

Multiply(Vector128<T>, T)

Multiplies a vector by a scalar to compute their product.

Multiply(Vector128<T>, Vector128<T>)

Multiplies two vectors to compute their element-wise product.

OnesComplement(Vector128<T>)

Computes the ones-complement of a vector.

RightShift(Vector128<T>, Int32)

Shifts (signed) each element of a vector right by the specified amount.

Subtraction(Vector128<T>, Vector128<T>)

Subtracts two vectors to compute their difference.

UnaryNegation(Vector128<T>)

Computes the unary negation of a vector.

UnaryPlus(Vector128<T>)

Returns a given vector unchanged.

UnsignedRightShift(Vector128<T>, Int32)

Shifts (unsigned) each element of a vector right by the specified amount.

Extension Methods

As<T,U>(Vector128<T>)

Reinterprets a Vector128<T> of type TFrom as a new Vector128<T> of type TTo.

AsByte<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128 of type Byte.

AsDouble<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128 of type Double.

AsInt16<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128 of type Int16.

AsInt32<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128 of type Int32.

AsInt64<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128 of type Int64.

AsNInt<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128<T>.

AsNUInt<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128<T>.

AsSByte<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128 of type SByte.

AsSingle<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128 of type Single.

AsUInt16<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128 of type UInt16.

AsUInt32<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128 of type UInt32.

AsUInt64<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector128 of type UInt64.

AsVector<T>(Vector128<T>)

Reinterprets a Vector128<T> as a new Vector<T>.

CopyTo<T>(Vector128<T>, T[], Int32)

Copies a Vector128<T> to a given array starting at the specified index.

CopyTo<T>(Vector128<T>, T[])

Copies a Vector128<T> to a given array.

CopyTo<T>(Vector128<T>, Span<T>)

Copies a Vector128<T> to a given span.

ExtractMostSignificantBits<T>(Vector128<T>)

Extracts the most significant bit from each element in a vector.

GetElement<T>(Vector128<T>, Int32)

Gets the element at the specified index.

GetLower<T>(Vector128<T>)

Gets the value of the lower 64-bits as a new Vector64<T>.

GetUpper<T>(Vector128<T>)

Gets the value of the upper 64-bits as a new Vector64<T>.

Store<T>(Vector128<T>, T*)

Stores a vector at the given destination.

StoreAligned<T>(Vector128<T>, T*)

Stores a vector at the given aligned destination.

StoreAlignedNonTemporal<T>(Vector128<T>, T*)

Stores a vector at the given aligned destination.

StoreUnsafe<T>(Vector128<T>, T, UIntPtr)

Stores a vector at the given destination.

StoreUnsafe<T>(Vector128<T>, T)

Stores a vector at the given destination.

ToScalar<T>(Vector128<T>)

Converts the given vector to a scalar containing the value of the first element.

ToVector256<T>(Vector128<T>)

Converts the given vector to a new Vector256<T> with the lower 128-bits set to the value of the given vector and the upper 128-bits initialized to zero.

ToVector256Unsafe<T>(Vector128<T>)

Converts the given vector to a new Vector256<T> with the lower 128-bits set to the value of the given vector and the upper 128-bits left uninitialized.

TryCopyTo<T>(Vector128<T>, Span<T>)

Tries to copy a Vector<T> to a given span.

WithElement<T>(Vector128<T>, Int32, T)

Creates a new Vector128<T> with the element at the specified index set to the specified value and the remaining elements set to the same value as that in the given vector.

WithLower<T>(Vector128<T>, Vector64<T>)

Creates a new Vector128<T> with the lower 64-bits set to the specified value and the upper 64-bits set to the same value as that in the given vector.

WithUpper<T>(Vector128<T>, Vector64<T>)

Creates a new Vector128<T> with the upper 64-bits set to the specified value and the lower 64-bits set to the same value as that in the given vector.

Applies to