// Code generated by "stringer -type=FeatureID,Vendor"; DO NOT EDIT.

package cpuid

import "strconv"

func _() {
	// An "invalid array index" compiler error signifies that the constant values have changed.
	// Re-run the stringer command to generate them again.
	var x [1]struct{}
	_ = x[ADX-1]
	_ = x[AESNI-2]
	_ = x[AMD3DNOW-3]
	_ = x[AMD3DNOWEXT-4]
	_ = x[AMXBF16-5]
	_ = x[AMXFP16-6]
	_ = x[AMXINT8-7]
	_ = x[AMXTILE-8]
	_ = x[AVX-9]
	_ = x[AVX2-10]
	_ = x[AVX512BF16-11]
	_ = x[AVX512BITALG-12]
	_ = x[AVX512BW-13]
	_ = x[AVX512CD-14]
	_ = x[AVX512DQ-15]
	_ = x[AVX512ER-16]
	_ = x[AVX512F-17]
	_ = x[AVX512FP16-18]
	_ = x[AVX512IFMA-19]
	_ = x[AVX512PF-20]
	_ = x[AVX512VBMI-21]
	_ = x[AVX512VBMI2-22]
	_ = x[AVX512VL-23]
	_ = x[AVX512VNNI-24]
	_ = x[AVX512VP2INTERSECT-25]
	_ = x[AVX512VPOPCNTDQ-26]
	_ = x[AVXIFMA-27]
	_ = x[AVXNECONVERT-28]
	_ = x[AVXSLOW-29]
	_ = x[AVXVNNI-30]
	_ = x[AVXVNNIINT8-31]
	_ = x[BHI_CTRL-32]
	_ = x[BMI1-33]
	_ = x[BMI2-34]
	_ = x[CETIBT-35]
	_ = x[CETSS-36]
	_ = x[CLDEMOTE-37]
	_ = x[CLMUL-38]
	_ = x[CLZERO-39]
	_ = x[CMOV-40]
	_ = x[CMPCCXADD-41]
	_ = x[CMPSB_SCADBS_SHORT-42]
	_ = x[CMPXCHG8-43]
	_ = x[CPBOOST-44]
	_ = x[CPPC-45]
	_ = x[CX16-46]
	_ = x[EFER_LMSLE_UNS-47]
	_ = x[ENQCMD-48]
	_ = x[ERMS-49]
	_ = x[F16C-50]
	_ = x[FLUSH_L1D-51]
	_ = x[FMA3-52]
	_ = x[FMA4-53]
	_ = x[FP128-54]
	_ = x[FP256-55]
	_ = x[FSRM-56]
	_ = x[FXSR-57]
	_ = x[FXSROPT-58]
	_ = x[GFNI-59]
	_ = x[HLE-60]
	_ = x[HRESET-61]
	_ = x[HTT-62]
	_ = x[HWA-63]
	_ = x[HYBRID_CPU-64]
	_ = x[HYPERVISOR-65]
	_ = x[IA32_ARCH_CAP-66]
	_ = x[IA32_CORE_CAP-67]
	_ = x[IBPB-68]
	_ = x[IBRS-69]
	_ = x[IBRS_PREFERRED-70]
	_ = x[IBRS_PROVIDES_SMP-71]
	_ = x[IBS-72]
	_ = x[IBSBRNTRGT-73]
	_ = x[IBSFETCHSAM-74]
	_ = x[IBSFFV-75]
	_ = x[IBSOPCNT-76]
	_ = x[IBSOPCNTEXT-77]
	_ = x[IBSOPSAM-78]
	_ = x[IBSRDWROPCNT-79]
	_ = x[IBSRIPINVALIDCHK-80]
	_ = x[IBS_FETCH_CTLX-81]
	_ = x[IBS_OPDATA4-82]
	_ = x[IBS_OPFUSE-83]
	_ = x[IBS_PREVENTHOST-84]
	_ = x[IBS_ZEN4-85]
	_ = x[IDPRED_CTRL-86]
	_ = x[INT_WBINVD-87]
	_ = x[INVLPGB-88]
	_ = x[LAHF-89]
	_ = x[LAM-90]
	_ = x[LBRVIRT-91]
	_ = x[LZCNT-92]
	_ = x[MCAOVERFLOW-93]
	_ = x[MCDT_NO-94]
	_ = x[MCOMMIT-95]
	_ = x[MD_CLEAR-96]
	_ = x[MMX-97]
	_ = x[MMXEXT-98]
	_ = x[MOVBE-99]
	_ = x[MOVDIR64B-100]
	_ = x[MOVDIRI-101]
	_ = x[MOVSB_ZL-102]
	_ = x[MOVU-103]
	_ = x[MPX-104]
	_ = x[MSRIRC-105]
	_ = x[MSRLIST-106]
	_ = x[MSR_PAGEFLUSH-107]
	_ = x[NRIPS-108]
	_ = x[NX-109]
	_ = x[OSXSAVE-110]
	_ = x[PCONFIG-111]
	_ = x[POPCNT-112]
	_ = x[PPIN-113]
	_ = x[PREFETCHI-114]
	_ = x[PSFD-115]
	_ = x[RDPRU-116]
	_ = x[RDRAND-117]
	_ = x[RDSEED-118]
	_ = x[RDTSCP-119]
	_ = x[RRSBA_CTRL-120]
	_ = x[RTM-121]
	_ = x[RTM_ALWAYS_ABORT-122]
	_ = x[SERIALIZE-123]
	_ = x[SEV-124]
	_ = x[SEV_64BIT-125]
	_ = x[SEV_ALTERNATIVE-126]
	_ = x[SEV_DEBUGSWAP-127]
	_ = x[SEV_ES-128]
	_ = x[SEV_RESTRICTED-129]
	_ = x[SEV_SNP-130]
	_ = x[SGX-131]
	_ = x[SGXLC-132]
	_ = x[SHA-133]
	_ = x[SME-134]
	_ = x[SME_COHERENT-135]
	_ = x[SPEC_CTRL_SSBD-136]
	_ = x[SRBDS_CTRL-137]
	_ = x[SSE-138]
	_ = x[SSE2-139]
	_ = x[SSE3-140]
	_ = x[SSE4-141]
	_ = x[SSE42-142]
	_ = x[SSE4A-143]
	_ = x[SSSE3-144]
	_ = x[STIBP-145]
	_ = x[STIBP_ALWAYSON-146]
	_ = x[STOSB_SHORT-147]
	_ = x[SUCCOR-148]
	_ = x[SVM-149]
	_ = x[SVMDA-150]
	_ = x[SVMFBASID-151]
	_ = x[SVML-152]
	_ = x[SVMNP-153]
	_ = x[SVMPF-154]
	_ = x[SVMPFT-155]
	_ = x[SYSCALL-156]
	_ = x[SYSEE-157]
	_ = x[TBM-158]
	_ = x[TLB_FLUSH_NESTED-159]
	_ = x[TME-160]
	_ = x[TOPEXT-161]
	_ = x[TSCRATEMSR-162]
	_ = x[TSXLDTRK-163]
	_ = x[VAES-164]
	_ = x[VMCBCLEAN-165]
	_ = x[VMPL-166]
	_ = x[VMSA_REGPROT-167]
	_ = x[VMX-168]
	_ = x[VPCLMULQDQ-169]
	_ = x[VTE-170]
	_ = x[WAITPKG-171]
	_ = x[WBNOINVD-172]
	_ = x[WRMSRNS-173]
	_ = x[X87-174]
	_ = x[XGETBV1-175]
	_ = x[XOP-176]
	_ = x[XSAVE-177]
	_ = x[XSAVEC-178]
	_ = x[XSAVEOPT-179]
	_ = x[XSAVES-180]
	_ = x[AESARM-181]
	_ = x[ARMCPUID-182]
	_ = x[ASIMD-183]
	_ = x[ASIMDDP-184]
	_ = x[ASIMDHP-185]
	_ = x[ASIMDRDM-186]
	_ = x[ATOMICS-187]
	_ = x[CRC32-188]
	_ = x[DCPOP-189]
	_ = x[EVTSTRM-190]
	_ = x[FCMA-191]
	_ = x[FP-192]
	_ = x[FPHP-193]
	_ = x[GPA-194]
	_ = x[JSCVT-195]
	_ = x[LRCPC-196]
	_ = x[PMULL-197]
	_ = x[SHA1-198]
	_ = x[SHA2-199]
	_ = x[SHA3-200]
	_ = x[SHA512-201]
	_ = x[SM3-202]
	_ = x[SM4-203]
	_ = x[SVE-204]
	_ = x[lastID-205]
	_ = x[firstID-0]
}

const _FeatureID_name = "firstIDADXAESNIAMD3DNOWAMD3DNOWEXTAMXBF16AMXFP16AMXINT8AMXTILEAVXAVX2AVX512BF16AVX512BITALGAVX512BWAVX512CDAVX512DQAVX512ERAVX512FAVX512FP16AVX512IFMAAVX512PFAVX512VBMIAVX512VBMI2AVX512VLAVX512VNNIAVX512VP2INTERSECTAVX512VPOPCNTDQAVXIFMAAVXNECONVERTAVXSLOWAVXVNNIAVXVNNIINT8BHI_CTRLBMI1BMI2CETIBTCETSSCLDEMOTECLMULCLZEROCMOVCMPCCXADDCMPSB_SCADBS_SHORTCMPXCHG8CPBOOSTCPPCCX16EFER_LMSLE_UNSENQCMDERMSF16CFLUSH_L1DFMA3FMA4FP128FP256FSRMFXSRFXSROPTGFNIHLEHRESETHTTHWAHYBRID_CPUHYPERVISORIA32_ARCH_CAPIA32_CORE_CAPIBPBIBRSIBRS_PREFERREDIBRS_PROVIDES_SMPIBSIBSBRNTRGTIBSFETCHSAMIBSFFVIBSOPCNTIBSOPCNTEXTIBSOPSAMIBSRDWROPCNTIBSRIPINVALIDCHKIBS_FETCH_CTLXIBS_OPDATA4IBS_OPFUSEIBS_PREVENTHOSTIBS_ZEN4IDPRED_CTRLINT_WBINVDINVLPGBLAHFLAMLBRVIRTLZCNTMCAOVERFLOWMCDT_NOMCOMMITMD_CLEARMMXMMXEXTMOVBEMOVDIR64BMOVDIRIMOVSB_ZLMOVUMPXMSRIRCMSRLISTMSR_PAGEFLUSHNRIPSNXOSXSAVEPCONFIGPOPCNTPPINPREFETCHIPSFDRDPRURDRANDRDSEEDRDTSCPRRSBA_CTRLRTMRTM_ALWAYS_ABORTSERIALIZESEVSEV_64BITSEV_ALTERNATIVESEV_DEBUGSWAPSEV_ESSEV_RESTRICTEDSEV_SNPSGXSGXLCSHASMESME_COHERENTSPEC_CTRL_SSBDSRBDS_CTRLSSESSE2SSE3SSE4SSE42SSE4ASSSE3STIBPSTIBP_ALWAYSONSTOSB_SHORTSUCCORSVMSVMDASVMFBASIDSVMLSVMNPSVMPFSVMPFTSYSCALLSYSEETBMTLB_FLUSH_NESTEDTMETOPEXTTSCRATEMSRTSXLDTRKVAESVMCBCLEANVMPLVMSA_REGPROTVMXVPCLMULQDQVTEWAITPKGWBNOINVDWRMSRNSX87XGETBV1XOPXSAVEXSAVECXSAVEOPTXSAVESAESARMARMCPUIDASIMDASIMDDPASIMDHPASIMDRDMATOMICSCRC32DCPOPEVTSTRMFCMAFPFPHPGPAJSCVTLRCPCPMULLSHA1SHA2SHA3SHA512SM3SM4SVElastID"

var _FeatureID_index = [...]uint16{0, 7, 10, 15, 23, 34, 41, 48, 55, 62, 65, 69, 79, 91, 99, 107, 115, 123, 130, 140, 150, 158, 168, 179, 187, 197, 215, 230, 237, 249, 256, 263, 274, 282, 286, 290, 296, 301, 309, 314, 320, 324, 333, 351, 359, 366, 370, 374, 388, 394, 398, 402, 411, 415, 419, 424, 429, 433, 437, 444, 448, 451, 457, 460, 463, 473, 483, 496, 509, 513, 517, 531, 548, 551, 561, 572, 578, 586, 597, 605, 617, 633, 647, 658, 668, 683, 691, 702, 712, 719, 723, 726, 733, 738, 749, 756, 763, 771, 774, 780, 785, 794, 801, 809, 813, 816, 822, 829, 842, 847, 849, 856, 863, 869, 873, 882, 886, 891, 897, 903, 909, 919, 922, 938, 947, 950, 959, 974, 987, 993, 1007, 1014, 1017, 1022, 1025, 1028, 1040, 1054, 1064, 1067, 1071, 1075, 1079, 1084, 1089, 1094, 1099, 1113, 1124, 1130, 1133, 1138, 1147, 1151, 1156, 1161, 1167, 1174, 1179, 1182, 1198, 1201, 1207, 1217, 1225, 1229, 1238, 1242, 1254, 1257, 1267, 1270, 1277, 1285, 1292, 1295, 1302, 1305, 1310, 1316, 1324, 1330, 1336, 1344, 1349, 1356, 1363, 1371, 1378, 1383, 1388, 1395, 1399, 1401, 1405, 1408, 1413, 1418, 1423, 1427, 1431, 1435, 1441, 1444, 1447, 1450, 1456}

func (i FeatureID) String() string {
	if i < 0 || i >= FeatureID(len(_FeatureID_index)-1) {
		return "FeatureID(" + strconv.FormatInt(int64(i), 10) + ")"
	}
	return _FeatureID_name[_FeatureID_index[i]:_FeatureID_index[i+1]]
}
func _() {
	// An "invalid array index" compiler error signifies that the constant values have changed.
	// Re-run the stringer command to generate them again.
	var x [1]struct{}
	_ = x[VendorUnknown-0]
	_ = x[Intel-1]
	_ = x[AMD-2]
	_ = x[VIA-3]
	_ = x[Transmeta-4]
	_ = x[NSC-5]
	_ = x[KVM-6]
	_ = x[MSVM-7]
	_ = x[VMware-8]
	_ = x[XenHVM-9]
	_ = x[Bhyve-10]
	_ = x[Hygon-11]
	_ = x[SiS-12]
	_ = x[RDC-13]
	_ = x[Ampere-14]
	_ = x[ARM-15]
	_ = x[Broadcom-16]
	_ = x[Cavium-17]
	_ = x[DEC-18]
	_ = x[Fujitsu-19]
	_ = x[Infineon-20]
	_ = x[Motorola-21]
	_ = x[NVIDIA-22]
	_ = x[AMCC-23]
	_ = x[Qualcomm-24]
	_ = x[Marvell-25]
	_ = x[lastVendor-26]
}

const _Vendor_name = "VendorUnknownIntelAMDVIATransmetaNSCKVMMSVMVMwareXenHVMBhyveHygonSiSRDCAmpereARMBroadcomCaviumDECFujitsuInfineonMotorolaNVIDIAAMCCQualcommMarvelllastVendor"

var _Vendor_index = [...]uint8{0, 13, 18, 21, 24, 33, 36, 39, 43, 49, 55, 60, 65, 68, 71, 77, 80, 88, 94, 97, 104, 112, 120, 126, 130, 138, 145, 155}

func (i Vendor) String() string {
	if i < 0 || i >= Vendor(len(_Vendor_index)-1) {
		return "Vendor(" + strconv.FormatInt(int64(i), 10) + ")"
	}
	return _Vendor_name[_Vendor_index[i]:_Vendor_index[i+1]]
}
