private static InstructionSetFlags ExpandInstructionSetByReverseImplicationHelper()

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;
        }