using System.Diagnostics; using System.Runtime.InteropServices; namespace Unity.Burst.Intrinsics { /// /// Represents a 256-bit SIMD value /// [StructLayout(LayoutKind.Explicit)] [DebuggerTypeProxy(typeof(V256DebugView))] public struct v256 { /// /// Get the 0th Byte of the vector /// [FieldOffset(0)] public byte Byte0; /// /// Get the 1st Byte of the vector /// [FieldOffset(1)] public byte Byte1; /// /// Get the 2nd Byte of the vector /// [FieldOffset(2)] public byte Byte2; /// /// Get the 3rd Byte of the vector /// [FieldOffset(3)] public byte Byte3; /// /// Get the 4th Byte of the vector /// [FieldOffset(4)] public byte Byte4; /// /// Get the 5th Byte of the vector /// [FieldOffset(5)] public byte Byte5; /// /// Get the 6th Byte of the vector /// [FieldOffset(6)] public byte Byte6; /// /// Get the 7th Byte of the vector /// [FieldOffset(7)] public byte Byte7; /// /// Get the 8th Byte of the vector /// [FieldOffset(8)] public byte Byte8; /// /// Get the 9th Byte of the vector /// [FieldOffset(9)] public byte Byte9; /// /// Get the 10th Byte of the vector /// [FieldOffset(10)] public byte Byte10; /// /// Get the 11th Byte of the vector /// [FieldOffset(11)] public byte Byte11; /// /// Get the 12 Byte of the vector /// [FieldOffset(12)] public byte Byte12; /// /// Get the 13th Byte of the vector /// [FieldOffset(13)] public byte Byte13; /// /// Get the 14th Byte of the vector /// [FieldOffset(14)] public byte Byte14; /// /// Get the 15th Byte of the vector /// [FieldOffset(15)] public byte Byte15; /// /// Get the 16th Byte of the vector /// [FieldOffset(16)] public byte Byte16; /// /// Get the 17th Byte of the vector /// [FieldOffset(17)] public byte Byte17; /// /// Get the 18th Byte of the vector /// [FieldOffset(18)] public byte Byte18; /// /// Get the 19th Byte of the vector /// [FieldOffset(19)] public byte Byte19; /// /// Get the 20th Byte of the vector /// [FieldOffset(20)] public byte Byte20; /// /// Get the 21st Byte of the vector /// [FieldOffset(21)] public byte Byte21; /// /// Get the 22nd Byte of the vector /// [FieldOffset(22)] public byte Byte22; /// /// Get the 23rd Byte of the vector /// [FieldOffset(23)] public byte Byte23; /// /// Get the 24th Byte of the vector /// [FieldOffset(24)] public byte Byte24; /// /// Get the 25th Byte of the vector /// [FieldOffset(25)] public byte Byte25; /// /// Get the 26th Byte of the vector /// [FieldOffset(26)] public byte Byte26; /// /// Get the 27th Byte of the vector /// [FieldOffset(27)] public byte Byte27; /// /// Get the 28th Byte of the vector /// [FieldOffset(28)] public byte Byte28; /// /// Get the 29th Byte of the vector /// [FieldOffset(29)] public byte Byte29; /// /// Get the 30th Byte of the vector /// [FieldOffset(30)] public byte Byte30; /// /// Get the 31st Byte of the vector /// [FieldOffset(31)] public byte Byte31; /// /// Get the 0th SByte of the vector /// [FieldOffset(0)] public sbyte SByte0; /// /// Get the 1st SByte of the vector /// [FieldOffset(1)] public sbyte SByte1; /// /// Get the 2nd SByte of the vector /// [FieldOffset(2)] public sbyte SByte2; /// /// Get the 3rd SByte of the vector /// [FieldOffset(3)] public sbyte SByte3; /// /// Get the 4th SByte of the vector /// [FieldOffset(4)] public sbyte SByte4; /// /// Get the 5th SByte of the vector /// [FieldOffset(5)] public sbyte SByte5; /// /// Get the 6th SByte of the vector /// [FieldOffset(6)] public sbyte SByte6; /// /// Get the 7th SByte of the vector /// [FieldOffset(7)] public sbyte SByte7; /// /// Get the 8th SByte of the vector /// [FieldOffset(8)] public sbyte SByte8; /// /// Get the 9th SByte of the vector /// [FieldOffset(9)] public sbyte SByte9; /// /// Get the 10th SByte of the vector /// [FieldOffset(10)] public sbyte SByte10; /// /// Get the 11th SByte of the vector /// [FieldOffset(11)] public sbyte SByte11; /// /// Get the 12th SByte of the vector /// [FieldOffset(12)] public sbyte SByte12; /// /// Get the 13th SByte of the vector /// [FieldOffset(13)] public sbyte SByte13; /// /// Get the 14th SByte of the vector /// [FieldOffset(14)] public sbyte SByte14; /// /// Get the 15th SByte of the vector /// [FieldOffset(15)] public sbyte SByte15; /// /// Get the 16th SByte of the vector /// [FieldOffset(16)] public sbyte SByte16; /// /// Get the 17th SByte of the vector /// [FieldOffset(17)] public sbyte SByte17; /// /// Get the 18th SByte of the vector /// [FieldOffset(18)] public sbyte SByte18; /// /// Get the 19th SByte of the vector /// [FieldOffset(19)] public sbyte SByte19; /// /// Get the 20th SByte of the vector /// [FieldOffset(20)] public sbyte SByte20; /// /// Get the 21st SByte of the vector /// [FieldOffset(21)] public sbyte SByte21; /// /// Get the 22nd SByte of the vector /// [FieldOffset(22)] public sbyte SByte22; /// /// Get the 23rd SByte of the vector /// [FieldOffset(23)] public sbyte SByte23; /// /// Get the 24th SByte of the vector /// [FieldOffset(24)] public sbyte SByte24; /// /// Get the 25th SByte of the vector /// [FieldOffset(25)] public sbyte SByte25; /// /// Get the 26th SByte of the vector /// [FieldOffset(26)] public sbyte SByte26; /// /// Get the 27th SByte of the vector /// [FieldOffset(27)] public sbyte SByte27; /// /// Get the 28th SByte of the vector /// [FieldOffset(28)] public sbyte SByte28; /// /// Get the 29th SByte of the vector /// [FieldOffset(29)] public sbyte SByte29; /// /// Get the 30th SByte of the vector /// [FieldOffset(30)] public sbyte SByte30; /// /// Get the 31st SByte of the vector /// [FieldOffset(31)] public sbyte SByte31; /// /// Get the 0th UShort of the vector /// [FieldOffset(0)] public ushort UShort0; /// /// Get the 1st UShort of the vector /// [FieldOffset(2)] public ushort UShort1; /// /// Get the 2nd UShort of the vector /// [FieldOffset(4)] public ushort UShort2; /// /// Get the 3rd UShort of the vector /// [FieldOffset(6)] public ushort UShort3; /// /// Get the 4th UShort of the vector /// [FieldOffset(8)] public ushort UShort4; /// /// Get the 5th UShort of the vector /// [FieldOffset(10)] public ushort UShort5; /// /// Get the 6th UShort of the vector /// [FieldOffset(12)] public ushort UShort6; /// /// Get the 7th UShort of the vector /// [FieldOffset(14)] public ushort UShort7; /// /// Get the 8th UShort of the vector /// [FieldOffset(16)] public ushort UShort8; /// /// Get the 9th UShort of the vector /// [FieldOffset(18)] public ushort UShort9; /// /// Get the 10th UShort of the vector /// [FieldOffset(20)] public ushort UShort10; /// /// Get the 11th UShort of the vector /// [FieldOffset(22)] public ushort UShort11; /// /// Get the 12th UShort of the vector /// [FieldOffset(24)] public ushort UShort12; /// /// Get the 13th UShort of the vector /// [FieldOffset(26)] public ushort UShort13; /// /// Get the 14th UShort of the vector /// [FieldOffset(28)] public ushort UShort14; /// /// Get the 15th UShort of the vector /// [FieldOffset(30)] public ushort UShort15; /// /// Get the 0th SShort of the vector /// [FieldOffset(0)] public short SShort0; /// /// Get the 1st SShort of the vector /// [FieldOffset(2)] public short SShort1; /// /// Get the 2nd SShort of the vector /// [FieldOffset(4)] public short SShort2; /// /// Get the 3rd SShort of the vector /// [FieldOffset(6)] public short SShort3; /// /// Get the 4th SShort of the vector /// [FieldOffset(8)] public short SShort4; /// /// Get the 5th SShort of the vector /// [FieldOffset(10)] public short SShort5; /// /// Get the 6th SShort of the vector /// [FieldOffset(12)] public short SShort6; /// /// Get the 7th SShort of the vector /// [FieldOffset(14)] public short SShort7; /// /// Get the 8th SShort of the vector /// [FieldOffset(16)] public short SShort8; /// /// Get the 9th SShort of the vector /// [FieldOffset(18)] public short SShort9; /// /// Get the 10th SShort of the vector /// [FieldOffset(20)] public short SShort10; /// /// Get the 11th SShort of the vector /// [FieldOffset(22)] public short SShort11; /// /// Get the 12th SShort of the vector /// [FieldOffset(24)] public short SShort12; /// /// Get the 13th SShort of the vector /// [FieldOffset(26)] public short SShort13; /// /// Get the 14th SShort of the vector /// [FieldOffset(28)] public short SShort14; /// /// Get the 15th SShort of the vector /// [FieldOffset(30)] public short SShort15; #if BURST_INTERNAL || UNITY_BURST_EXPERIMENTAL_NEON_INTRINSICS /// /// Get the 0th f16 of the vector /// [FieldOffset(0)] public f16 Half0; /// /// Get the 1st f16 of the vector /// [FieldOffset(2)] public f16 Half1; /// /// Get the 2nd f16 of the vector /// [FieldOffset(4)] public f16 Half2; /// /// Get the 3rd f16 of the vector /// [FieldOffset(6)] public f16 Half3; /// /// Get the 4th f16 of the vector /// [FieldOffset(8)] public f16 Half4; /// /// Get the 5th f16 of the vector /// [FieldOffset(10)] public f16 Half5; /// /// Get the 6th f16 of the vector /// [FieldOffset(12)] public f16 Half6; /// /// Get the 7th f16 of the vector /// [FieldOffset(14)] public f16 Half7; /// /// Get the 8th f16 of the vector /// [FieldOffset(16)] public f16 Half8; /// /// Get the 9th f16 of the vector /// [FieldOffset(18)] public f16 Half9; /// /// Get the 10th f16 of the vector /// [FieldOffset(20)] public f16 Half10; /// /// Get the 11th f16 of the vector /// [FieldOffset(22)] public f16 Half11; /// /// Get the 12th f16 of the vector /// [FieldOffset(24)] public f16 Half12; /// /// Get the 13th f16 of the vector /// [FieldOffset(26)] public f16 Half13; /// /// Get the 14th f16 of the vector /// [FieldOffset(28)] public f16 Half14; /// /// Get the 15th f16 of the vector /// [FieldOffset(30)] public f16 Half15; #endif // BURST_INTERNAL || UNITY_BURST_EXPERIMENTAL_NEON_INTRINSICS /// /// Get the 0th UInt of the vector /// [FieldOffset(0)] public uint UInt0; /// /// Get the 1st UInt of the vector /// [FieldOffset(4)] public uint UInt1; /// /// Get the 2nd UInt of the vector /// [FieldOffset(8)] public uint UInt2; /// /// Get the 3rd UInt of the vector /// [FieldOffset(12)] public uint UInt3; /// /// Get the 4th UInt of the vector /// [FieldOffset(16)] public uint UInt4; /// /// Get the 5th UInt of the vector /// [FieldOffset(20)] public uint UInt5; /// /// Get the 6th UInt of the vector /// [FieldOffset(24)] public uint UInt6; /// /// Get the 7th UInt of the vector /// [FieldOffset(28)] public uint UInt7; /// /// Get the 0th SInt of the vector /// [FieldOffset(0)] public int SInt0; /// /// Get the 1st SInt of the vector /// [FieldOffset(4)] public int SInt1; /// /// Get the 2nd SInt of the vector /// [FieldOffset(8)] public int SInt2; /// /// Get the 3rd SInt of the vector /// [FieldOffset(12)] public int SInt3; /// /// Get the 4th SInt of the vector /// [FieldOffset(16)] public int SInt4; /// /// Get the 5th SInt of the vector /// [FieldOffset(20)] public int SInt5; /// /// Get the 6th SInt of the vector /// [FieldOffset(24)] public int SInt6; /// /// Get the 7th SInt of the vector /// [FieldOffset(28)] public int SInt7; /// /// Get the 0th ULong of the vector /// [FieldOffset(0)] public ulong ULong0; /// /// Get the 1st ULong of the vector /// [FieldOffset(8)] public ulong ULong1; /// /// Get the 2nd ULong of the vector /// [FieldOffset(16)] public ulong ULong2; /// /// Get the 3rd ULong of the vector /// [FieldOffset(24)] public ulong ULong3; /// /// Get the 0th SLong of the vector /// [FieldOffset(0)] public long SLong0; /// /// Get the 1st SLong of the vector /// [FieldOffset(8)] public long SLong1; /// /// Get the 2nd SLong of the vector /// [FieldOffset(16)] public long SLong2; /// /// Get the 3rd SLong of the vector /// [FieldOffset(24)] public long SLong3; /// /// Get the 0th Float of the vector /// [FieldOffset(0)] public float Float0; /// /// Get the 1st Float of the vector /// [FieldOffset(4)] public float Float1; /// /// Get the 2nd Float of the vector /// [FieldOffset(8)] public float Float2; /// /// Get the 3rd Float of the vector /// [FieldOffset(12)] public float Float3; /// /// Get the 4th Float of the vector /// [FieldOffset(16)] public float Float4; /// /// Get the 5th Float of the vector /// [FieldOffset(20)] public float Float5; /// /// Get the 6th Float of the vector /// [FieldOffset(24)] public float Float6; /// /// Get the 7th Float of the vector /// [FieldOffset(28)] public float Float7; /// /// Get the 0th Double of the vector /// [FieldOffset(0)] public double Double0; /// /// Get the 1st Double of the vector /// [FieldOffset(8)] public double Double1; /// /// Get the 2nd Double of the vector /// [FieldOffset(16)] public double Double2; /// /// Get the 3rd Double of the vector /// [FieldOffset(24)] public double Double3; /// /// Get the low half of the vector /// [FieldOffset(0)] public v128 Lo128; /// /// Get the high half of the vector /// [FieldOffset(16)] public v128 Hi128; /// /// Splat a single byte across the v256 /// /// Splatted byte. public v256(byte b) { this = default(v256); Byte0 = Byte1 = Byte2 = Byte3 = Byte4 = Byte5 = Byte6 = Byte7 = Byte8 = Byte9 = Byte10 = Byte11 = Byte12 = Byte13 = Byte14 = Byte15 = Byte16 = Byte17 = Byte18 = Byte19 = Byte20 = Byte21 = Byte22 = Byte23 = Byte24 = Byte25 = Byte26 = Byte27 = Byte28 = Byte29 = Byte30 = Byte31 = b; } /// /// Initialize the v128 with 32 bytes /// /// byte a. /// byte b. /// byte c. /// byte d. /// byte e. /// byte f. /// byte g. /// byte h. /// byte i. /// byte j. /// byte k. /// byte l. /// byte m. /// byte n. /// byte o. /// byte p. /// byte q. /// byte r. /// byte s. /// byte t. /// byte u. /// byte v. /// byte w. /// byte x. /// byte y. /// byte z. /// byte A. /// byte B. /// byte C. /// byte D. /// byte E. /// byte F. public v256( byte a, byte b, byte c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k, byte l, byte m, byte n, byte o, byte p, byte q, byte r, byte s, byte t, byte u, byte v, byte w, byte x, byte y, byte z, byte A, byte B, byte C, byte D, byte E, byte F) { this = default(v256); Byte0 = a; Byte1 = b; Byte2 = c; Byte3 = d; Byte4 = e; Byte5 = f; Byte6 = g; Byte7 = h; Byte8 = i; Byte9 = j; Byte10 = k; Byte11 = l; Byte12 = m; Byte13 = n; Byte14 = o; Byte15 = p; Byte16 = q; Byte17 = r; Byte18 = s; Byte19 = t; Byte20 = u; Byte21 = v; Byte22 = w; Byte23 = x; Byte24 = y; Byte25 = z; Byte26 = A; Byte27 = B; Byte28 = C; Byte29 = D; Byte30 = E; Byte31 = F; } /// /// Splat a single sbyte across the v256 /// /// Splatted sbyte. public v256(sbyte b) { this = default(v256); SByte0 = SByte1 = SByte2 = SByte3 = SByte4 = SByte5 = SByte6 = SByte7 = SByte8 = SByte9 = SByte10 = SByte11 = SByte12 = SByte13 = SByte14 = SByte15 = SByte16 = SByte17 = SByte18 = SByte19 = SByte20 = SByte21 = SByte22 = SByte23 = SByte24 = SByte25 = SByte26 = SByte27 = SByte28 = SByte29 = SByte30 = SByte31 = b; } /// /// Initialize the v256 with 32 sbytes /// /// sbyte a. /// sbyte b. /// sbyte c. /// sbyte d. /// sbyte e. /// sbyte f. /// sbyte g. /// sbyte h. /// sbyte i. /// sbyte j. /// sbyte k. /// sbyte l. /// sbyte m. /// sbyte n. /// sbyte o. /// sbyte p. /// sbyte q. /// sbyte r. /// sbyte s. /// sbyte t. /// sbyte u. /// sbyte v. /// sbyte w. /// sbyte x. /// sbyte y. /// sbyte z. /// sbyte A. /// sbyte B. /// sbyte C. /// sbyte D. /// sbyte E. /// sbyte F. public v256( sbyte a, sbyte b, sbyte c, sbyte d, sbyte e, sbyte f, sbyte g, sbyte h, sbyte i, sbyte j, sbyte k, sbyte l, sbyte m, sbyte n, sbyte o, sbyte p, sbyte q, sbyte r, sbyte s, sbyte t, sbyte u, sbyte v, sbyte w, sbyte x, sbyte y, sbyte z, sbyte A, sbyte B, sbyte C, sbyte D, sbyte E, sbyte F) { this = default(v256); SByte0 = a; SByte1 = b; SByte2 = c; SByte3 = d; SByte4 = e; SByte5 = f; SByte6 = g; SByte7 = h; SByte8 = i; SByte9 = j; SByte10 = k; SByte11 = l; SByte12 = m; SByte13 = n; SByte14 = o; SByte15 = p; SByte16 = q; SByte17 = r; SByte18 = s; SByte19 = t; SByte20 = u; SByte21 = v; SByte22 = w; SByte23 = x; SByte24 = y; SByte25 = z; SByte26 = A; SByte27 = B; SByte28 = C; SByte29 = D; SByte30 = E; SByte31 = F; } /// /// Splat a single short across the v256 /// /// Splatted short. public v256(short v) { this = default(v256); SShort0 = SShort1 = SShort2 = SShort3 = SShort4 = SShort5 = SShort6 = SShort7 = SShort8 = SShort9 = SShort10 = SShort11 = SShort12 = SShort13 = SShort14 = SShort15 = v; } /// /// Initialize the v256 with 16 shorts /// /// short a. /// short b. /// short c. /// short d. /// short e. /// short f. /// short g. /// short h. /// short i. /// short j. /// short k. /// short l. /// short m. /// short n. /// short o. /// short p. public v256( short a, short b, short c, short d, short e, short f, short g, short h, short i, short j, short k, short l, short m, short n, short o, short p) { this = default(v256); SShort0 = a; SShort1 = b; SShort2 = c; SShort3 = d; SShort4 = e; SShort5 = f; SShort6 = g; SShort7 = h; SShort8 = i; SShort9 = j; SShort10 = k; SShort11 = l; SShort12 = m; SShort13 = n; SShort14 = o; SShort15 = p; } /// /// Splat a single ushort across the v256 /// /// Splatted ushort. public v256(ushort v) { this = default(v256); UShort0 = UShort1 = UShort2 = UShort3 = UShort4 = UShort5 = UShort6 = UShort7 = UShort8 = UShort9 = UShort10 = UShort11 = UShort12 = UShort13 = UShort14 = UShort15 = v; } /// /// Initialize the v256 with 16 ushorts /// /// ushort a. /// ushort b. /// ushort c. /// ushort d. /// ushort e. /// ushort f. /// ushort g. /// ushort h. /// ushort i. /// ushort j. /// ushort k. /// ushort l. /// ushort m. /// ushort n. /// ushort o. /// ushort p. public v256( ushort a, ushort b, ushort c, ushort d, ushort e, ushort f, ushort g, ushort h, ushort i, ushort j, ushort k, ushort l, ushort m, ushort n, ushort o, ushort p) { this = default(v256); UShort0 = a; UShort1 = b; UShort2 = c; UShort3 = d; UShort4 = e; UShort5 = f; UShort6 = g; UShort7 = h; UShort8 = i; UShort9 = j; UShort10 = k; UShort11 = l; UShort12 = m; UShort13 = n; UShort14 = o; UShort15 = p; } #if BURST_INTERNAL || UNITY_BURST_EXPERIMENTAL_NEON_INTRINSICS /// /// Splat a single f16 across the v256 /// /// Splatted f16. public v256(f16 v) { this = default(v256); Half0 = Half1 = Half2 = Half3 = Half4 = Half5 = Half6 = Half7 = Half8 = Half9 = Half10 = Half11 = Half12 = Half13 = Half14 = Half15 = v; } /// /// Initialize the v256 with 16 f16's /// /// f16 a. /// f16 b. /// f16 c. /// f16 d. /// f16 e. /// f16 f. /// f16 g. /// f16 h. /// f16 i. /// f16 j. /// f16 k. /// f16 l. /// f16 m. /// f16 n. /// f16 o. /// f16 p. public v256( f16 a, f16 b, f16 c, f16 d, f16 e, f16 f, f16 g, f16 h, f16 i, f16 j, f16 k, f16 l, f16 m, f16 n, f16 o, f16 p) { this = default(v256); Half0 = a; Half1 = b; Half2 = c; Half3 = d; Half4 = e; Half5 = f; Half6 = g; Half7 = h; Half8 = i; Half9 = j; Half10 = k; Half11 = l; Half12 = m; Half13 = n; Half14 = o; Half15 = p; } #endif // BURST_INTERNAL || UNITY_BURST_EXPERIMENTAL_NEON_INTRINSICS /// /// Splat a single int across the v256 /// /// Splatted int. public v256(int v) { this = default(v256); SInt0 = SInt1 = SInt2 = SInt3 = SInt4 = SInt5 = SInt6 = SInt7 = v; } /// /// Initialize the v256 with 8 ints /// /// int a. /// int b. /// int c. /// int d. /// int e. /// int f. /// int g. /// int h. public v256(int a, int b, int c, int d, int e, int f, int g, int h) { this = default(v256); SInt0 = a; SInt1 = b; SInt2 = c; SInt3 = d; SInt4 = e; SInt5 = f; SInt6 = g; SInt7 = h; } /// /// Splat a single uint across the v256 /// /// Splatted uint. public v256(uint v) { this = default(v256); UInt0 = UInt1 = UInt2 = UInt3 = UInt4 = UInt5 = UInt6 = UInt7 = v; } /// /// Initialize the v256 with 8 uints /// /// uint a. /// uint b. /// uint c. /// uint d. /// uint e. /// uint f. /// uint g. /// uint h. public v256(uint a, uint b, uint c, uint d, uint e, uint f, uint g, uint h) { this = default(v256); UInt0 = a; UInt1 = b; UInt2 = c; UInt3 = d; UInt4 = e; UInt5 = f; UInt6 = g; UInt7 = h; } /// /// Splat a single float across the v256 /// /// Splatted float. public v256(float f) { this = default(v256); Float0 = Float1 = Float2 = Float3 = Float4 = Float5 = Float6 = Float7 = f; } /// /// Initialize the v256 with 8 floats /// /// float a. /// float b. /// float c. /// float d. /// float e. /// float f. /// float g. /// float h. public v256(float a, float b, float c, float d, float e, float f, float g, float h) { this = default(v256); Float0 = a; Float1 = b; Float2 = c; Float3 = d; Float4 = e; Float5 = f; Float6 = g; Float7 = h; } /// /// Splat a single double across the v256 /// /// Splatted double. public v256(double f) { this = default(v256); Double0 = Double1 = Double2 = Double3 = f; } /// /// Initialize the v256 with 4 doubles /// /// double a. /// double b. /// double c. /// double d. public v256(double a, double b, double c, double d) { this = default(v256); Double0 = a; Double1 = b; Double2 = c; Double3 = d; } /// /// Splat a single long across the v256 /// /// Splatted long. public v256(long f) { this = default(v256); SLong0 = SLong1 = SLong2 = SLong3 = f; } /// /// Initialize the v256 with 4 longs /// /// long a. /// long b. /// long c. /// long d. public v256(long a, long b, long c, long d) { this = default(v256); SLong0 = a; SLong1 = b; SLong2 = c; SLong3 = d; } /// /// Splat a single ulong across the v256 /// /// Splatted ulong. public v256(ulong f) { this = default(v256); ULong0 = ULong1 = ULong2 = ULong3 = f; } /// /// Initialize the v256 with 4 ulongs /// /// ulong a. /// ulong b. /// ulong c. /// ulong d. public v256(ulong a, ulong b, ulong c, ulong d) { this = default(v256); ULong0 = a; ULong1 = b; ULong2 = c; ULong3 = d; } /// /// Initialize the v256 with 2 v128's /// /// Low half of v128. /// High half of v128. public v256(v128 lo, v128 hi) { this = default(v256); Lo128 = lo; Hi128 = hi; } } }