misc: chore: Use collection expressions

This commit is contained in:
KeatonTheBot
2025-03-06 20:46:29 -06:00
parent 4d5757417e
commit e2973a875a
236 changed files with 9843 additions and 7561 deletions
+164 -155
View File
@@ -14,90 +14,99 @@ namespace Ryujinx.Tests.Cpu
#region "ValueSource (Types)"
private static ulong[] _1B1H1S1D_()
{
return new[] {
return
[
0x0000000000000000ul, 0x000000000000007Ful,
0x0000000000000080ul, 0x00000000000000FFul,
0x0000000000007FFFul, 0x0000000000008000ul,
0x000000000000FFFFul, 0x000000007FFFFFFFul,
0x0000000080000000ul, 0x00000000FFFFFFFFul,
0x7FFFFFFFFFFFFFFFul, 0x8000000000000000ul,
0xFFFFFFFFFFFFFFFFul,
};
0xFFFFFFFFFFFFFFFFul
];
}
private static ulong[] _1D_()
{
return new[] {
return
[
0x0000000000000000ul, 0x7FFFFFFFFFFFFFFFul,
0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul,
};
0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul
];
}
private static ulong[] _1H1S_()
{
return new[] {
return
[
0x0000000000000000ul, 0x0000000000007FFFul,
0x0000000000008000ul, 0x000000000000FFFFul,
0x000000007FFFFFFFul, 0x0000000080000000ul,
0x00000000FFFFFFFFul,
};
0x00000000FFFFFFFFul
];
}
private static ulong[] _4H2S_()
{
return new[] {
return
[
0x0000000000000000ul, 0x7FFF7FFF7FFF7FFFul,
0x8000800080008000ul, 0x7FFFFFFF7FFFFFFFul,
0x8000000080000000ul, 0xFFFFFFFFFFFFFFFFul,
};
0x8000000080000000ul, 0xFFFFFFFFFFFFFFFFul
];
}
private static ulong[] _4H2S1D_()
{
return new[] {
return
[
0x0000000000000000ul, 0x7FFF7FFF7FFF7FFFul,
0x8000800080008000ul, 0x7FFFFFFF7FFFFFFFul,
0x8000000080000000ul, 0x7FFFFFFFFFFFFFFFul,
0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul,
};
0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul
];
}
private static ulong[] _8B_()
{
return new[] {
return
[
0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful,
0x8080808080808080ul, 0xFFFFFFFFFFFFFFFFul,
};
0x8080808080808080ul, 0xFFFFFFFFFFFFFFFFul
];
}
private static ulong[] _8B1D_()
{
return new[] {
return
[
0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful,
0x8080808080808080ul, 0x7FFFFFFFFFFFFFFFul,
0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul,
};
0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul
];
}
private static ulong[] _8B4H2S_()
{
return new[] {
return
[
0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful,
0x8080808080808080ul, 0x7FFF7FFF7FFF7FFFul,
0x8000800080008000ul, 0x7FFFFFFF7FFFFFFFul,
0x8000000080000000ul, 0xFFFFFFFFFFFFFFFFul,
};
0x8000000080000000ul, 0xFFFFFFFFFFFFFFFFul
];
}
private static ulong[] _8B4H2S1D_()
{
return new[] {
return
[
0x0000000000000000ul, 0x7F7F7F7F7F7F7F7Ful,
0x8080808080808080ul, 0x7FFF7FFF7FFF7FFFul,
0x8000800080008000ul, 0x7FFFFFFF7FFFFFFFul,
0x8000000080000000ul, 0x7FFFFFFFFFFFFFFFul,
0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul,
};
0x8000000000000000ul, 0xFFFFFFFFFFFFFFFFul
];
}
private static IEnumerable<ulong> _1S_F_()
@@ -228,174 +237,174 @@ namespace Ryujinx.Tests.Cpu
#region "ValueSource (Opcodes)"
private static uint[] _F_Abd_Add_Div_Mul_Mulx_Nmul_Sub_S_S_()
{
return new[]
{
return
[
0x7EA2D420u, // FABD S0, S1, S2
0x1E222820u, // FADD S0, S1, S2
0x1E221820u, // FDIV S0, S1, S2
0x1E220820u, // FMUL S0, S1, S2
0x5E22DC20u, // FMULX S0, S1, S2
0x1E228820u, // FNMUL S0, S1, S2
0x1E223820u, // FSUB S0, S1, S2
};
0x1E223820u // FSUB S0, S1, S2
];
}
private static uint[] _F_Abd_Add_Div_Mul_Mulx_Nmul_Sub_S_D_()
{
return new[]
{
return
[
0x7EE2D420u, // FABD D0, D1, D2
0x1E622820u, // FADD D0, D1, D2
0x1E621820u, // FDIV D0, D1, D2
0x1E620820u, // FMUL D0, D1, D2
0x5E62DC20u, // FMULX D0, D1, D2
0x1E628820u, // FNMUL D0, D1, D2
0x1E623820u, // FSUB D0, D1, D2
};
0x1E623820u // FSUB D0, D1, D2
];
}
private static uint[] _F_Abd_Add_Div_Mul_Mulx_Sub_P_V_2S_4S_()
{
return new[]
{
return
[
0x2EA0D400u, // FABD V0.2S, V0.2S, V0.2S
0x0E20D400u, // FADD V0.2S, V0.2S, V0.2S
0x2E20D400u, // FADDP V0.2S, V0.2S, V0.2S
0x2E20FC00u, // FDIV V0.2S, V0.2S, V0.2S
0x2E20DC00u, // FMUL V0.2S, V0.2S, V0.2S
0x0E20DC00u, // FMULX V0.2S, V0.2S, V0.2S
0x0EA0D400u, // FSUB V0.2S, V0.2S, V0.2S
};
0x0EA0D400u // FSUB V0.2S, V0.2S, V0.2S
];
}
private static uint[] _F_Abd_Add_Div_Mul_Mulx_Sub_P_V_2D_()
{
return new[]
{
return
[
0x6EE0D400u, // FABD V0.2D, V0.2D, V0.2D
0x4E60D400u, // FADD V0.2D, V0.2D, V0.2D
0x6E60D400u, // FADDP V0.2D, V0.2D, V0.2D
0x6E60FC00u, // FDIV V0.2D, V0.2D, V0.2D
0x6E60DC00u, // FMUL V0.2D, V0.2D, V0.2D
0x4E60DC00u, // FMULX V0.2D, V0.2D, V0.2D
0x4EE0D400u, // FSUB V0.2D, V0.2D, V0.2D
};
0x4EE0D400u // FSUB V0.2D, V0.2D, V0.2D
];
}
private static uint[] _F_AcCm_EqGeGt_S_S_()
{
return new[]
{
return
[
0x7E22EC20u, // FACGE S0, S1, S2
0x7EA2EC20u, // FACGT S0, S1, S2
0x5E22E420u, // FCMEQ S0, S1, S2
0x7E22E420u, // FCMGE S0, S1, S2
0x7EA2E420u, // FCMGT S0, S1, S2
};
0x7EA2E420u // FCMGT S0, S1, S2
];
}
private static uint[] _F_AcCm_EqGeGt_S_D_()
{
return new[]
{
return
[
0x7E62EC20u, // FACGE D0, D1, D2
0x7EE2EC20u, // FACGT D0, D1, D2
0x5E62E420u, // FCMEQ D0, D1, D2
0x7E62E420u, // FCMGE D0, D1, D2
0x7EE2E420u, // FCMGT D0, D1, D2
};
0x7EE2E420u // FCMGT D0, D1, D2
];
}
private static uint[] _F_AcCm_EqGeGt_V_2S_4S_()
{
return new[]
{
return
[
0x2E20EC00u, // FACGE V0.2S, V0.2S, V0.2S
0x2EA0EC00u, // FACGT V0.2S, V0.2S, V0.2S
0x0E20E400u, // FCMEQ V0.2S, V0.2S, V0.2S
0x2E20E400u, // FCMGE V0.2S, V0.2S, V0.2S
0x2EA0E400u, // FCMGT V0.2S, V0.2S, V0.2S
};
0x2EA0E400u // FCMGT V0.2S, V0.2S, V0.2S
];
}
private static uint[] _F_AcCm_EqGeGt_V_2D_()
{
return new[]
{
return
[
0x6E60EC00u, // FACGE V0.2D, V0.2D, V0.2D
0x6EE0EC00u, // FACGT V0.2D, V0.2D, V0.2D
0x4E60E400u, // FCMEQ V0.2D, V0.2D, V0.2D
0x6E60E400u, // FCMGE V0.2D, V0.2D, V0.2D
0x6EE0E400u, // FCMGT V0.2D, V0.2D, V0.2D
};
0x6EE0E400u // FCMGT V0.2D, V0.2D, V0.2D
];
}
private static uint[] _F_Cmp_Cmpe_S_S_()
{
return new[]
{
return
[
0x1E222020u, // FCMP S1, S2
0x1E222030u, // FCMPE S1, S2
};
0x1E222030u // FCMPE S1, S2
];
}
private static uint[] _F_Cmp_Cmpe_S_D_()
{
return new[]
{
return
[
0x1E622020u, // FCMP D1, D2
0x1E622030u, // FCMPE D1, D2
};
0x1E622030u // FCMPE D1, D2
];
}
private static uint[] _F_Madd_Msub_Nmadd_Nmsub_S_S_()
{
return new[]
{
return
[
0x1F020C20u, // FMADD S0, S1, S2, S3
0x1F028C20u, // FMSUB S0, S1, S2, S3
0x1F220C20u, // FNMADD S0, S1, S2, S3
0x1F228C20u, // FNMSUB S0, S1, S2, S3
};
0x1F228C20u // FNMSUB S0, S1, S2, S3
];
}
private static uint[] _F_Madd_Msub_Nmadd_Nmsub_S_D_()
{
return new[]
{
return
[
0x1F420C20u, // FMADD D0, D1, D2, D3
0x1F428C20u, // FMSUB D0, D1, D2, D3
0x1F620C20u, // FNMADD D0, D1, D2, D3
0x1F628C20u, // FNMSUB D0, D1, D2, D3
};
0x1F628C20u // FNMSUB D0, D1, D2, D3
];
}
private static uint[] _F_Max_Min_Nm_S_S_()
{
return new[]
{
return
[
0x1E224820u, // FMAX S0, S1, S2
0x1E226820u, // FMAXNM S0, S1, S2
0x1E225820u, // FMIN S0, S1, S2
0x1E227820u, // FMINNM S0, S1, S2
};
0x1E227820u // FMINNM S0, S1, S2
];
}
private static uint[] _F_Max_Min_Nm_S_D_()
{
return new[]
{
return
[
0x1E624820u, // FMAX D0, D1, D2
0x1E626820u, // FMAXNM D0, D1, D2
0x1E625820u, // FMIN D0, D1, D2
0x1E627820u, // FMINNM D0, D1, D2
};
0x1E627820u // FMINNM D0, D1, D2
];
}
private static uint[] _F_Max_Min_Nm_P_V_2S_4S_()
{
return new[]
{
return
[
0x0E20F400u, // FMAX V0.2S, V0.2S, V0.2S
0x0E20C400u, // FMAXNM V0.2S, V0.2S, V0.2S
0x2E20C400u, // FMAXNMP V0.2S, V0.2S, V0.2S
@@ -403,14 +412,14 @@ namespace Ryujinx.Tests.Cpu
0x0EA0F400u, // FMIN V0.2S, V0.2S, V0.2S
0x0EA0C400u, // FMINNM V0.2S, V0.2S, V0.2S
0x2EA0C400u, // FMINNMP V0.2S, V0.2S, V0.2S
0x2EA0F400u, // FMINP V0.2S, V0.2S, V0.2S
};
0x2EA0F400u // FMINP V0.2S, V0.2S, V0.2S
];
}
private static uint[] _F_Max_Min_Nm_P_V_2D_()
{
return new[]
{
return
[
0x4E60F400u, // FMAX V0.2D, V0.2D, V0.2D
0x4E60C400u, // FMAXNM V0.2D, V0.2D, V0.2D
0x6E60C400u, // FMAXNMP V0.2D, V0.2D, V0.2D
@@ -418,109 +427,109 @@ namespace Ryujinx.Tests.Cpu
0x4EE0F400u, // FMIN V0.2D, V0.2D, V0.2D
0x4EE0C400u, // FMINNM V0.2D, V0.2D, V0.2D
0x6EE0C400u, // FMINNMP V0.2D, V0.2D, V0.2D
0x6EE0F400u, // FMINP V0.2D, V0.2D, V0.2D
};
0x6EE0F400u // FMINP V0.2D, V0.2D, V0.2D
];
}
private static uint[] _F_Mla_Mls_V_2S_4S_()
{
return new[]
{
return
[
0x0E20CC00u, // FMLA V0.2S, V0.2S, V0.2S
0x0EA0CC00u, // FMLS V0.2S, V0.2S, V0.2S
};
0x0EA0CC00u // FMLS V0.2S, V0.2S, V0.2S
];
}
private static uint[] _F_Mla_Mls_V_2D_()
{
return new[]
{
return
[
0x4E60CC00u, // FMLA V0.2D, V0.2D, V0.2D
0x4EE0CC00u, // FMLS V0.2D, V0.2D, V0.2D
};
0x4EE0CC00u // FMLS V0.2D, V0.2D, V0.2D
];
}
private static uint[] _F_Recps_Rsqrts_S_S_()
{
return new[]
{
return
[
0x5E22FC20u, // FRECPS S0, S1, S2
0x5EA2FC20u, // FRSQRTS S0, S1, S2
};
0x5EA2FC20u // FRSQRTS S0, S1, S2
];
}
private static uint[] _F_Recps_Rsqrts_S_D_()
{
return new[]
{
return
[
0x5E62FC20u, // FRECPS D0, D1, D2
0x5EE2FC20u, // FRSQRTS D0, D1, D2
};
0x5EE2FC20u // FRSQRTS D0, D1, D2
];
}
private static uint[] _F_Recps_Rsqrts_V_2S_4S_()
{
return new[]
{
return
[
0x0E20FC00u, // FRECPS V0.2S, V0.2S, V0.2S
0x0EA0FC00u, // FRSQRTS V0.2S, V0.2S, V0.2S
};
0x0EA0FC00u // FRSQRTS V0.2S, V0.2S, V0.2S
];
}
private static uint[] _F_Recps_Rsqrts_V_2D_()
{
return new[]
{
return
[
0x4E60FC00u, // FRECPS V0.2D, V0.2D, V0.2D
0x4EE0FC00u, // FRSQRTS V0.2D, V0.2D, V0.2D
};
0x4EE0FC00u // FRSQRTS V0.2D, V0.2D, V0.2D
];
}
private static uint[] _Mla_Mls_Mul_V_8B_4H_2S_()
{
return new[]
{
return
[
0x0E209400u, // MLA V0.8B, V0.8B, V0.8B
0x2E209400u, // MLS V0.8B, V0.8B, V0.8B
0x0E209C00u, // MUL V0.8B, V0.8B, V0.8B
};
0x0E209C00u // MUL V0.8B, V0.8B, V0.8B
];
}
private static uint[] _Mla_Mls_Mul_V_16B_8H_4S_()
{
return new[]
{
return
[
0x4E209400u, // MLA V0.16B, V0.16B, V0.16B
0x6E209400u, // MLS V0.16B, V0.16B, V0.16B
0x4E209C00u, // MUL V0.16B, V0.16B, V0.16B
};
0x4E209C00u // MUL V0.16B, V0.16B, V0.16B
];
}
private static uint[] _Sha1c_Sha1m_Sha1p_Sha1su0_V_()
{
return new[]
{
return
[
0x5E000000u, // SHA1C Q0, S0, V0.4S
0x5E002000u, // SHA1M Q0, S0, V0.4S
0x5E001000u, // SHA1P Q0, S0, V0.4S
0x5E003000u, // SHA1SU0 V0.4S, V0.4S, V0.4S
};
0x5E003000u // SHA1SU0 V0.4S, V0.4S, V0.4S
];
}
private static uint[] _Sha256h_Sha256h2_Sha256su1_V_()
{
return new[]
{
return
[
0x5E004000u, // SHA256H Q0, Q0, V0.4S
0x5E005000u, // SHA256H2 Q0, Q0, V0.4S
0x5E006000u, // SHA256SU1 V0.4S, V0.4S, V0.4S
};
0x5E006000u // SHA256SU1 V0.4S, V0.4S, V0.4S
];
}
private static uint[] _SU_Max_Min_P_V_()
{
return new[]
{
return
[
0x0E206400u, // SMAX V0.8B, V0.8B, V0.8B
0x0E20A400u, // SMAXP V0.8B, V0.8B, V0.8B
0x0E206C00u, // SMIN V0.8B, V0.8B, V0.8B
@@ -528,49 +537,49 @@ namespace Ryujinx.Tests.Cpu
0x2E206400u, // UMAX V0.8B, V0.8B, V0.8B
0x2E20A400u, // UMAXP V0.8B, V0.8B, V0.8B
0x2E206C00u, // UMIN V0.8B, V0.8B, V0.8B
0x2E20AC00u, // UMINP V0.8B, V0.8B, V0.8B
};
0x2E20AC00u // UMINP V0.8B, V0.8B, V0.8B
];
}
private static uint[] _SU_Mlal_Mlsl_Mull_V_8B8H_4H4S_2S2D_()
{
return new[]
{
return
[
0x0E208000u, // SMLAL V0.8H, V0.8B, V0.8B
0x0E20A000u, // SMLSL V0.8H, V0.8B, V0.8B
0x0E20C000u, // SMULL V0.8H, V0.8B, V0.8B
0x2E208000u, // UMLAL V0.8H, V0.8B, V0.8B
0x2E20A000u, // UMLSL V0.8H, V0.8B, V0.8B
0x2E20C000u, // UMULL V0.8H, V0.8B, V0.8B
};
0x2E20C000u // UMULL V0.8H, V0.8B, V0.8B
];
}
private static uint[] _SU_Mlal_Mlsl_Mull_V_16B8H_8H4S_4S2D_()
{
return new[]
{
return
[
0x4E208000u, // SMLAL2 V0.8H, V0.16B, V0.16B
0x4E20A000u, // SMLSL2 V0.8H, V0.16B, V0.16B
0x4E20C000u, // SMULL2 V0.8H, V0.16B, V0.16B
0x6E208000u, // UMLAL2 V0.8H, V0.16B, V0.16B
0x6E20A000u, // UMLSL2 V0.8H, V0.16B, V0.16B
0x6E20C000u, // UMULL2 V0.8H, V0.16B, V0.16B
};
0x6E20C000u // UMULL2 V0.8H, V0.16B, V0.16B
];
}
private static uint[] _ShlReg_S_D_()
{
return new[]
{
return
[
0x5EE04400u, // SSHL D0, D0, D0
0x7EE04400u, // USHL D0, D0, D0
};
0x7EE04400u // USHL D0, D0, D0
];
}
private static uint[] _ShlReg_V_8B_4H_2S_()
{
return new[]
{
return
[
0x0E205C00u, // SQRSHL V0.8B, V0.8B, V0.8B
0x0E204C00u, // SQSHL V0.8B, V0.8B, V0.8B
0x0E205400u, // SRSHL V0.8B, V0.8B, V0.8B
@@ -578,14 +587,14 @@ namespace Ryujinx.Tests.Cpu
0x2E205C00u, // UQRSHL V0.8B, V0.8B, V0.8B
0x2E204C00u, // UQSHL V0.8B, V0.8B, V0.8B
0x2E205400u, // URSHL V0.8B, V0.8B, V0.8B
0x2E204400u, // USHL V0.8B, V0.8B, V0.8B
};
0x2E204400u // USHL V0.8B, V0.8B, V0.8B
];
}
private static uint[] _ShlReg_V_16B_8H_4S_2D_()
{
return new[]
{
return
[
0x4E205C00u, // SQRSHL V0.16B, V0.16B, V0.16B
0x4E204C00u, // SQSHL V0.16B, V0.16B, V0.16B
0x4E205400u, // SRSHL V0.16B, V0.16B, V0.16B
@@ -593,8 +602,8 @@ namespace Ryujinx.Tests.Cpu
0x6E205C00u, // UQRSHL V0.16B, V0.16B, V0.16B
0x6E204C00u, // UQSHL V0.16B, V0.16B, V0.16B
0x6E205400u, // URSHL V0.16B, V0.16B, V0.16B
0x6E204400u, // USHL V0.16B, V0.16B, V0.16B
};
0x6E204400u // USHL V0.16B, V0.16B, V0.16B
];
}
#endregion