public static unsafe Vector2l Shuffle(this Vector2l v1, Vector2l v2, int sel) { long *p1 = (long *)&v1; long *p2 = (long *)&v2; return(new Vector2l(*(p1 + ((sel >> 0) & 0x1)), *(p2 + ((sel >> 1) & 0x1)))); }
static int test_0_vector2l_one_element_ctor () { Vector2l a = new Vector2l (99); if (a.X != 99) return 1; if (a.Y != 99) return 2; return 0; }
public static unsafe long ExtractByteMask(Vector2l va) { int res = 0; byte *a = (byte *)&va; for (int i = 0; i < 16; ++i) { res |= (*a++ & 0x80) >> 7 << i; } return(res); }
public static int test_0_accessor_vecto2l() { Vector2l a = new Vector2l (3, 2); if (a.X != 3) return 1; if (a.Y != 2) return 2; a.X = 500000000000055l; a.Y = -12345678900l; if (a.X != 500000000000055l) return 3; if (a.Y != -12345678900l) return 4; return 0; }
public static Vector2l CompareGreaterThan(Vector2l v1, Vector2l v2) { return(new Vector2l((long)(v1.x > v2.x ? -1 : 0), (long)(v1.y > v2.y ? -1 : 0))); }
public static unsafe void PrefetchTemporalAllCacheLevels (Vector2l *res) { }
public static unsafe void PrefetchNonTemporal (Vector2l *res) { }
public static unsafe void StoreAligned (Vector2l *res, Vector2l val) { *res = val; }
public static void PrefetchTemporal2ndLevelCache (ref Vector2l res) { }
public static unsafe Vector2l LogicalRightShift(this Vector2l v1, int amount) { return(new Vector2l((long)((ulong)(v1.x) >> amount), (long)((ulong)(v1.y) >> amount))); }
public static void StoreAligned (ref Vector2l res, Vector2l val) { res = val; }
public static void PrefetchNonTemporal(ref Vector2l res) { }
public static Vector2l UnpackLow(Vector2l v1, Vector2l v2) { return(new Vector2l(v1.x, v2.x)); }
public static void PrefetchTemporalAllCacheLevels(ref Vector2l res) { }
public static void PrefetchTemporal2ndLevelCache(ref Vector2l res) { }
public static unsafe void StoreAligned(Vector2l *res, Vector2l val) { *res = val; }
public static void StoreAligned(ref Vector2l res, Vector2l val) { res = val; }
public static Vector2l LoadAligned(ref Vector2l v) { return(v); }
public static unsafe int test_0_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 Vector2l UnpackHigh(Vector2l v1, Vector2l v2) { return(new Vector2l(v1.y, v2.y)); }
public static unsafe int test_0_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 Vector2l ShiftRightLogic(Vector2l v1, int amount) { return(new Vector2l((long)((ulong)(v1.x) >> amount), (long)((ulong)(v1.y) >> amount))); }
public static Vector2l LoadAligned (ref Vector2l v) { return v; }
public static unsafe long ExtractByteMask (Vector2l va) { int res = 0; byte *a = (byte*)&va; for (int i = 0; i < 16; ++i) res |= (*a++ & 0x80) >> 7 << i; return res; }
public static unsafe Vector2l LoadAligned (Vector2l *v) { return *v; }
public static unsafe Vector2l ShiftRightLogic (Vector2l v1, int amount) { return new Vector2l ((long)((ulong)(v1.x) >> amount), (long)((ulong)(v1.y) >> amount)); }
public static void PrefetchTemporalAllCacheLevels (ref Vector2l res) { }
public static unsafe int test_0_vector2l_cmp_gt () { Vector2l a = new Vector2l (10, 5); Vector2l b = new Vector2l (-1, 5); Vector2l c = a.CompareGreaterThan (b); if (c.X != -1) return 1; if (c.Y != 0) return 2; return 0; }
public static void PrefetchNonTemporal (ref Vector2l res) { }
public static unsafe int test_0_vector2l_srl () { Vector2l a = new Vector2l (1, 6); Vector2l c = a.LogicalRightShift (1); if (c.X != 0) return 1; if (c.Y != 3) return 2; return 0; }
public static unsafe void PrefetchTemporal2ndLevelCache (Vector2l *res) { }
public static unsafe int test_0_vector2l_unpack_low () { Vector2l a = new Vector2l (1, 6); Vector2l b = new Vector2l (3, 4); Vector2l c = a.UnpackLow (b); if (c.X != 1) return 1; if (c.Y != 3) return 2; return 0; }
public static Vector2l CompareEqual (this Vector2l v1, Vector2l v2) { return new Vector2l ((long)(v1.x == v2.x ? -1 : 0), (long)(v1.y == v2.y ? -1 : 0)); }
public static Vector2l CompareEqual(Vector2l v1, Vector2l v2) { return(new Vector2l((long)(v1.x == v2.x ? -1 : 0), (long)(v1.y == v2.y ? -1 : 0))); }
public static unsafe int test_0_vector2l_cmp_eq () { Vector2l a = new Vector2l (0xFF, 5); Vector2l b = new Vector2l (0xFF000000FFL, 5); Vector2l c = a.CompareEqual (b); if (c.X != 0) return 1; if (c.Y != -1) return 2; return 0; }
public static Vector2l CompareGreaterThan (this Vector2l v1, Vector2l v2) { return new Vector2l ((long)(v1.x > v2.x ? -1 : 0), (long)(v1.y > v2.y ? -1 : 0)); }
public static unsafe int test_0_vector2l_unpack_high () { Vector2l a = new Vector2l (1, 6); Vector2l b = new Vector2l (3, 4); Vector2l c = a.UnpackHigh (b); if (c.X != 6) return 1; if (c.Y != 4) return 2; return 0; }
public static Vector2l UnpackLow (this Vector2l v1, Vector2l v2) { return new Vector2l (v1.x, v2.x); }
public static unsafe int test_0_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 Vector2l UnpackHigh (this Vector2l v1, Vector2l v2) { return new Vector2l (v1.y, v2.y); }
public static unsafe int test_0_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 Vector2l Shuffle (this Vector2l v1, Vector2l v2, int sel) { long *p1 = (long*)&v1; long *p2 = (long*)&v2; return new Vector2l (*(p1 + ((sel >> 0) & 0x1)), *(p2 + ((sel >> 1) & 0x1))); }
public static unsafe int test_0_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 void SetVectorAligned(this long[] array, Vector2l val, int offset) { array [offset + 0] = val.X; array [offset + 1] = val.Y; }