public ushort V6 { get { return v6; } set { v6 = value; } }
public ushort V7 { get { return v7; } set { v7 = value; } }
\r
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us operator + (Vector8us va, Vector8us vb)\r
{\r
Vector8us res = new Vector8us ();
return res;\r
}\r
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us operator - (Vector8us va, Vector8us vb)\r
{\r
Vector8us res = new Vector8us ();
* NOTE: Thou pmullw states it does signed multiplication, it works for unsigned numbers
* if only the lower part is considered and the flags disregarded.
*/
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us operator * (Vector8us va, Vector8us vb)\r
{\r
Vector8us res = new Vector8us ();
return res;\r
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us operator >> (Vector8us va, int amount)\r
{\r
Vector8us res = new Vector8us ();
return res;\r
}
-
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us operator << (Vector8us va, int amount)\r
{\r
Vector8us res = new Vector8us ();
return res;\r
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us operator & (Vector8us va, Vector8us vb)\r
{\r
Vector8us res = new Vector8us ();
return res;\r
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us operator | (Vector8us va, Vector8us vb)\r
{\r
Vector8us res = new Vector8us ();
return res;\r
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us operator ^ (Vector8us va, Vector8us vb)\r
{\r
Vector8us res = new Vector8us ();
return res;\r
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us UnpackLow (Vector8us va, Vector8us vb)
{
return new Vector8us (va.v0, vb.v0, va.v1, vb.v1, va.v2, vb.v2, va.v3, vb.v3);
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us UnpackHigh (Vector8us va, Vector8us vb)
{
return new Vector8us (va.v4, vb.v4, va.v5, vb.v5, va.v6, vb.v6, va.v7, vb.v7);
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us ShiftRightArithmetic (Vector8us va, int amount)\r
{\r
Vector8us res = new Vector8us ();
return res;\r
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us AddWithSaturation (Vector8us va, Vector8us vb) {
Vector8us res = new Vector8us ();
ushort *a = &va.v0;
return res;
}\r
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us SubWithSaturation (Vector8us va, Vector8us vb) {
Vector8us res = new Vector8us ();
ushort *a = &va.v0;
return res;
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us Average (Vector8us va, Vector8us vb) {
Vector8us res = new Vector8us ();
ushort *a = &va.v0;
return res;
}
- /*Requires SSE 4.1*/
+ [Acceleration (AccelMode.SSE41)]
public static unsafe Vector8us Max (Vector8us va, Vector8us vb) {
Vector8us res = new Vector8us ();
ushort *a = &va.v0;
return res;
}
- /*Requires SSE 4.1*/
+ [Acceleration (AccelMode.SSE41)]
public static unsafe Vector8us Min (Vector8us va, Vector8us vb) {
Vector8us res = new Vector8us ();
ushort *a = &va.v0;
return res;
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe int ExtractByteMask (Vector8us va) {
int res = 0;
byte *a = (byte*)&va;
return res;
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us ShuffleHigh (Vector8us va, ShuffleSel sel)\r
{
ushort *ptr = ((ushort*)&va) + 4;
return new Vector8us (va.v0, va.v1, va.v2, va.v3, *(ptr + ((idx >> 0) & 0x3)), *(ptr + ((idx >> 2) & 0x3)), *(ptr + ((idx >> 4) & 0x3)), *(ptr + ((idx >> 6) & 0x3)));\r
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us ShuffleLow (Vector8us va, ShuffleSel sel)\r
{
ushort *ptr = ((ushort*)&va);
return new Vector8us (*(ptr + ((idx >> 0) & 0x3)), *(ptr + ((idx >> 2) & 0x3)), *(ptr + ((idx >> 4) & 0x3)), *(ptr + ((idx >> 6) & 0x3)), va.v4, va.v5, va.v6, va.v7);\r
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us CompareEqual (Vector8us va, Vector8us vb) {
Vector8us res = new Vector8us ();
ushort *a = &va.v0;
return res;
}
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector8us MultiplyStoreHigh (Vector8us va, Vector8us vb) {
Vector8us res = new Vector8us ();
ushort *a = &va.v0;
}
/*This function performs a packuswb, which treats the source as a signed value */
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector16b SignedPackWithUnsignedSaturation (Vector8us va, Vector8us vb) {
Vector16b res = new Vector16b ();
short *a = (short*)&va;
}
/*This function performs a packsswb, which treats the source as a signed value */
+ [Acceleration (AccelMode.SSE2)]
public static unsafe Vector16sb SignedPackWithSignedSaturation (Vector8us va, Vector8us vb) {
Vector16sb res = new Vector16sb ();
short *a = (short*)&va;
return res;
}
+ [Acceleration (AccelMode.SSE1)]
public static unsafe explicit operator Vector4f(Vector8us v)\r
{\r
Vector4f* p = (Vector4f*)&v;\r
return *p;\r
}\r
+ [Acceleration (AccelMode.SSE1)]
public static unsafe explicit operator Vector4ui(Vector8us v)\r
{\r
Vector4ui* p = (Vector4ui*)&v;\r
return *p;\r
}\r
+ [Acceleration (AccelMode.SSE1)]
public static unsafe explicit operator Vector16b(Vector8us v)\r
{\r
Vector16b* p = (Vector16b*)&v;\r
return *p;\r
}\r
+ [Acceleration (AccelMode.SSE1)]
public static Vector8us LoadAligned (ref Vector8us v)\r
{\r
return v;\r
}\r
\r
+ [Acceleration (AccelMode.SSE1)]
public static void StoreAligned (ref Vector8us res, Vector8us val)\r
{\r
res = val;\r
}
+ [Acceleration (AccelMode.SSE1)]
public static unsafe Vector8us LoadAligned (Vector8us *v)\r
{\r
return *v;\r
}\r
\r
+ [Acceleration (AccelMode.SSE1)]
public static unsafe void StoreAligned (Vector8us *res, Vector8us val)\r
{\r
*res = val;\r