diff options
Diffstat (limited to 'src/Ryujinx.Tests/Cpu/CpuTestSimd.cs')
-rw-r--r-- | src/Ryujinx.Tests/Cpu/CpuTestSimd.cs | 720 |
1 files changed, 410 insertions, 310 deletions
diff --git a/src/Ryujinx.Tests/Cpu/CpuTestSimd.cs b/src/Ryujinx.Tests/Cpu/CpuTestSimd.cs index 7c68c0fa..4c568a8f 100644 --- a/src/Ryujinx.Tests/Cpu/CpuTestSimd.cs +++ b/src/Ryujinx.Tests/Cpu/CpuTestSimd.cs @@ -12,7 +12,7 @@ namespace Ryujinx.Tests.Cpu { #if Simd -#region "Helper methods" + #region "Helper methods" private static byte GenLeadingSignsMinus8(int cnt) // 0 <= cnt <= 7 { return (byte)(~(uint)GenLeadingZeros8(cnt + 1)); @@ -45,10 +45,17 @@ namespace Ryujinx.Tests.Cpu private static byte GenLeadingZeros8(int cnt) // 0 <= cnt <= 8 { - if (cnt == 8) return 0; - if (cnt == 7) return 1; + if (cnt == 8) + { + return 0; + } + + if (cnt == 7) + { + return 1; + } - byte rnd = TestContext.CurrentContext.Random.NextByte(); + byte rnd = TestContext.CurrentContext.Random.NextByte(); sbyte mask = sbyte.MinValue; return (byte)(((uint)rnd >> (cnt + 1)) | ((uint)((byte)mask) >> cnt)); @@ -56,120 +63,160 @@ namespace Ryujinx.Tests.Cpu private static ushort GenLeadingZeros16(int cnt) // 0 <= cnt <= 16 { - if (cnt == 16) return 0; - if (cnt == 15) return 1; + if (cnt == 16) + { + return 0; + } - ushort rnd = TestContext.CurrentContext.Random.NextUShort(); - short mask = short.MinValue; + if (cnt == 15) + { + return 1; + } + + ushort rnd = TestContext.CurrentContext.Random.NextUShort(); + short mask = short.MinValue; return (ushort)(((uint)rnd >> (cnt + 1)) | ((uint)((ushort)mask) >> cnt)); } private static uint GenLeadingZeros32(int cnt) // 0 <= cnt <= 32 { - if (cnt == 32) return 0u; - if (cnt == 31) return 1u; + if (cnt == 32) + { + return 0u; + } - uint rnd = TestContext.CurrentContext.Random.NextUInt(); - int mask = int.MinValue; + if (cnt == 31) + { + return 1u; + } + + uint rnd = TestContext.CurrentContext.Random.NextUInt(); + int mask = int.MinValue; return (rnd >> (cnt + 1)) | ((uint)mask >> cnt); } -#endregion + #endregion -#region "ValueSource (Types)" + #region "ValueSource (Types)" private static ulong[] _1B1H1S1D_() { - return new[] { 0x0000000000000000ul, 0x000000000000007Ful, - 0x0000000000000080ul, 0x00000000000000FFul, - 0x0000000000007FFFul, 0x0000000000008000ul, - 0x000000000000FFFFul, 0x000000007FFFFFFFul, - 0x0000000080000000ul, 0x00000000FFFFFFFFul, - 0x7FFFFFFFFFFFFFFFul, 0x8000000000000000ul, - 0xFFFFFFFFFFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x000000000000007Ful, + 0x0000000000000080ul, 0x00000000000000FFul, + 0x0000000000007FFFul, 0x0000000000008000ul, + 0x000000000000FFFFul, 0x000000007FFFFFFFul, + 0x0000000080000000ul, 0x00000000FFFFFFFFul, + 0x7FFFFFFFFFFFFFFFul, 0x8000000000000000ul, + 0xFFFFFFFFFFFFFFFFul, + }; } private static ulong[] _1D_() { - return new[] { 0x0000000000000000ul, 0x7FFFFFFFFFFFFFFFul, - 0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x7FFFFFFFFFFFFFFFul, + 0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul, + }; } private static ulong[] _1H1S1D_() { - return new[] { 0x0000000000000000ul, 0x0000000000007FFFul, - 0x0000000000008000ul, 0x000000000000FFFFul, - 0x000000007FFFFFFFul, 0x0000000080000000ul, - 0x00000000FFFFFFFFul, 0x7FFFFFFFFFFFFFFFul, - 0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x0000000000007FFFul, + 0x0000000000008000ul, 0x000000000000FFFFul, + 0x000000007FFFFFFFul, 0x0000000080000000ul, + 0x00000000FFFFFFFFul, 0x7FFFFFFFFFFFFFFFul, + 0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul, + }; } private static ulong[] _1S_() { - return new[] { 0x0000000000000000ul, 0x000000007FFFFFFFul, - 0x0000000080000000ul, 0x00000000FFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x000000007FFFFFFFul, + 0x0000000080000000ul, 0x00000000FFFFFFFFul, + }; } private static ulong[] _2S_() { - return new[] { 0x0000000000000000ul, 0x7FFFFFFF7FFFFFFFul, - 0x8000000080000000ul, 0xFFFFFFFFFFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x7FFFFFFF7FFFFFFFul, + 0x8000000080000000ul, 0xFFFFFFFFFFFFFFFFul, + }; } private static ulong[] _4H_() { - return new[] { 0x0000000000000000ul, 0x7FFF7FFF7FFF7FFFul, - 0x8000800080008000ul, 0xFFFFFFFFFFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x7FFF7FFF7FFF7FFFul, + 0x8000800080008000ul, 0xFFFFFFFFFFFFFFFFul, + }; } private static ulong[] _4H2S1D_() { - return new[] { 0x0000000000000000ul, 0x7FFF7FFF7FFF7FFFul, - 0x8000800080008000ul, 0x7FFFFFFF7FFFFFFFul, - 0x8000000080000000ul, 0x7FFFFFFFFFFFFFFFul, - 0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x7FFF7FFF7FFF7FFFul, + 0x8000800080008000ul, 0x7FFFFFFF7FFFFFFFul, + 0x8000000080000000ul, 0x7FFFFFFFFFFFFFFFul, + 0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul, + }; } private static ulong[] _8B_() { - return new[] { 0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful, - 0x8080808080808080ul, 0xFFFFFFFFFFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful, + 0x8080808080808080ul, 0xFFFFFFFFFFFFFFFFul, + }; } private static ulong[] _8B4H_() { - return new[] { 0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful, - 0x8080808080808080ul, 0x7FFF7FFF7FFF7FFFul, - 0x8000800080008000ul, 0xFFFFFFFFFFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful, + 0x8080808080808080ul, 0x7FFF7FFF7FFF7FFFul, + 0x8000800080008000ul, 0xFFFFFFFFFFFFFFFFul, + }; } private static ulong[] _8B4H2S_() { - return new[] { 0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful, - 0x8080808080808080ul, 0x7FFF7FFF7FFF7FFFul, - 0x8000800080008000ul, 0x7FFFFFFF7FFFFFFFul, - 0x8000000080000000ul, 0xFFFFFFFFFFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful, + 0x8080808080808080ul, 0x7FFF7FFF7FFF7FFFul, + 0x8000800080008000ul, 0x7FFFFFFF7FFFFFFFul, + 0x8000000080000000ul, 0xFFFFFFFFFFFFFFFFul, + }; } private static ulong[] _8B4H2S1D_() { - return new[] { 0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful, - 0x8080808080808080ul, 0x7FFF7FFF7FFF7FFFul, - 0x8000800080008000ul, 0x7FFFFFFF7FFFFFFFul, - 0x8000000080000000ul, 0x7FFFFFFFFFFFFFFFul, - 0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful, + 0x8080808080808080ul, 0x7FFF7FFF7FFF7FFFul, + 0x8000800080008000ul, 0x7FFFFFFF7FFFFFFFul, + 0x8000000080000000ul, 0x7FFFFFFFFFFFFFFFul, + 0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul, + }; } private static uint[] _W_() { - return new[] { 0x00000000u, 0x7FFFFFFFu, - 0x80000000u, 0xFFFFFFFFu }; + return new[] { + 0x00000000u, 0x7FFFFFFFu, + 0x80000000u, 0xFFFFFFFFu, + }; } private static ulong[] _X_() { - return new[] { 0x0000000000000000ul, 0x7FFFFFFFFFFFFFFFul, - 0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul }; + return new[] { + 0x0000000000000000ul, 0x7FFFFFFFFFFFFFFFul, + 0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul, + }; } private static IEnumerable<ulong> _1H_F_() @@ -183,19 +230,19 @@ namespace Ryujinx.Tests.Cpu yield return 0x00000000000003FFul; // +Max Subnormal yield return 0x0000000000000001ul; // +Min Subnormal - if (!NoZeros) + if (!_noZeros) { yield return 0x0000000000008000ul; // -Zero yield return 0x0000000000000000ul; // +Zero } - if (!NoInfs) + if (!_noInfs) { yield return 0x000000000000FC00ul; // -Infinity yield return 0x0000000000007C00ul; // +Infinity } - if (!NoNaNs) + if (!_noNaNs) { yield return 0x000000000000FE00ul; // -QNaN (all zeros payload) yield return 0x000000000000FDFFul; // -SNaN (all ones payload) @@ -225,19 +272,19 @@ namespace Ryujinx.Tests.Cpu yield return 0x03FF03FF03FF03FFul; // +Max Subnormal yield return 0x0001000100010001ul; // +Min Subnormal - if (!NoZeros) + if (!_noZeros) { yield return 0x8000800080008000ul; // -Zero yield return 0x0000000000000000ul; // +Zero } - if (!NoInfs) + if (!_noInfs) { yield return 0xFC00FC00FC00FC00ul; // -Infinity yield return 0x7C007C007C007C00ul; // +Infinity } - if (!NoNaNs) + if (!_noNaNs) { yield return 0xFE00FE00FE00FE00ul; // -QNaN (all zeros payload) yield return 0xFDFFFDFFFDFFFDFFul; // -SNaN (all ones payload) @@ -266,19 +313,19 @@ namespace Ryujinx.Tests.Cpu yield return 0x00000000007FFFFFul; // +Max Subnormal yield return 0x0000000000000001ul; // +Min Subnormal (float.Epsilon) - if (!NoZeros) + if (!_noZeros) { yield return 0x0000000080000000ul; // -Zero yield return 0x0000000000000000ul; // +Zero } - if (!NoInfs) + if (!_noInfs) { yield return 0x00000000FF800000ul; // -Infinity yield return 0x000000007F800000ul; // +Infinity } - if (!NoNaNs) + if (!_noNaNs) { yield return 0x00000000FFC00000ul; // -QNaN (all zeros payload) (float.NaN) yield return 0x00000000FFBFFFFFul; // -SNaN (all ones payload) @@ -321,19 +368,19 @@ namespace Ryujinx.Tests.Cpu yield return 0x00000000007FFFFFul; // +Max Subnormal yield return 0x0000000000000001ul; // +Min Subnormal (float.Epsilon) - if (!NoZeros) + if (!_noZeros) { yield return 0x0000000080000000ul; // -Zero yield return 0x0000000000000000ul; // +Zero } - if (!NoInfs) + if (!_noInfs) { yield return 0x00000000FF800000ul; // -Infinity yield return 0x000000007F800000ul; // +Infinity } - if (!NoNaNs) + if (!_noNaNs) { yield return 0x00000000FFC00000ul; // -QNaN (all zeros payload) (float.NaN) yield return 0x00000000FFBFFFFFul; // -SNaN (all ones payload) @@ -370,19 +417,19 @@ namespace Ryujinx.Tests.Cpu yield return 0x007FFFFF007FFFFFul; // +Max Subnormal yield return 0x0000000100000001ul; // +Min Subnormal (float.Epsilon) - if (!NoZeros) + if (!_noZeros) { yield return 0x8000000080000000ul; // -Zero yield return 0x0000000000000000ul; // +Zero } - if (!NoInfs) + if (!_noInfs) { yield return 0xFF800000FF800000ul; // -Infinity yield return 0x7F8000007F800000ul; // +Infinity } - if (!NoNaNs) + if (!_noNaNs) { yield return 0xFFC00000FFC00000ul; // -QNaN (all zeros payload) (float.NaN) yield return 0xFFBFFFFFFFBFFFFFul; // -SNaN (all ones payload) @@ -424,19 +471,19 @@ namespace Ryujinx.Tests.Cpu yield return 0x007FFFFF007FFFFFul; // +Max Subnormal yield return 0x0000000100000001ul; // +Min Subnormal (float.Epsilon) - if (!NoZeros) + if (!_noZeros) { yield return 0x8000000080000000ul; // -Zero yield return 0x0000000000000000ul; // +Zero } - if (!NoInfs) + if (!_noInfs) { yield return 0xFF800000FF800000ul; // -Infinity yield return 0x7F8000007F800000ul; // +Infinity } - if (!NoNaNs) + if (!_noNaNs) { yield return 0xFFC00000FFC00000ul; // -QNaN (all zeros payload) (float.NaN) yield return 0xFFBFFFFFFFBFFFFFul; // -SNaN (all ones payload) @@ -473,19 +520,19 @@ namespace Ryujinx.Tests.Cpu yield return 0x000FFFFFFFFFFFFFul; // +Max Subnormal yield return 0x0000000000000001ul; // +Min Subnormal (double.Epsilon) - if (!NoZeros) + if (!_noZeros) { yield return 0x8000000000000000ul; // -Zero yield return 0x0000000000000000ul; // +Zero } - if (!NoInfs) + if (!_noInfs) { yield return 0xFFF0000000000000ul; // -Infinity yield return 0x7FF0000000000000ul; // +Infinity } - if (!NoNaNs) + if (!_noNaNs) { yield return 0xFFF8000000000000ul; // -QNaN (all zeros payload) (double.NaN) yield return 0xFFF7FFFFFFFFFFFFul; // -SNaN (all ones payload) @@ -527,19 +574,19 @@ namespace Ryujinx.Tests.Cpu yield return 0x000FFFFFFFFFFFFFul; // +Max Subnormal yield return 0x0000000000000001ul; // +Min Subnormal (double.Epsilon) - if (!NoZeros) + if (!_noZeros) { yield return 0x8000000000000000ul; // -Zero yield return 0x0000000000000000ul; // +Zero } - if (!NoInfs) + if (!_noInfs) { yield return 0xFFF0000000000000ul; // -Infinity yield return 0x7FF0000000000000ul; // +Infinity } - if (!NoNaNs) + if (!_noNaNs) { yield return 0xFFF8000000000000ul; // -QNaN (all zeros payload) (double.NaN) yield return 0xFFF7FFFFFFFFFFFFul; // -SNaN (all ones payload) @@ -642,9 +689,9 @@ namespace Ryujinx.Tests.Cpu (cnt << 24) | (cnt << 16) | (cnt << 08) | cnt; } } -#endregion + #endregion -#region "ValueSource (Opcodes)" + #region "ValueSource (Opcodes)" private static uint[] _SU_Add_Max_Min_V_V_8BB_4HH_() { return new[] @@ -653,7 +700,7 @@ namespace Ryujinx.Tests.Cpu 0x0E30A800u, // SMAXV B0, V0.8B 0x0E31A800u, // SMINV B0, V0.8B 0x2E30A800u, // UMAXV B0, V0.8B - 0x2E31A800u // UMINV B0, V0.8B + 0x2E31A800u, // UMINV B0, V0.8B }; } @@ -665,7 +712,7 @@ namespace Ryujinx.Tests.Cpu 0x4E30A800u, // SMAXV B0, V0.16B 0x4E31A800u, // SMINV B0, V0.16B 0x6E30A800u, // UMAXV B0, V0.16B - 0x6E31A800u // UMINV B0, V0.16B + 0x6E31A800u, // UMINV B0, V0.16B }; } @@ -676,7 +723,7 @@ namespace Ryujinx.Tests.Cpu 0x1E20C020u, // FABS S0, S1 0x1E214020u, // FNEG S0, S1 0x5EA1F820u, // FRECPX S0, S1 - 0x1E21C020u // FSQRT S0, S1 + 0x1E21C020u, // FSQRT S0, S1 }; } @@ -687,7 +734,7 @@ namespace Ryujinx.Tests.Cpu 0x1E60C020u, // FABS D0, D1 0x1E614020u, // FNEG D0, D1 0x5EE1F820u, // FRECPX D0, D1 - 0x1E61C020u // FSQRT D0, D1 + 0x1E61C020u, // FSQRT D0, D1 }; } @@ -697,7 +744,7 @@ namespace Ryujinx.Tests.Cpu { 0x0EA0F800u, // FABS V0.2S, V0.2S 0x2EA0F800u, // FNEG V0.2S, V0.2S - 0x2EA1F800u // FSQRT V0.2S, V0.2S + 0x2EA1F800u, // FSQRT V0.2S, V0.2S }; } @@ -707,7 +754,7 @@ namespace Ryujinx.Tests.Cpu { 0x4EE0F800u, // FABS V0.2D, V0.2D 0x6EE0F800u, // FNEG V0.2D, V0.2D - 0x6EE1F800u // FSQRT V0.2D, V0.2D + 0x6EE1F800u, // FSQRT V0.2D, V0.2D }; } @@ -717,7 +764,7 @@ namespace Ryujinx.Tests.Cpu { 0x7E30D820u, // FADDP S0, V1.2S 0x7E30C820u, // FMAXNMP S0, V1.2S - 0x7EB0C820u // FMINNMP S0, V1.2S + 0x7EB0C820u, // FMINNMP S0, V1.2S }; } @@ -727,7 +774,7 @@ namespace Ryujinx.Tests.Cpu { 0x7E70D820u, // FADDP D0, V1.2D 0x7E70C820u, // FMAXNMP D0, V1.2D - 0x7EF0C820u // FMINNMP D0, V1.2D + 0x7EF0C820u, // FMINNMP D0, V1.2D }; } @@ -739,7 +786,7 @@ namespace Ryujinx.Tests.Cpu 0x7EA0C820u, // FCMGE S0, S1, #0.0 0x5EA0C820u, // FCMGT S0, S1, #0.0 0x7EA0D820u, // FCMLE S0, S1, #0.0 - 0x5EA0E820u // FCMLT S0, S1, #0.0 + 0x5EA0E820u, // FCMLT S0, S1, #0.0 }; } @@ -751,7 +798,7 @@ namespace Ryujinx.Tests.Cpu 0x7EE0C820u, // FCMGE D0, D1, #0.0 0x5EE0C820u, // FCMGT D0, D1, #0.0 0x7EE0D820u, // FCMLE D0, D1, #0.0 - 0x5EE0E820u // FCMLT D0, D1, #0.0 + 0x5EE0E820u, // FCMLT D0, D1, #0.0 }; } @@ -763,7 +810,7 @@ namespace Ryujinx.Tests.Cpu 0x2EA0C800u, // FCMGE V0.2S, V0.2S, #0.0 0x0EA0C800u, // FCMGT V0.2S, V0.2S, #0.0 0x2EA0D800u, // FCMLE V0.2S, V0.2S, #0.0 - 0x0EA0E800u // FCMLT V0.2S, V0.2S, #0.0 + 0x0EA0E800u, // FCMLT V0.2S, V0.2S, #0.0 }; } @@ -775,7 +822,7 @@ namespace Ryujinx.Tests.Cpu 0x6EE0C800u, // FCMGE V0.2D, V0.2D, #0.0 0x4EE0C800u, // FCMGT V0.2D, V0.2D, #0.0 0x6EE0D800u, // FCMLE V0.2D, V0.2D, #0.0 - 0x4EE0E800u // FCMLT V0.2D, V0.2D, #0.0 + 0x4EE0E800u, // FCMLT V0.2D, V0.2D, #0.0 }; } @@ -784,7 +831,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x1E202028u, // FCMP S1, #0.0 - 0x1E202038u // FCMPE S1, #0.0 + 0x1E202038u, // FCMPE S1, #0.0 }; } @@ -793,7 +840,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x1E602028u, // FCMP D1, #0.0 - 0x1E602038u // FCMPE D1, #0.0 + 0x1E602038u, // FCMPE D1, #0.0 }; } @@ -801,7 +848,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x1E22C020u // FCVT D0, S1 + 0x1E22C020u, // FCVT D0, S1 }; } @@ -809,7 +856,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x1E624020u // FCVT S0, D1 + 0x1E624020u, // FCVT S0, D1 }; } @@ -817,7 +864,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x1E23C020u // FCVT H0, S1 + 0x1E23C020u, // FCVT H0, S1 }; } @@ -825,7 +872,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x1E63C020u // FCVT H0, D1 + 0x1E63C020u, // FCVT H0, D1 }; } @@ -833,7 +880,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x1EE24020u // FCVT S0, H1 + 0x1EE24020u, // FCVT S0, H1 }; } @@ -841,7 +888,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x1EE2C020u // FCVT D0, H1 + 0x1EE2C020u, // FCVT D0, H1 }; } @@ -854,7 +901,7 @@ namespace Ryujinx.Tests.Cpu 0x5E21A820u, // FCVTNS S0, S1 0x7E21A820u, // FCVTNU S0, S1 0x5EA1B820u, // FCVTZS S0, S1 - 0x7EA1B820u // FCVTZU S0, S1 + 0x7EA1B820u, // FCVTZU S0, S1 }; } @@ -867,7 +914,7 @@ namespace Ryujinx.Tests.Cpu 0x5E61A820u, // FCVTNS D0, D1 0x7E61A820u, // FCVTNU D0, D1 0x5EE1B820u, // FCVTZS D0, D1 - 0x7EE1B820u // FCVTZU D0, D1 + 0x7EE1B820u, // FCVTZU D0, D1 }; } @@ -881,7 +928,7 @@ namespace Ryujinx.Tests.Cpu 0x0E21A800u, // FCVTNS V0.2S, V0.2S 0x2E21A800u, // FCVTNU V0.2S, V0.2S 0x0EA1B800u, // FCVTZS V0.2S, V0.2S - 0x2EA1B800u // FCVTZU V0.2S, V0.2S + 0x2EA1B800u, // FCVTZU V0.2S, V0.2S }; } @@ -895,7 +942,7 @@ namespace Ryujinx.Tests.Cpu 0x4E61A800u, // FCVTNS V0.2D, V0.2D 0x6E61A800u, // FCVTNU V0.2D, V0.2D 0x4EE1B800u, // FCVTZS V0.2D, V0.2D - 0x6EE1B800u // FCVTZU V0.2D, V0.2D + 0x6EE1B800u, // FCVTZU V0.2D, V0.2D }; } @@ -903,7 +950,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x0E217800u // FCVTL V0.4S, V0.4H + 0x0E217800u, // FCVTL V0.4S, V0.4H }; } @@ -911,7 +958,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x0E617800u // FCVTL V0.2D, V0.2S + 0x0E617800u, // FCVTL V0.2D, V0.2S }; } @@ -919,7 +966,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x0E216800u // FCVTN V0.4H, V0.4S + 0x0E216800u, // FCVTN V0.4H, V0.4S }; } @@ -927,7 +974,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x0E616800u // FCVTN V0.2S, V0.2D + 0x0E616800u, // FCVTN V0.2S, V0.2D }; } @@ -938,7 +985,7 @@ namespace Ryujinx.Tests.Cpu 0x6E30C800u, // FMAXNMV S0, V0.4S 0x6E30F800u, // FMAXV S0, V0.4S 0x6EB0C800u, // FMINNMV S0, V0.4S - 0x6EB0F800u // FMINV S0, V0.4S + 0x6EB0F800u, // FMINV S0, V0.4S }; } @@ -946,7 +993,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x1E260000u // FMOV W0, S0 + 0x1E260000u, // FMOV W0, S0 }; } @@ -954,7 +1001,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x9E660000u // FMOV X0, D0 + 0x9E660000u, // FMOV X0, D0 }; } @@ -962,7 +1009,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x9EAE0000u // FMOV X0, V0.D[1] + 0x9EAE0000u, // FMOV X0, V0.D[1] }; } @@ -970,7 +1017,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x1E270000u // FMOV S0, W0 + 0x1E270000u, // FMOV S0, W0 }; } @@ -978,7 +1025,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x9E670000u // FMOV D0, X0 + 0x9E670000u, // FMOV D0, X0 }; } @@ -986,7 +1033,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x9EAF0000u // FMOV V0.D[1], X0 + 0x9EAF0000u, // FMOV V0.D[1], X0 }; } @@ -994,7 +1041,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x1E204020u // FMOV S0, S1 + 0x1E204020u, // FMOV S0, S1 }; } @@ -1002,7 +1049,7 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x1E604020u // FMOV D0, D1 + 0x1E604020u, // FMOV D0, D1 }; } @@ -1011,7 +1058,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x5EA1D820u, // FRECPE S0, S1 - 0x7EA1D820u // FRSQRTE S0, S1 + 0x7EA1D820u, // FRSQRTE S0, S1 }; } @@ -1020,7 +1067,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x5EE1D820u, // FRECPE D0, D1 - 0x7EE1D820u // FRSQRTE D0, D1 + 0x7EE1D820u, // FRSQRTE D0, D1 }; } @@ -1029,7 +1076,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x0EA1D800u, // FRECPE V0.2S, V0.2S - 0x2EA1D800u // FRSQRTE V0.2S, V0.2S + 0x2EA1D800u, // FRSQRTE V0.2S, V0.2S }; } @@ -1038,7 +1085,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x4EE1D800u, // FRECPE V0.2D, V0.2D - 0x6EE1D800u // FRSQRTE V0.2D, V0.2D + 0x6EE1D800u, // FRSQRTE V0.2D, V0.2D }; } @@ -1050,7 +1097,7 @@ namespace Ryujinx.Tests.Cpu 0x1E254020u, // FRINTM S0, S1 0x1E244020u, // FRINTN S0, S1 0x1E24C020u, // FRINTP S0, S1 - 0x1E25C020u // FRINTZ S0, S1 + 0x1E25C020u, // FRINTZ S0, S1 }; } @@ -1062,7 +1109,7 @@ namespace Ryujinx.Tests.Cpu 0x1E654020u, // FRINTM D0, D1 0x1E644020u, // FRINTN D0, D1 0x1E64C020u, // FRINTP D0, D1 - 0x1E65C020u // FRINTZ D0, D1 + 0x1E65C020u, // FRINTZ D0, D1 }; } @@ -1074,7 +1121,7 @@ namespace Ryujinx.Tests.Cpu 0x0E219800u, // FRINTM V0.2S, V0.2S 0x0E218800u, // FRINTN V0.2S, V0.2S 0x0EA18800u, // FRINTP V0.2S, V0.2S - 0x0EA19800u // FRINTZ V0.2S, V0.2S + 0x0EA19800u, // FRINTZ V0.2S, V0.2S }; } @@ -1086,7 +1133,7 @@ namespace Ryujinx.Tests.Cpu 0x4E619800u, // FRINTM V0.2D, V0.2D 0x4E618800u, // FRINTN V0.2D, V0.2D 0x4EE18800u, // FRINTP V0.2D, V0.2D - 0x4EE19800u // FRINTZ V0.2D, V0.2D + 0x4EE19800u, // FRINTZ V0.2D, V0.2D }; } @@ -1095,7 +1142,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x1E27C020u, // FRINTI S0, S1 - 0x1E274020u // FRINTX S0, S1 + 0x1E274020u, // FRINTX S0, S1 }; } @@ -1104,7 +1151,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x1E67C020u, // FRINTI D0, D1 - 0x1E674020u // FRINTX D0, D1 + 0x1E674020u, // FRINTX D0, D1 }; } @@ -1113,7 +1160,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x2EA19800u, // FRINTI V0.2S, V0.2S - 0x2E219800u // FRINTX V0.2S, V0.2S + 0x2E219800u, // FRINTX V0.2S, V0.2S }; } @@ -1122,7 +1169,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x6EE19800u, // FRINTI V0.2D, V0.2D - 0x6E619800u // FRINTX V0.2D, V0.2D + 0x6E619800u, // FRINTX V0.2D, V0.2D }; } @@ -1131,7 +1178,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x0E303800u, // SADDLV H0, V0.8B - 0x2E303800u // UADDLV H0, V0.8B + 0x2E303800u, // UADDLV H0, V0.8B }; } @@ -1140,7 +1187,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x4E303800u, // SADDLV H0, V0.16B - 0x6E303800u // UADDLV H0, V0.16B + 0x6E303800u, // UADDLV H0, V0.16B }; } @@ -1149,7 +1196,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x5E21D820u, // SCVTF S0, S1 - 0x7E21D820u // UCVTF S0, S1 + 0x7E21D820u, // UCVTF S0, S1 }; } @@ -1158,7 +1205,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x5E61D820u, // SCVTF D0, D1 - 0x7E61D820u // UCVTF D0, D1 + 0x7E61D820u, // UCVTF D0, D1 }; } @@ -1167,7 +1214,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x0E21D800u, // SCVTF V0.2S, V0.2S - 0x2E21D800u // UCVTF V0.2S, V0.2S + 0x2E21D800u, // UCVTF V0.2S, V0.2S }; } @@ -1176,7 +1223,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x4E61D800u, // SCVTF V0.2D, V0.2D - 0x6E61D800u // UCVTF V0.2D, V0.2D + 0x6E61D800u, // UCVTF V0.2D, V0.2D }; } @@ -1185,7 +1232,7 @@ namespace Ryujinx.Tests.Cpu return new[] { 0x5E280800u, // SHA1H S0, S0 - 0x5E281800u // SHA1SU1 V0.4S, V0.4S + 0x5E281800u, // SHA1SU1 V0.4S, V0.4S }; } @@ -1193,19 +1240,19 @@ namespace Ryujinx.Tests.Cpu { return new[] { - 0x5E282800u // SHA256SU0 V0.4S, V0.4S + 0x5E282800u, // SHA256SU0 V0.4S, V0.4S }; } -#endregion + #endregion private const int RndCnt = 2; - private static readonly bool NoZeros = false; - private static readonly bool NoInfs = false; - private static readonly bool NoNaNs = false; + private static readonly bool _noZeros = false; + private static readonly bool _noInfs = false; + private static readonly bool _noNaNs = false; [Test, Pairwise, Description("ABS <V><d>, <V><n>")] - public void Abs_S_D([Values(0u)] uint rd, + public void Abs_S_D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_))] ulong z, [ValueSource(nameof(_1D_))] ulong a) @@ -1222,7 +1269,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("ABS <Vd>.<T>, <Vn>.<T>")] - public void Abs_V_8B_4H_2S([Values(0u)] uint rd, + public void Abs_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -1241,7 +1288,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("ABS <Vd>.<T>, <Vn>.<T>")] - public void Abs_V_16B_8H_4S_2D([Values(0u)] uint rd, + public void Abs_V_16B_8H_4S_2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S1D_))] ulong z, [ValueSource(nameof(_8B4H2S1D_))] ulong a, @@ -1260,7 +1307,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("ADDP <V><d>, <Vn>.<T>")] - public void Addp_S_2DD([Values(0u)] uint rd, + public void Addp_S_2DD([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_))] ulong z, [ValueSource(nameof(_1D_))] ulong a) @@ -1278,7 +1325,7 @@ namespace Ryujinx.Tests.Cpu [Test, Pairwise] public void SU_Add_Max_Min_V_V_8BB_4HH([ValueSource(nameof(_SU_Add_Max_Min_V_V_8BB_4HH_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H_))] ulong z, [ValueSource(nameof(_8B4H_))] ulong a, @@ -1297,7 +1344,7 @@ namespace Ryujinx.Tests.Cpu [Test, Pairwise] public void SU_Add_Max_Min_V_V_16BB_8HH_4SS([ValueSource(nameof(_SU_Add_Max_Min_V_V_16BB_8HH_4SS_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -1315,9 +1362,9 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CLS <Vd>.<T>, <Vn>.<T>")] - public void Cls_V_8B_16B([Values(0u)] uint rd, + public void Cls_V_8B_16B([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, - [ValueSource(nameof(_8B_))] [Random(RndCnt)] ulong z, + [ValueSource(nameof(_8B_))][Random(RndCnt)] ulong z, [ValueSource(nameof(_GenLeadingSigns8B_))] ulong a, [Values(0b0u, 0b1u)] uint q) // <8B, 16B> { @@ -1334,9 +1381,9 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CLS <Vd>.<T>, <Vn>.<T>")] - public void Cls_V_4H_8H([Values(0u)] uint rd, + public void Cls_V_4H_8H([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, - [ValueSource(nameof(_4H_))] [Random(RndCnt)] ulong z, + [ValueSource(nameof(_4H_))][Random(RndCnt)] ulong z, [ValueSource(nameof(_GenLeadingSigns4H_))] ulong a, [Values(0b0u, 0b1u)] uint q) // <4H, 8H> { @@ -1353,9 +1400,9 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CLS <Vd>.<T>, <Vn>.<T>")] - public void Cls_V_2S_4S([Values(0u)] uint rd, + public void Cls_V_2S_4S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, - [ValueSource(nameof(_2S_))] [Random(RndCnt)] ulong z, + [ValueSource(nameof(_2S_))][Random(RndCnt)] ulong z, [ValueSource(nameof(_GenLeadingSigns2S_))] ulong a, [Values(0b0u, 0b1u)] uint q) // <2S, 4S> { @@ -1372,9 +1419,9 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CLZ <Vd>.<T>, <Vn>.<T>")] - public void Clz_V_8B_16B([Values(0u)] uint rd, + public void Clz_V_8B_16B([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, - [ValueSource(nameof(_8B_))] [Random(RndCnt)] ulong z, + [ValueSource(nameof(_8B_))][Random(RndCnt)] ulong z, [ValueSource(nameof(_GenLeadingZeros8B_))] ulong a, [Values(0b0u, 0b1u)] uint q) // <8B, 16B> { @@ -1391,9 +1438,9 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CLZ <Vd>.<T>, <Vn>.<T>")] - public void Clz_V_4H_8H([Values(0u)] uint rd, + public void Clz_V_4H_8H([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, - [ValueSource(nameof(_4H_))] [Random(RndCnt)] ulong z, + [ValueSource(nameof(_4H_))][Random(RndCnt)] ulong z, [ValueSource(nameof(_GenLeadingZeros4H_))] ulong a, [Values(0b0u, 0b1u)] uint q) // <4H, 8H> { @@ -1410,9 +1457,9 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CLZ <Vd>.<T>, <Vn>.<T>")] - public void Clz_V_2S_4S([Values(0u)] uint rd, + public void Clz_V_2S_4S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, - [ValueSource(nameof(_2S_))] [Random(RndCnt)] ulong z, + [ValueSource(nameof(_2S_))][Random(RndCnt)] ulong z, [ValueSource(nameof(_GenLeadingZeros2S_))] ulong a, [Values(0b0u, 0b1u)] uint q) // <2S, 4S> { @@ -1429,7 +1476,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMEQ <V><d>, <V><n>, #0")] - public void Cmeq_S_D([Values(0u)] uint rd, + public void Cmeq_S_D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_))] ulong z, [ValueSource(nameof(_1D_))] ulong a) @@ -1446,7 +1493,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMEQ <Vd>.<T>, <Vn>.<T>, #0")] - public void Cmeq_V_8B_4H_2S([Values(0u)] uint rd, + public void Cmeq_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -1465,7 +1512,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMEQ <Vd>.<T>, <Vn>.<T>, #0")] - public void Cmeq_V_16B_8H_4S_2D([Values(0u)] uint rd, + public void Cmeq_V_16B_8H_4S_2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S1D_))] ulong z, [ValueSource(nameof(_8B4H2S1D_))] ulong a, @@ -1484,7 +1531,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMGE <V><d>, <V><n>, #0")] - public void Cmge_S_D([Values(0u)] uint rd, + public void Cmge_S_D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_))] ulong z, [ValueSource(nameof(_1D_))] ulong a) @@ -1501,7 +1548,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMGE <Vd>.<T>, <Vn>.<T>, #0")] - public void Cmge_V_8B_4H_2S([Values(0u)] uint rd, + public void Cmge_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -1520,7 +1567,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMGE <Vd>.<T>, <Vn>.<T>, #0")] - public void Cmge_V_16B_8H_4S_2D([Values(0u)] uint rd, + public void Cmge_V_16B_8H_4S_2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S1D_))] ulong z, [ValueSource(nameof(_8B4H2S1D_))] ulong a, @@ -1539,7 +1586,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMGT <V><d>, <V><n>, #0")] - public void Cmgt_S_D([Values(0u)] uint rd, + public void Cmgt_S_D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_))] ulong z, [ValueSource(nameof(_1D_))] ulong a) @@ -1556,7 +1603,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMGT <Vd>.<T>, <Vn>.<T>, #0")] - public void Cmgt_V_8B_4H_2S([Values(0u)] uint rd, + public void Cmgt_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -1575,7 +1622,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMGT <Vd>.<T>, <Vn>.<T>, #0")] - public void Cmgt_V_16B_8H_4S_2D([Values(0u)] uint rd, + public void Cmgt_V_16B_8H_4S_2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S1D_))] ulong z, [ValueSource(nameof(_8B4H2S1D_))] ulong a, @@ -1594,7 +1641,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMLE <V><d>, <V><n>, #0")] - public void Cmle_S_D([Values(0u)] uint rd, + public void Cmle_S_D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_))] ulong z, [ValueSource(nameof(_1D_))] ulong a) @@ -1611,7 +1658,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMLE <Vd>.<T>, <Vn>.<T>, #0")] - public void Cmle_V_8B_4H_2S([Values(0u)] uint rd, + public void Cmle_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -1630,7 +1677,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMLE <Vd>.<T>, <Vn>.<T>, #0")] - public void Cmle_V_16B_8H_4S_2D([Values(0u)] uint rd, + public void Cmle_V_16B_8H_4S_2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S1D_))] ulong z, [ValueSource(nameof(_8B4H2S1D_))] ulong a, @@ -1649,7 +1696,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMLT <V><d>, <V><n>, #0")] - public void Cmlt_S_D([Values(0u)] uint rd, + public void Cmlt_S_D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_))] ulong z, [ValueSource(nameof(_1D_))] ulong a) @@ -1666,7 +1713,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMLT <Vd>.<T>, <Vn>.<T>, #0")] - public void Cmlt_V_8B_4H_2S([Values(0u)] uint rd, + public void Cmlt_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -1685,7 +1732,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CMLT <Vd>.<T>, <Vn>.<T>, #0")] - public void Cmlt_V_16B_8H_4S_2D([Values(0u)] uint rd, + public void Cmlt_V_16B_8H_4S_2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S1D_))] ulong z, [ValueSource(nameof(_8B4H2S1D_))] ulong a, @@ -1704,9 +1751,9 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CNT <Vd>.<T>, <Vn>.<T>")] - public void Cnt_V_8B([Values(0u)] uint rd, + public void Cnt_V_8B([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, - [ValueSource(nameof(_8B_))] [Random(RndCnt)] ulong z, + [ValueSource(nameof(_8B_))][Random(RndCnt)] ulong z, [ValueSource(nameof(_GenPopCnt8B_))] ulong a) { uint opcode = 0x0E205800; // CNT V0.8B, V0.8B @@ -1721,9 +1768,9 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("CNT <Vd>.<T>, <Vn>.<T>")] - public void Cnt_V_16B([Values(0u)] uint rd, + public void Cnt_V_16B([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, - [ValueSource(nameof(_8B_))] [Random(RndCnt)] ulong z, + [ValueSource(nameof(_8B_))][Random(RndCnt)] ulong z, [ValueSource(nameof(_GenPopCnt8B_))] ulong a) { uint opcode = 0x4E205800; // CNT V0.16B, V0.16B @@ -1737,7 +1784,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Abs_Neg_Recpx_Sqrt_S_S([ValueSource(nameof(_F_Abs_Neg_Recpx_Sqrt_S_S_))] uint opcodes, [ValueSource(nameof(_1S_F_))] ulong a) { @@ -1755,7 +1803,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Abs_Neg_Recpx_Sqrt_S_D([ValueSource(nameof(_F_Abs_Neg_Recpx_Sqrt_S_D_))] uint opcodes, [ValueSource(nameof(_1D_F_))] ulong a) { @@ -1773,9 +1822,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Abs_Neg_Sqrt_V_2S_4S([ValueSource(nameof(_F_Abs_Neg_Sqrt_V_2S_4S_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_2S_F_))] ulong z, [ValueSource(nameof(_2S_F_))] ulong a, @@ -1797,9 +1847,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Abs_Neg_Sqrt_V_2D([ValueSource(nameof(_F_Abs_Neg_Sqrt_V_2D_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_F_))] ulong z, [ValueSource(nameof(_1D_F_))] ulong a) @@ -1819,7 +1870,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Add_Max_Min_Nm_P_S_2SS([ValueSource(nameof(_F_Add_Max_Min_Nm_P_S_2SS_))] uint opcodes, [ValueSource(nameof(_2S_F_))] ulong a) { @@ -1838,7 +1890,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Add_Max_Min_Nm_P_S_2DD([ValueSource(nameof(_F_Add_Max_Min_Nm_P_S_2DD_))] uint opcodes, [ValueSource(nameof(_1D_F_))] ulong a0, [ValueSource(nameof(_1D_F_))] ulong a1) @@ -1858,7 +1911,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cm_EqGeGtLeLt_S_S([ValueSource(nameof(_F_Cm_EqGeGtLeLt_S_S_))] uint opcodes, [ValueSource(nameof(_1S_F_))] ulong a) { @@ -1875,7 +1929,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cm_EqGeGtLeLt_S_D([ValueSource(nameof(_F_Cm_EqGeGtLeLt_S_D_))] uint opcodes, [ValueSource(nameof(_1D_F_))] ulong a) { @@ -1892,9 +1947,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cm_EqGeGtLeLt_V_2S_4S([ValueSource(nameof(_F_Cm_EqGeGtLeLt_V_2S_4S_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_2S_F_))] ulong z, [ValueSource(nameof(_2S_F_))] ulong a, @@ -1915,9 +1971,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cm_EqGeGtLeLt_V_2D([ValueSource(nameof(_F_Cm_EqGeGtLeLt_V_2D_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_F_))] ulong z, [ValueSource(nameof(_1D_F_))] ulong a) @@ -1936,7 +1993,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cmp_Cmpe_S_S([ValueSource(nameof(_F_Cmp_Cmpe_S_S_))] uint opcodes, [ValueSource(nameof(_1S_F_))] ulong a) { @@ -1952,7 +2010,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cmp_Cmpe_S_D([ValueSource(nameof(_F_Cmp_Cmpe_S_D_))] uint opcodes, [ValueSource(nameof(_1D_F_))] ulong a) { @@ -1968,7 +2027,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvt_S_SD([ValueSource(nameof(_F_Cvt_S_SD_))] uint opcodes, [ValueSource(nameof(_1S_F_))] ulong a) { @@ -1981,7 +2041,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvt_S_DS([ValueSource(nameof(_F_Cvt_S_DS_))] uint opcodes, [ValueSource(nameof(_1D_F_))] ulong a) { @@ -1994,7 +2055,9 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] // Unicorn seems to default all rounding modes to RMode.Rn. + // Unicorn seems to default all rounding modes to RMode.Rn. + [Test, Pairwise] + [Explicit] public void F_Cvt_S_SH([ValueSource(nameof(_F_Cvt_S_SH_))] uint opcodes, [ValueSource(nameof(_1S_F_))] ulong a, [Values(RMode.Rn)] RMode rMode) @@ -2010,7 +2073,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvt_S_DH([ValueSource(nameof(_F_Cvt_S_DH_))] uint opcodes, [ValueSource(nameof(_1D_F_))] ulong a, [Values(RMode.Rn)] RMode rMode) @@ -2026,7 +2090,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvt_S_HS([ValueSource(nameof(_F_Cvt_S_HS_))] uint opcodes, [ValueSource(nameof(_1H_F_))] ulong a) { @@ -2039,7 +2104,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvt_S_HD([ValueSource(nameof(_F_Cvt_S_HD_))] uint opcodes, [ValueSource(nameof(_1H_F_))] ulong a) { @@ -2052,7 +2118,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvt_ANZ_SU_S_S([ValueSource(nameof(_F_Cvt_ANZ_SU_S_S_))] uint opcodes, [ValueSource(nameof(_1S_F_W_))] ulong a) { @@ -2065,7 +2132,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvt_ANZ_SU_S_D([ValueSource(nameof(_F_Cvt_ANZ_SU_S_D_))] uint opcodes, [ValueSource(nameof(_1D_F_X_))] ulong a) { @@ -2078,9 +2146,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvt_ANZ_SU_V_2S_4S([ValueSource(nameof(_F_Cvt_ANZ_SU_V_2S_4S_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_2S_F_W_))] ulong z, [ValueSource(nameof(_2S_F_W_))] ulong a, @@ -2097,9 +2166,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvt_ANZ_SU_V_2D([ValueSource(nameof(_F_Cvt_ANZ_SU_V_2D_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_F_X_))] ulong z, [ValueSource(nameof(_1D_F_X_))] ulong a) @@ -2114,9 +2184,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvtl_V_4H4S_8H4S([ValueSource(nameof(_F_Cvtl_V_4H4S_8H4S_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_4H_F_))] ulong z, [ValueSource(nameof(_4H_F_))] ulong a, @@ -2141,9 +2212,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Ofc | Fpsr.Ufc | Fpsr.Ixc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvtl_V_2S2D_4S2D([ValueSource(nameof(_F_Cvtl_V_2S2D_4S2D_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_2S_F_))] ulong z, [ValueSource(nameof(_2S_F_))] ulong a, @@ -2160,9 +2232,11 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] // Unicorn seems to default all rounding modes to RMode.Rn. + // Unicorn seems to default all rounding modes to RMode.Rn. + [Test, Pairwise] + [Explicit] public void F_Cvtn_V_4S4H_4S8H([ValueSource(nameof(_F_Cvtn_V_4S4H_4S8H_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_2S_F_))] ulong z, [ValueSource(nameof(_2S_F_))] ulong a, @@ -2187,9 +2261,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Ofc | Fpsr.Ufc | Fpsr.Ixc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Cvtn_V_2D2S_2D4S([ValueSource(nameof(_F_Cvtn_V_2D2S_2D4S_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_F_))] ulong z, [ValueSource(nameof(_1D_F_))] ulong a, @@ -2206,9 +2281,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Max_Min_Nm_V_V_4SS([ValueSource(nameof(_F_Max_Min_Nm_V_V_4SS_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_2S_F_))] ulong z, [ValueSource(nameof(_2S_F_))] ulong a) @@ -2228,10 +2304,11 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Mov_Ftoi_SW([ValueSource(nameof(_F_Mov_Ftoi_SW_))] uint opcodes, [Values(0u, 31u)] uint rd, - [Values(1u)] uint rn, + [Values(1u)] uint rn, [ValueSource(nameof(_1S_F_))] ulong a) { opcodes |= ((rn & 31) << 5) | ((rd & 31) << 0); @@ -2245,10 +2322,11 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Mov_Ftoi_DX([ValueSource(nameof(_F_Mov_Ftoi_DX_))] uint opcodes, [Values(0u, 31u)] uint rd, - [Values(1u)] uint rn, + [Values(1u)] uint rn, [ValueSource(nameof(_1D_F_))] ulong a) { opcodes |= ((rn & 31) << 5) | ((rd & 31) << 0); @@ -2261,10 +2339,11 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Mov_Ftoi1_DX([ValueSource(nameof(_F_Mov_Ftoi1_DX_))] uint opcodes, [Values(0u, 31u)] uint rd, - [Values(1u)] uint rn, + [Values(1u)] uint rn, [ValueSource(nameof(_1D_F_))] ulong a) { opcodes |= ((rn & 31) << 5) | ((rd & 31) << 0); @@ -2277,16 +2356,17 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Mov_Itof_WS([ValueSource(nameof(_F_Mov_Itof_WS_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 31u)] uint rn, [ValueSource(nameof(_W_))] uint wn) { opcodes |= ((rn & 31) << 5) | ((rd & 31) << 0); - uint w31 = TestContext.CurrentContext.Random.NextUInt(); - ulong z = TestContext.CurrentContext.Random.NextULong(); + uint w31 = TestContext.CurrentContext.Random.NextUInt(); + ulong z = TestContext.CurrentContext.Random.NextULong(); V128 v0 = MakeVectorE0E1(z, z); SingleOpcode(opcodes, x1: wn, x31: w31, v0: v0); @@ -2294,16 +2374,17 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Mov_Itof_XD([ValueSource(nameof(_F_Mov_Itof_XD_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 31u)] uint rn, [ValueSource(nameof(_X_))] ulong xn) { opcodes |= ((rn & 31) << 5) | ((rd & 31) << 0); ulong x31 = TestContext.CurrentContext.Random.NextULong(); - ulong z = TestContext.CurrentContext.Random.NextULong(); + ulong z = TestContext.CurrentContext.Random.NextULong(); V128 v0 = MakeVectorE1(z); SingleOpcode(opcodes, x1: xn, x31: x31, v0: v0); @@ -2311,16 +2392,17 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Mov_Itof1_XD([ValueSource(nameof(_F_Mov_Itof1_XD_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 31u)] uint rn, [ValueSource(nameof(_X_))] ulong xn) { opcodes |= ((rn & 31) << 5) | ((rd & 31) << 0); ulong x31 = TestContext.CurrentContext.Random.NextULong(); - ulong z = TestContext.CurrentContext.Random.NextULong(); + ulong z = TestContext.CurrentContext.Random.NextULong(); V128 v0 = MakeVectorE0(z); SingleOpcode(opcodes, x1: xn, x31: x31, v0: v0); @@ -2328,7 +2410,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Mov_S_S([ValueSource(nameof(_F_Mov_S_S_))] uint opcodes, [ValueSource(nameof(_1S_F_))] ulong a) { @@ -2341,7 +2424,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Mov_S_D([ValueSource(nameof(_F_Mov_S_D_))] uint opcodes, [ValueSource(nameof(_1D_F_))] ulong a) { @@ -2354,7 +2438,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Recpe_Rsqrte_S_S([ValueSource(nameof(_F_Recpe_Rsqrte_S_S_))] uint opcodes, [ValueSource(nameof(_1S_F_))] ulong a, [Values(RMode.Rn)] RMode rMode) @@ -2374,7 +2459,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Dzc | Fpsr.Ofc | Fpsr.Ufc | Fpsr.Ixc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Recpe_Rsqrte_S_D([ValueSource(nameof(_F_Recpe_Rsqrte_S_D_))] uint opcodes, [ValueSource(nameof(_1D_F_))] ulong a, [Values(RMode.Rn)] RMode rMode) @@ -2394,9 +2480,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Dzc | Fpsr.Ofc | Fpsr.Ufc | Fpsr.Ixc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Recpe_Rsqrte_V_2S_4S([ValueSource(nameof(_F_Recpe_Rsqrte_V_2S_4S_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_2S_F_))] ulong z, [ValueSource(nameof(_2S_F_))] ulong a, @@ -2420,9 +2507,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Dzc | Fpsr.Ofc | Fpsr.Ufc | Fpsr.Ixc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Recpe_Rsqrte_V_2D([ValueSource(nameof(_F_Recpe_Rsqrte_V_2D_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_F_))] ulong z, [ValueSource(nameof(_1D_F_))] ulong a, @@ -2444,7 +2532,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(fpsrMask: Fpsr.Ioc | Fpsr.Dzc | Fpsr.Ofc | Fpsr.Ufc | Fpsr.Ixc | Fpsr.Idc); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Rint_AMNPZ_S_S([ValueSource(nameof(_F_Rint_AMNPZ_S_S_))] uint opcodes, [ValueSource(nameof(_1S_F_))] ulong a) { @@ -2457,7 +2546,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Rint_AMNPZ_S_D([ValueSource(nameof(_F_Rint_AMNPZ_S_D_))] uint opcodes, [ValueSource(nameof(_1D_F_))] ulong a) { @@ -2470,9 +2560,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Rint_AMNPZ_V_2S_4S([ValueSource(nameof(_F_Rint_AMNPZ_V_2S_4S_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_2S_F_))] ulong z, [ValueSource(nameof(_2S_F_))] ulong a, @@ -2489,9 +2580,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Rint_AMNPZ_V_2D([ValueSource(nameof(_F_Rint_AMNPZ_V_2D_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_F_))] ulong z, [ValueSource(nameof(_1D_F_))] ulong a) @@ -2506,7 +2598,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Rint_IX_S_S([ValueSource(nameof(_F_Rint_IX_S_S_))] uint opcodes, [ValueSource(nameof(_1S_F_))] ulong a, [Values] RMode rMode) @@ -2522,7 +2615,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Rint_IX_S_D([ValueSource(nameof(_F_Rint_IX_S_D_))] uint opcodes, [ValueSource(nameof(_1D_F_))] ulong a, [Values] RMode rMode) @@ -2538,9 +2632,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Rint_IX_V_2S_4S([ValueSource(nameof(_F_Rint_IX_V_2S_4S_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_2S_F_))] ulong z, [ValueSource(nameof(_2S_F_))] ulong a, @@ -2560,9 +2655,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void F_Rint_IX_V_2D([ValueSource(nameof(_F_Rint_IX_V_2D_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_F_))] ulong z, [ValueSource(nameof(_1D_F_))] ulong a, @@ -2581,7 +2677,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("NEG <V><d>, <V><n>")] - public void Neg_S_D([Values(0u)] uint rd, + public void Neg_S_D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_))] ulong z, [ValueSource(nameof(_1D_))] ulong a) @@ -2598,7 +2694,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("NEG <Vd>.<T>, <Vn>.<T>")] - public void Neg_V_8B_4H_2S([Values(0u)] uint rd, + public void Neg_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -2617,7 +2713,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("NEG <Vd>.<T>, <Vn>.<T>")] - public void Neg_V_16B_8H_4S_2D([Values(0u)] uint rd, + public void Neg_V_16B_8H_4S_2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S1D_))] ulong z, [ValueSource(nameof(_8B4H2S1D_))] ulong a, @@ -2636,7 +2732,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("NOT <Vd>.<T>, <Vn>.<T>")] - public void Not_V_8B([Values(0u)] uint rd, + public void Not_V_8B([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B_))] ulong z, [ValueSource(nameof(_8B_))] ulong a) @@ -2653,7 +2749,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("NOT <Vd>.<T>, <Vn>.<T>")] - public void Not_V_16B([Values(0u)] uint rd, + public void Not_V_16B([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B_))] ulong z, [ValueSource(nameof(_8B_))] ulong a) @@ -2670,7 +2766,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("RBIT <Vd>.<T>, <Vn>.<T>")] - public void Rbit_V_8B([Values(0u)] uint rd, + public void Rbit_V_8B([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B_))] ulong z, [ValueSource(nameof(_8B_))] ulong a) @@ -2687,7 +2783,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("RBIT <Vd>.<T>, <Vn>.<T>")] - public void Rbit_V_16B([Values(0u)] uint rd, + public void Rbit_V_16B([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B_))] ulong z, [ValueSource(nameof(_8B_))] ulong a) @@ -2704,7 +2800,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("REV16 <Vd>.<T>, <Vn>.<T>")] - public void Rev16_V_8B([Values(0u)] uint rd, + public void Rev16_V_8B([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B_))] ulong z, [ValueSource(nameof(_8B_))] ulong a) @@ -2721,7 +2817,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("REV16 <Vd>.<T>, <Vn>.<T>")] - public void Rev16_V_16B([Values(0u)] uint rd, + public void Rev16_V_16B([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B_))] ulong z, [ValueSource(nameof(_8B_))] ulong a) @@ -2738,7 +2834,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("REV32 <Vd>.<T>, <Vn>.<T>")] - public void Rev32_V_8B_4H([Values(0u)] uint rd, + public void Rev32_V_8B_4H([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H_))] ulong z, [ValueSource(nameof(_8B4H_))] ulong a, @@ -2757,7 +2853,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("REV32 <Vd>.<T>, <Vn>.<T>")] - public void Rev32_V_16B_8H([Values(0u)] uint rd, + public void Rev32_V_16B_8H([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H_))] ulong z, [ValueSource(nameof(_8B4H_))] ulong a, @@ -2776,7 +2872,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("REV64 <Vd>.<T>, <Vn>.<T>")] - public void Rev64_V_8B_4H_2S([Values(0u)] uint rd, + public void Rev64_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -2795,7 +2891,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("REV64 <Vd>.<T>, <Vn>.<T>")] - public void Rev64_V_16B_8H_4S([Values(0u)] uint rd, + public void Rev64_V_16B_8H_4S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -2814,7 +2910,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SADALP <Vd>.<Ta>, <Vn>.<Tb>")] - public void Sadalp_V_8B4H_4H2S_2S1D([Values(0u)] uint rd, + public void Sadalp_V_8B4H_4H2S_2S1D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -2833,7 +2929,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SADALP <Vd>.<Ta>, <Vn>.<Tb>")] - public void Sadalp_V_16B8H_8H4S_4S2D([Values(0u)] uint rd, + public void Sadalp_V_16B8H_8H4S_4S2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -2852,7 +2948,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SADDLP <Vd>.<Ta>, <Vn>.<Tb>")] - public void Saddlp_V_8B4H_4H2S_2S1D([Values(0u)] uint rd, + public void Saddlp_V_8B4H_4H2S_2S1D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -2871,7 +2967,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SADDLP <Vd>.<Ta>, <Vn>.<Tb>")] - public void Saddlp_V_16B8H_8H4S_4S2D([Values(0u)] uint rd, + public void Saddlp_V_16B8H_8H4S_4S2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -2891,7 +2987,7 @@ namespace Ryujinx.Tests.Cpu [Test, Pairwise] public void SU_Addl_V_V_8BH_4HS([ValueSource(nameof(_SU_Addl_V_V_8BH_4HS_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H_))] ulong z, [ValueSource(nameof(_8B4H_))] ulong a, @@ -2910,7 +3006,7 @@ namespace Ryujinx.Tests.Cpu [Test, Pairwise] public void SU_Addl_V_V_16BH_8HS_4SD([ValueSource(nameof(_SU_Addl_V_V_16BH_8HS_4SD_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -2927,7 +3023,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void SU_Cvt_F_S_S([ValueSource(nameof(_SU_Cvt_F_S_S_))] uint opcodes, [ValueSource(nameof(_1S_))] ulong a) { @@ -2940,7 +3037,8 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void SU_Cvt_F_S_D([ValueSource(nameof(_SU_Cvt_F_S_D_))] uint opcodes, [ValueSource(nameof(_1D_))] ulong a) { @@ -2953,9 +3051,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void SU_Cvt_F_V_2S_4S([ValueSource(nameof(_SU_Cvt_F_V_2S_4S_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_2S_))] ulong z, [ValueSource(nameof(_2S_))] ulong a, @@ -2972,9 +3071,10 @@ namespace Ryujinx.Tests.Cpu CompareAgainstUnicorn(); } - [Test, Pairwise] [Explicit] + [Test, Pairwise] + [Explicit] public void SU_Cvt_F_V_2D([ValueSource(nameof(_SU_Cvt_F_V_2D_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1D_))] ulong z, [ValueSource(nameof(_1D_))] ulong a) @@ -2991,7 +3091,7 @@ namespace Ryujinx.Tests.Cpu [Test, Pairwise] public void Sha1h_Sha1su1_V([ValueSource(nameof(_Sha1h_Sha1su1_V_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [Random(RndCnt / 2)] ulong z0, [Random(RndCnt / 2)] ulong z1, [Random(RndCnt / 2)] ulong a0, [Random(RndCnt / 2)] ulong a1) @@ -3008,7 +3108,7 @@ namespace Ryujinx.Tests.Cpu [Test, Pairwise] public void Sha256su0_V([ValueSource(nameof(_Sha256su0_V_))] uint opcodes, - [Values(0u)] uint rd, + [Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [Random(RndCnt / 2)] ulong z0, [Random(RndCnt / 2)] ulong z1, [Random(RndCnt / 2)] ulong a0, [Random(RndCnt / 2)] ulong a1) @@ -3024,7 +3124,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SHLL{2} <Vd>.<Ta>, <Vn>.<Tb>, #<shift>")] - public void Shll_V([Values(0u)] uint rd, + public void Shll_V([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -3045,7 +3145,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQABS <V><d>, <V><n>")] - public void Sqabs_S_B_H_S_D([Values(0u)] uint rd, + public void Sqabs_S_B_H_S_D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1B1H1S1D_))] ulong z, [ValueSource(nameof(_1B1H1S1D_))] ulong a, @@ -3064,7 +3164,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQABS <Vd>.<T>, <Vn>.<T>")] - public void Sqabs_V_8B_4H_2S([Values(0u)] uint rd, + public void Sqabs_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -3083,7 +3183,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQABS <Vd>.<T>, <Vn>.<T>")] - public void Sqabs_V_16B_8H_4S_2D([Values(0u)] uint rd, + public void Sqabs_V_16B_8H_4S_2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S1D_))] ulong z, [ValueSource(nameof(_8B4H2S1D_))] ulong a, @@ -3102,7 +3202,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQNEG <V><d>, <V><n>")] - public void Sqneg_S_B_H_S_D([Values(0u)] uint rd, + public void Sqneg_S_B_H_S_D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1B1H1S1D_))] ulong z, [ValueSource(nameof(_1B1H1S1D_))] ulong a, @@ -3121,7 +3221,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQNEG <Vd>.<T>, <Vn>.<T>")] - public void Sqneg_V_8B_4H_2S([Values(0u)] uint rd, + public void Sqneg_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -3140,7 +3240,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQNEG <Vd>.<T>, <Vn>.<T>")] - public void Sqneg_V_16B_8H_4S_2D([Values(0u)] uint rd, + public void Sqneg_V_16B_8H_4S_2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S1D_))] ulong z, [ValueSource(nameof(_8B4H2S1D_))] ulong a, @@ -3159,7 +3259,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQXTN <Vb><d>, <Va><n>")] - public void Sqxtn_S_HB_SH_DS([Values(0u)] uint rd, + public void Sqxtn_S_HB_SH_DS([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1H1S1D_))] ulong z, [ValueSource(nameof(_1H1S1D_))] ulong a, @@ -3178,7 +3278,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQXTN{2} <Vd>.<Tb>, <Vn>.<Ta>")] - public void Sqxtn_V_8H8B_4S4H_2D2S([Values(0u)] uint rd, + public void Sqxtn_V_8H8B_4S4H_2D2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_4H2S1D_))] ulong z, [ValueSource(nameof(_4H2S1D_))] ulong a, @@ -3197,7 +3297,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQXTN{2} <Vd>.<Tb>, <Vn>.<Ta>")] - public void Sqxtn_V_8H16B_4S8H_2D4S([Values(0u)] uint rd, + public void Sqxtn_V_8H16B_4S8H_2D4S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_4H2S1D_))] ulong z, [ValueSource(nameof(_4H2S1D_))] ulong a, @@ -3216,7 +3316,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQXTUN <Vb><d>, <Va><n>")] - public void Sqxtun_S_HB_SH_DS([Values(0u)] uint rd, + public void Sqxtun_S_HB_SH_DS([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1H1S1D_))] ulong z, [ValueSource(nameof(_1H1S1D_))] ulong a, @@ -3235,7 +3335,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQXTUN{2} <Vd>.<Tb>, <Vn>.<Ta>")] - public void Sqxtun_V_8H8B_4S4H_2D2S([Values(0u)] uint rd, + public void Sqxtun_V_8H8B_4S4H_2D2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_4H2S1D_))] ulong z, [ValueSource(nameof(_4H2S1D_))] ulong a, @@ -3254,7 +3354,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SQXTUN{2} <Vd>.<Tb>, <Vn>.<Ta>")] - public void Sqxtun_V_8H16B_4S8H_2D4S([Values(0u)] uint rd, + public void Sqxtun_V_8H16B_4S8H_2D4S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_4H2S1D_))] ulong z, [ValueSource(nameof(_4H2S1D_))] ulong a, @@ -3273,7 +3373,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SUQADD <V><d>, <V><n>")] - public void Suqadd_S_B_H_S_D([Values(0u)] uint rd, + public void Suqadd_S_B_H_S_D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1B1H1S1D_))] ulong z, [ValueSource(nameof(_1B1H1S1D_))] ulong a, @@ -3292,7 +3392,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SUQADD <Vd>.<T>, <Vn>.<T>")] - public void Suqadd_V_8B_4H_2S([Values(0u)] uint rd, + public void Suqadd_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -3311,7 +3411,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("SUQADD <Vd>.<T>, <Vn>.<T>")] - public void Suqadd_V_16B_8H_4S_2D([Values(0u)] uint rd, + public void Suqadd_V_16B_8H_4S_2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S1D_))] ulong z, [ValueSource(nameof(_8B4H2S1D_))] ulong a, @@ -3330,7 +3430,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("UADALP <Vd>.<Ta>, <Vn>.<Tb>")] - public void Uadalp_V_8B4H_4H2S_2S1D([Values(0u)] uint rd, + public void Uadalp_V_8B4H_4H2S_2S1D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -3349,7 +3449,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("UADALP <Vd>.<Ta>, <Vn>.<Tb>")] - public void Uadalp_V_16B8H_8H4S_4S2D([Values(0u)] uint rd, + public void Uadalp_V_16B8H_8H4S_4S2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -3368,7 +3468,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("UADDLP <Vd>.<Ta>, <Vn>.<Tb>")] - public void Uaddlp_V_8B4H_4H2S_2S1D([Values(0u)] uint rd, + public void Uaddlp_V_8B4H_4H2S_2S1D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -3387,7 +3487,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("UADDLP <Vd>.<Ta>, <Vn>.<Tb>")] - public void Uaddlp_V_16B8H_8H4S_4S2D([Values(0u)] uint rd, + public void Uaddlp_V_16B8H_8H4S_4S2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -3406,7 +3506,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("UQXTN <Vb><d>, <Va><n>")] - public void Uqxtn_S_HB_SH_DS([Values(0u)] uint rd, + public void Uqxtn_S_HB_SH_DS([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1H1S1D_))] ulong z, [ValueSource(nameof(_1H1S1D_))] ulong a, @@ -3425,7 +3525,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("UQXTN{2} <Vd>.<Tb>, <Vn>.<Ta>")] - public void Uqxtn_V_8H8B_4S4H_2D2S([Values(0u)] uint rd, + public void Uqxtn_V_8H8B_4S4H_2D2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_4H2S1D_))] ulong z, [ValueSource(nameof(_4H2S1D_))] ulong a, @@ -3444,7 +3544,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("UQXTN{2} <Vd>.<Tb>, <Vn>.<Ta>")] - public void Uqxtn_V_8H16B_4S8H_2D4S([Values(0u)] uint rd, + public void Uqxtn_V_8H16B_4S8H_2D4S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_4H2S1D_))] ulong z, [ValueSource(nameof(_4H2S1D_))] ulong a, @@ -3463,7 +3563,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("USQADD <V><d>, <V><n>")] - public void Usqadd_S_B_H_S_D([Values(0u)] uint rd, + public void Usqadd_S_B_H_S_D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_1B1H1S1D_))] ulong z, [ValueSource(nameof(_1B1H1S1D_))] ulong a, @@ -3482,7 +3582,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("USQADD <Vd>.<T>, <Vn>.<T>")] - public void Usqadd_V_8B_4H_2S([Values(0u)] uint rd, + public void Usqadd_V_8B_4H_2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S_))] ulong z, [ValueSource(nameof(_8B4H2S_))] ulong a, @@ -3501,7 +3601,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("USQADD <Vd>.<T>, <Vn>.<T>")] - public void Usqadd_V_16B_8H_4S_2D([Values(0u)] uint rd, + public void Usqadd_V_16B_8H_4S_2D([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_8B4H2S1D_))] ulong z, [ValueSource(nameof(_8B4H2S1D_))] ulong a, @@ -3520,7 +3620,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("XTN{2} <Vd>.<Tb>, <Vn>.<Ta>")] - public void Xtn_V_8H8B_4S4H_2D2S([Values(0u)] uint rd, + public void Xtn_V_8H8B_4S4H_2D2S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_4H2S1D_))] ulong z, [ValueSource(nameof(_4H2S1D_))] ulong a, @@ -3539,7 +3639,7 @@ namespace Ryujinx.Tests.Cpu } [Test, Pairwise, Description("XTN{2} <Vd>.<Tb>, <Vn>.<Ta>")] - public void Xtn_V_8H16B_4S8H_2D4S([Values(0u)] uint rd, + public void Xtn_V_8H16B_4S8H_2D4S([Values(0u)] uint rd, [Values(1u, 0u)] uint rn, [ValueSource(nameof(_4H2S1D_))] ulong z, [ValueSource(nameof(_4H2S1D_))] ulong a, @@ -3558,4 +3658,4 @@ namespace Ryujinx.Tests.Cpu } #endif } -}
\ No newline at end of file +} |