in src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs [936:1270]
private static InstructionSetFlags ExpandInstructionSetByReverseImplicationHelper(TargetArchitecture architecture, InstructionSetFlags input)
{
InstructionSetFlags oldflags;
InstructionSetFlags resultflags = input;
do
{
oldflags = resultflags;
switch(architecture)
{
case TargetArchitecture.ARM64:
if (resultflags.HasInstructionSet(InstructionSet.ARM64_ArmBase_Arm64))
resultflags.AddInstructionSet(InstructionSet.ARM64_ArmBase);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_AdvSimd_Arm64))
resultflags.AddInstructionSet(InstructionSet.ARM64_AdvSimd);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_Aes_Arm64))
resultflags.AddInstructionSet(InstructionSet.ARM64_Aes);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_Crc32_Arm64))
resultflags.AddInstructionSet(InstructionSet.ARM64_Crc32);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_Dp_Arm64))
resultflags.AddInstructionSet(InstructionSet.ARM64_Dp);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_Rdm_Arm64))
resultflags.AddInstructionSet(InstructionSet.ARM64_Rdm);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_Sha1_Arm64))
resultflags.AddInstructionSet(InstructionSet.ARM64_Sha1);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_Sha256_Arm64))
resultflags.AddInstructionSet(InstructionSet.ARM64_Sha256);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_Sve_Arm64))
resultflags.AddInstructionSet(InstructionSet.ARM64_Sve);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_ArmBase))
resultflags.AddInstructionSet(InstructionSet.ARM64_AdvSimd);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_ArmBase))
resultflags.AddInstructionSet(InstructionSet.ARM64_Aes);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_ArmBase))
resultflags.AddInstructionSet(InstructionSet.ARM64_Crc32);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_AdvSimd))
resultflags.AddInstructionSet(InstructionSet.ARM64_Dp);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_AdvSimd))
resultflags.AddInstructionSet(InstructionSet.ARM64_Rdm);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_ArmBase))
resultflags.AddInstructionSet(InstructionSet.ARM64_Sha1);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_ArmBase))
resultflags.AddInstructionSet(InstructionSet.ARM64_Sha256);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_AdvSimd))
resultflags.AddInstructionSet(InstructionSet.ARM64_Vector64);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_AdvSimd))
resultflags.AddInstructionSet(InstructionSet.ARM64_Vector128);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_AdvSimd))
resultflags.AddInstructionSet(InstructionSet.ARM64_VectorT128);
if (resultflags.HasInstructionSet(InstructionSet.ARM64_AdvSimd))
resultflags.AddInstructionSet(InstructionSet.ARM64_Sve);
break;
case TargetArchitecture.X64:
if (resultflags.HasInstructionSet(InstructionSet.X64_X86Base_X64))
resultflags.AddInstructionSet(InstructionSet.X64_X86Base);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE_X64))
resultflags.AddInstructionSet(InstructionSet.X64_SSE);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE2_X64))
resultflags.AddInstructionSet(InstructionSet.X64_SSE2);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE3_X64))
resultflags.AddInstructionSet(InstructionSet.X64_SSE3);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSSE3_X64))
resultflags.AddInstructionSet(InstructionSet.X64_SSSE3);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE41_X64))
resultflags.AddInstructionSet(InstructionSet.X64_SSE41);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE42_X64))
resultflags.AddInstructionSet(InstructionSet.X64_SSE42);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX2_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX2);
if (resultflags.HasInstructionSet(InstructionSet.X64_AES_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AES);
if (resultflags.HasInstructionSet(InstructionSet.X64_BMI1_X64))
resultflags.AddInstructionSet(InstructionSet.X64_BMI1);
if (resultflags.HasInstructionSet(InstructionSet.X64_BMI2_X64))
resultflags.AddInstructionSet(InstructionSet.X64_BMI2);
if (resultflags.HasInstructionSet(InstructionSet.X64_FMA_X64))
resultflags.AddInstructionSet(InstructionSet.X64_FMA);
if (resultflags.HasInstructionSet(InstructionSet.X64_LZCNT_X64))
resultflags.AddInstructionSet(InstructionSet.X64_LZCNT);
if (resultflags.HasInstructionSet(InstructionSet.X64_PCLMULQDQ_X64))
resultflags.AddInstructionSet(InstructionSet.X64_PCLMULQDQ);
if (resultflags.HasInstructionSet(InstructionSet.X64_POPCNT_X64))
resultflags.AddInstructionSet(InstructionSet.X64_POPCNT);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVXVNNI_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVXVNNI);
if (resultflags.HasInstructionSet(InstructionSet.X64_MOVBE_X64))
resultflags.AddInstructionSet(InstructionSet.X64_MOVBE);
if (resultflags.HasInstructionSet(InstructionSet.X64_X86Serialize_X64))
resultflags.AddInstructionSet(InstructionSet.X64_X86Serialize);
if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX_X64))
resultflags.AddInstructionSet(InstructionSet.X64_EVEX);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512F);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F_VL_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512F_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512BW_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512BW);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512BW_VL_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512BW_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512CD_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512CD);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512CD_VL_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512CD_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512DQ_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512DQ);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512DQ_VL_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512DQ_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512VBMI_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512VBMI);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512VBMI_VL_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512VBMI_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1_V512_X64))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_X86Base))
resultflags.AddInstructionSet(InstructionSet.X64_SSE);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE))
resultflags.AddInstructionSet(InstructionSet.X64_SSE2);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE2))
resultflags.AddInstructionSet(InstructionSet.X64_SSE3);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE3))
resultflags.AddInstructionSet(InstructionSet.X64_SSSE3);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSSE3))
resultflags.AddInstructionSet(InstructionSet.X64_SSE41);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE41))
resultflags.AddInstructionSet(InstructionSet.X64_SSE42);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE42))
resultflags.AddInstructionSet(InstructionSet.X64_POPCNT);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE42))
resultflags.AddInstructionSet(InstructionSet.X64_AVX);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX))
resultflags.AddInstructionSet(InstructionSet.X64_AVX2);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX))
resultflags.AddInstructionSet(InstructionSet.X64_BMI1);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX))
resultflags.AddInstructionSet(InstructionSet.X64_BMI2);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX))
resultflags.AddInstructionSet(InstructionSet.X64_FMA);
if (resultflags.HasInstructionSet(InstructionSet.X64_X86Base))
resultflags.AddInstructionSet(InstructionSet.X64_LZCNT);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE42))
resultflags.AddInstructionSet(InstructionSet.X64_MOVBE);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX2))
resultflags.AddInstructionSet(InstructionSet.X64_EVEX);
if (resultflags.HasInstructionSet(InstructionSet.X64_FMA))
resultflags.AddInstructionSet(InstructionSet.X64_EVEX);
if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512F);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512F_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512CD);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512CD))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512CD_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F_VL))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512CD_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512BW);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512BW))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512BW_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F_VL))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512BW_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512DQ);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512DQ))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512DQ_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F_VL))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512DQ_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512BW))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512VBMI);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512VBMI))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512VBMI_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512BW_VL))
resultflags.AddInstructionSet(InstructionSet.X64_AVX512VBMI_VL);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE2))
resultflags.AddInstructionSet(InstructionSet.X64_AES);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE2))
resultflags.AddInstructionSet(InstructionSet.X64_PCLMULQDQ);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX2))
resultflags.AddInstructionSet(InstructionSet.X64_AVXVNNI);
if (resultflags.HasInstructionSet(InstructionSet.X64_X86Base))
resultflags.AddInstructionSet(InstructionSet.X64_X86Serialize);
if (resultflags.HasInstructionSet(InstructionSet.X64_EVEX))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX10v1))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F_VL))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512CD))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512CD_VL))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512BW))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512BW_VL))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512DQ))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512DQ_VL))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512VBMI))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512VBMI_VL))
resultflags.AddInstructionSet(InstructionSet.X64_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE))
resultflags.AddInstructionSet(InstructionSet.X64_Vector128);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX))
resultflags.AddInstructionSet(InstructionSet.X64_Vector256);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X64_Vector512);
if (resultflags.HasInstructionSet(InstructionSet.X64_SSE2))
resultflags.AddInstructionSet(InstructionSet.X64_VectorT128);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX2))
resultflags.AddInstructionSet(InstructionSet.X64_VectorT256);
if (resultflags.HasInstructionSet(InstructionSet.X64_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X64_VectorT512);
break;
case TargetArchitecture.X86:
if (resultflags.HasInstructionSet(InstructionSet.X86_X86Base))
resultflags.AddInstructionSet(InstructionSet.X86_SSE);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSE))
resultflags.AddInstructionSet(InstructionSet.X86_SSE2);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSE2))
resultflags.AddInstructionSet(InstructionSet.X86_SSE3);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSE3))
resultflags.AddInstructionSet(InstructionSet.X86_SSSE3);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSSE3))
resultflags.AddInstructionSet(InstructionSet.X86_SSE41);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSE41))
resultflags.AddInstructionSet(InstructionSet.X86_SSE42);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSE42))
resultflags.AddInstructionSet(InstructionSet.X86_POPCNT);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSE42))
resultflags.AddInstructionSet(InstructionSet.X86_AVX);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX))
resultflags.AddInstructionSet(InstructionSet.X86_AVX2);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX))
resultflags.AddInstructionSet(InstructionSet.X86_BMI1);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX))
resultflags.AddInstructionSet(InstructionSet.X86_BMI2);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX))
resultflags.AddInstructionSet(InstructionSet.X86_FMA);
if (resultflags.HasInstructionSet(InstructionSet.X86_X86Base))
resultflags.AddInstructionSet(InstructionSet.X86_LZCNT);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSE42))
resultflags.AddInstructionSet(InstructionSet.X86_MOVBE);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX2))
resultflags.AddInstructionSet(InstructionSet.X86_EVEX);
if (resultflags.HasInstructionSet(InstructionSet.X86_FMA))
resultflags.AddInstructionSet(InstructionSet.X86_EVEX);
if (resultflags.HasInstructionSet(InstructionSet.X86_EVEX))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512F);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512F_VL);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512CD);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512CD))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512CD_VL);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F_VL))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512CD_VL);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512BW);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512BW))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512BW_VL);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F_VL))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512BW_VL);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512DQ);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512DQ))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512DQ_VL);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F_VL))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512DQ_VL);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512BW))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512VBMI);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512VBMI))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512VBMI_VL);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512BW_VL))
resultflags.AddInstructionSet(InstructionSet.X86_AVX512VBMI_VL);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSE2))
resultflags.AddInstructionSet(InstructionSet.X86_AES);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSE2))
resultflags.AddInstructionSet(InstructionSet.X86_PCLMULQDQ);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX2))
resultflags.AddInstructionSet(InstructionSet.X86_AVXVNNI);
if (resultflags.HasInstructionSet(InstructionSet.X86_X86Base))
resultflags.AddInstructionSet(InstructionSet.X86_X86Serialize);
if (resultflags.HasInstructionSet(InstructionSet.X86_EVEX))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX10v1))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F_VL))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512CD))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512CD_VL))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512BW))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512BW_VL))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512DQ))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512DQ_VL))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512VBMI))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512VBMI_VL))
resultflags.AddInstructionSet(InstructionSet.X86_AVX10v1_V512);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSE))
resultflags.AddInstructionSet(InstructionSet.X86_Vector128);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX))
resultflags.AddInstructionSet(InstructionSet.X86_Vector256);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X86_Vector512);
if (resultflags.HasInstructionSet(InstructionSet.X86_SSE2))
resultflags.AddInstructionSet(InstructionSet.X86_VectorT128);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX2))
resultflags.AddInstructionSet(InstructionSet.X86_VectorT256);
if (resultflags.HasInstructionSet(InstructionSet.X86_AVX512F))
resultflags.AddInstructionSet(InstructionSet.X86_VectorT512);
break;
}
} while (!oldflags.Equals(resultflags));
return resultflags;
}