| /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
| |* *| |
| |* Subtarget Enumeration Source Fragment *| |
| |* *| |
| |* Automatically generated file, do not edit! *| |
| |* *| |
| \*===----------------------------------------------------------------------===*/ |
| |
| |
| #ifdef GET_SUBTARGETINFO_ENUM |
| #undef GET_SUBTARGETINFO_ENUM |
| |
| namespace llvm { |
| namespace X86 { |
| enum { |
| Feature3DNow = 0, |
| Feature3DNowA = 1, |
| FeatureADX = 2, |
| FeatureAES = 3, |
| FeatureAMXBF16 = 4, |
| FeatureAMXFP16 = 5, |
| FeatureAMXINT8 = 6, |
| FeatureAMXTILE = 7, |
| FeatureAVX = 8, |
| FeatureAVX2 = 9, |
| FeatureAVX512 = 10, |
| FeatureAVXIFMA = 11, |
| FeatureAVXNECONVERT = 12, |
| FeatureAVXVNNI = 13, |
| FeatureAVXVNNIINT8 = 14, |
| FeatureBF16 = 15, |
| FeatureBITALG = 16, |
| FeatureBMI = 17, |
| FeatureBMI2 = 18, |
| FeatureBWI = 19, |
| FeatureCDI = 20, |
| FeatureCLDEMOTE = 21, |
| FeatureCLFLUSHOPT = 22, |
| FeatureCLWB = 23, |
| FeatureCLZERO = 24, |
| FeatureCMOV = 25, |
| FeatureCMPCCXADD = 26, |
| FeatureCRC32 = 27, |
| FeatureCX8 = 28, |
| FeatureCX16 = 29, |
| FeatureDQI = 30, |
| FeatureENQCMD = 31, |
| FeatureERI = 32, |
| FeatureERMSB = 33, |
| FeatureF16C = 34, |
| FeatureFMA = 35, |
| FeatureFMA4 = 36, |
| FeatureFP16 = 37, |
| FeatureFSGSBase = 38, |
| FeatureFSRM = 39, |
| FeatureFXSR = 40, |
| FeatureGFNI = 41, |
| FeatureHRESET = 42, |
| FeatureHardenSlsIJmp = 43, |
| FeatureHardenSlsRet = 44, |
| FeatureIFMA = 45, |
| FeatureINVPCID = 46, |
| FeatureKL = 47, |
| FeatureLAHFSAHF64 = 48, |
| FeatureLVIControlFlowIntegrity = 49, |
| FeatureLVILoadHardening = 50, |
| FeatureLWP = 51, |
| FeatureLZCNT = 52, |
| FeatureMMX = 53, |
| FeatureMOVBE = 54, |
| FeatureMOVDIR64B = 55, |
| FeatureMOVDIRI = 56, |
| FeatureMWAITX = 57, |
| FeatureNOPL = 58, |
| FeaturePCLMUL = 59, |
| FeaturePCONFIG = 60, |
| FeaturePFI = 61, |
| FeaturePKU = 62, |
| FeaturePOPCNT = 63, |
| FeaturePREFETCHI = 64, |
| FeaturePREFETCHWT1 = 65, |
| FeaturePRFCHW = 66, |
| FeaturePTWRITE = 67, |
| FeatureRAOINT = 68, |
| FeatureRDPID = 69, |
| FeatureRDPRU = 70, |
| FeatureRDRAND = 71, |
| FeatureRDSEED = 72, |
| FeatureRTM = 73, |
| FeatureRetpoline = 74, |
| FeatureRetpolineExternalThunk = 75, |
| FeatureRetpolineIndirectBranches = 76, |
| FeatureRetpolineIndirectCalls = 77, |
| FeatureSERIALIZE = 78, |
| FeatureSGX = 79, |
| FeatureSHA = 80, |
| FeatureSHSTK = 81, |
| FeatureSSE1 = 82, |
| FeatureSSE2 = 83, |
| FeatureSSE3 = 84, |
| FeatureSSE4A = 85, |
| FeatureSSE41 = 86, |
| FeatureSSE42 = 87, |
| FeatureSSEUnalignedMem = 88, |
| FeatureSSSE3 = 89, |
| FeatureSoftFloat = 90, |
| FeatureSpeculativeExecutionSideEffectSuppression = 91, |
| FeatureTBM = 92, |
| FeatureTSXLDTRK = 93, |
| FeatureTaggedGlobals = 94, |
| FeatureUINTR = 95, |
| FeatureVAES = 96, |
| FeatureVBMI = 97, |
| FeatureVBMI2 = 98, |
| FeatureVLX = 99, |
| FeatureVNNI = 100, |
| FeatureVP2INTERSECT = 101, |
| FeatureVPCLMULQDQ = 102, |
| FeatureVPOPCNTDQ = 103, |
| FeatureWAITPKG = 104, |
| FeatureWBNOINVD = 105, |
| FeatureWIDEKL = 106, |
| FeatureX86_64 = 107, |
| FeatureX87 = 108, |
| FeatureXOP = 109, |
| FeatureXSAVE = 110, |
| FeatureXSAVEC = 111, |
| FeatureXSAVEOPT = 112, |
| FeatureXSAVES = 113, |
| Is16Bit = 114, |
| Is32Bit = 115, |
| Is64Bit = 116, |
| ProcIntelAtom = 117, |
| TuningAllowLight256Bit = 118, |
| TuningBranchFusion = 119, |
| TuningFast7ByteNOP = 120, |
| TuningFast11ByteNOP = 121, |
| TuningFast15ByteNOP = 122, |
| TuningFastBEXTR = 123, |
| TuningFastGather = 124, |
| TuningFastHorizontalOps = 125, |
| TuningFastLZCNT = 126, |
| TuningFastMOVBE = 127, |
| TuningFastSHLDRotate = 128, |
| TuningFastScalarFSQRT = 129, |
| TuningFastScalarShiftMasks = 130, |
| TuningFastVariableCrossLaneShuffle = 131, |
| TuningFastVariablePerLaneShuffle = 132, |
| TuningFastVectorFSQRT = 133, |
| TuningFastVectorShiftMasks = 134, |
| TuningGETMANTFalseDeps = 135, |
| TuningInsertVZEROUPPER = 136, |
| TuningLEAForSP = 137, |
| TuningLEAUsesAG = 138, |
| TuningLZCNTFalseDeps = 139, |
| TuningMULCFalseDeps = 140, |
| TuningMULLQFalseDeps = 141, |
| TuningMacroFusion = 142, |
| TuningPERMFalseDeps = 143, |
| TuningPOPCNTFalseDeps = 144, |
| TuningPadShortFunctions = 145, |
| TuningPrefer128Bit = 146, |
| TuningPrefer256Bit = 147, |
| TuningPreferMaskRegisters = 148, |
| TuningRANGEFalseDeps = 149, |
| TuningSBBDepBreaking = 150, |
| TuningSlow3OpsLEA = 151, |
| TuningSlowDivide32 = 152, |
| TuningSlowDivide64 = 153, |
| TuningSlowIncDec = 154, |
| TuningSlowLEA = 155, |
| TuningSlowPMADDWD = 156, |
| TuningSlowPMULLD = 157, |
| TuningSlowSHLD = 158, |
| TuningSlowTwoMemOps = 159, |
| TuningSlowUAMem16 = 160, |
| TuningSlowUAMem32 = 161, |
| TuningUseGLMDivSqrtCosts = 162, |
| TuningUseSLMArithCosts = 163, |
| NumSubtargetFeatures = 164 |
| }; |
| } // end namespace X86 |
| } // end namespace llvm |
| |
| #endif // GET_SUBTARGETINFO_ENUM |
| |
| |
| #ifdef GET_SUBTARGETINFO_MACRO |
| GET_SUBTARGETINFO_MACRO(IsAtom, false, isAtom) |
| GET_SUBTARGETINFO_MACRO(Is16Bit, false, is16Bit) |
| GET_SUBTARGETINFO_MACRO(Is32Bit, false, is32Bit) |
| GET_SUBTARGETINFO_MACRO(HasX86_64, false, hasX86_64) |
| GET_SUBTARGETINFO_MACRO(Is64Bit, false, is64Bit) |
| GET_SUBTARGETINFO_MACRO(HasADX, false, hasADX) |
| GET_SUBTARGETINFO_MACRO(HasAES, false, hasAES) |
| GET_SUBTARGETINFO_MACRO(AllowLight256Bit, false, allowLight256Bit) |
| GET_SUBTARGETINFO_MACRO(HasAMXBF16, false, hasAMXBF16) |
| GET_SUBTARGETINFO_MACRO(HasAMXFP16, false, hasAMXFP16) |
| GET_SUBTARGETINFO_MACRO(HasAMXINT8, false, hasAMXINT8) |
| GET_SUBTARGETINFO_MACRO(HasAMXTILE, false, hasAMXTILE) |
| GET_SUBTARGETINFO_MACRO(HasBF16, false, hasBF16) |
| GET_SUBTARGETINFO_MACRO(HasBITALG, false, hasBITALG) |
| GET_SUBTARGETINFO_MACRO(HasBWI, false, hasBWI) |
| GET_SUBTARGETINFO_MACRO(HasCDI, false, hasCDI) |
| GET_SUBTARGETINFO_MACRO(HasDQI, false, hasDQI) |
| GET_SUBTARGETINFO_MACRO(HasERI, false, hasERI) |
| GET_SUBTARGETINFO_MACRO(HasFP16, false, hasFP16) |
| GET_SUBTARGETINFO_MACRO(HasIFMA, false, hasIFMA) |
| GET_SUBTARGETINFO_MACRO(HasPFI, false, hasPFI) |
| GET_SUBTARGETINFO_MACRO(HasVBMI, false, hasVBMI) |
| GET_SUBTARGETINFO_MACRO(HasVBMI2, false, hasVBMI2) |
| GET_SUBTARGETINFO_MACRO(HasVLX, false, hasVLX) |
| GET_SUBTARGETINFO_MACRO(HasVNNI, false, hasVNNI) |
| GET_SUBTARGETINFO_MACRO(HasVP2INTERSECT, false, hasVP2INTERSECT) |
| GET_SUBTARGETINFO_MACRO(HasVPOPCNTDQ, false, hasVPOPCNTDQ) |
| GET_SUBTARGETINFO_MACRO(HasAVXIFMA, false, hasAVXIFMA) |
| GET_SUBTARGETINFO_MACRO(HasAVXNECONVERT, false, hasAVXNECONVERT) |
| GET_SUBTARGETINFO_MACRO(HasAVXVNNI, false, hasAVXVNNI) |
| GET_SUBTARGETINFO_MACRO(HasAVXVNNIINT8, false, hasAVXVNNIINT8) |
| GET_SUBTARGETINFO_MACRO(HasBMI, false, hasBMI) |
| GET_SUBTARGETINFO_MACRO(HasBMI2, false, hasBMI2) |
| GET_SUBTARGETINFO_MACRO(HasBranchFusion, false, hasBranchFusion) |
| GET_SUBTARGETINFO_MACRO(HasCLDEMOTE, false, hasCLDEMOTE) |
| GET_SUBTARGETINFO_MACRO(HasCLFLUSHOPT, false, hasCLFLUSHOPT) |
| GET_SUBTARGETINFO_MACRO(HasCLWB, false, hasCLWB) |
| GET_SUBTARGETINFO_MACRO(HasCLZERO, false, hasCLZERO) |
| GET_SUBTARGETINFO_MACRO(HasCMOV, false, hasCMOV) |
| GET_SUBTARGETINFO_MACRO(HasCMPCCXADD, false, hasCMPCCXADD) |
| GET_SUBTARGETINFO_MACRO(HasCRC32, false, hasCRC32) |
| GET_SUBTARGETINFO_MACRO(HasCX16, false, hasCX16) |
| GET_SUBTARGETINFO_MACRO(HasCX8, false, hasCX8) |
| GET_SUBTARGETINFO_MACRO(HasENQCMD, false, hasENQCMD) |
| GET_SUBTARGETINFO_MACRO(HasERMSB, false, hasERMSB) |
| GET_SUBTARGETINFO_MACRO(HasF16C, false, hasF16C) |
| GET_SUBTARGETINFO_MACRO(HasGETMANTFalseDeps, false, hasGETMANTFalseDeps) |
| GET_SUBTARGETINFO_MACRO(HasLZCNTFalseDeps, false, hasLZCNTFalseDeps) |
| GET_SUBTARGETINFO_MACRO(HasMULCFalseDeps, false, hasMULCFalseDeps) |
| GET_SUBTARGETINFO_MACRO(HasMULLQFalseDeps, false, hasMULLQFalseDeps) |
| GET_SUBTARGETINFO_MACRO(HasPERMFalseDeps, false, hasPERMFalseDeps) |
| GET_SUBTARGETINFO_MACRO(HasPOPCNTFalseDeps, false, hasPOPCNTFalseDeps) |
| GET_SUBTARGETINFO_MACRO(HasRANGEFalseDeps, false, hasRANGEFalseDeps) |
| GET_SUBTARGETINFO_MACRO(HasFast11ByteNOP, false, hasFast11ByteNOP) |
| GET_SUBTARGETINFO_MACRO(HasFast15ByteNOP, false, hasFast15ByteNOP) |
| GET_SUBTARGETINFO_MACRO(HasFast7ByteNOP, false, hasFast7ByteNOP) |
| GET_SUBTARGETINFO_MACRO(HasFastBEXTR, false, hasFastBEXTR) |
| GET_SUBTARGETINFO_MACRO(HasFastGather, false, hasFastGather) |
| GET_SUBTARGETINFO_MACRO(HasFastHorizontalOps, false, hasFastHorizontalOps) |
| GET_SUBTARGETINFO_MACRO(HasFastLZCNT, false, hasFastLZCNT) |
| GET_SUBTARGETINFO_MACRO(HasFastMOVBE, false, hasFastMOVBE) |
| GET_SUBTARGETINFO_MACRO(HasFastScalarFSQRT, false, hasFastScalarFSQRT) |
| GET_SUBTARGETINFO_MACRO(HasFastScalarShiftMasks, false, hasFastScalarShiftMasks) |
| GET_SUBTARGETINFO_MACRO(HasFastSHLDRotate, false, hasFastSHLDRotate) |
| GET_SUBTARGETINFO_MACRO(HasFastVariableCrossLaneShuffle, false, hasFastVariableCrossLaneShuffle) |
| GET_SUBTARGETINFO_MACRO(HasFastVariablePerLaneShuffle, false, hasFastVariablePerLaneShuffle) |
| GET_SUBTARGETINFO_MACRO(HasFastVectorFSQRT, false, hasFastVectorFSQRT) |
| GET_SUBTARGETINFO_MACRO(HasFastVectorShiftMasks, false, hasFastVectorShiftMasks) |
| GET_SUBTARGETINFO_MACRO(HasFMA, false, hasFMA) |
| GET_SUBTARGETINFO_MACRO(HasFMA4, false, hasFMA4) |
| GET_SUBTARGETINFO_MACRO(HasFSGSBase, false, hasFSGSBase) |
| GET_SUBTARGETINFO_MACRO(HasFSRM, false, hasFSRM) |
| GET_SUBTARGETINFO_MACRO(HasFXSR, false, hasFXSR) |
| GET_SUBTARGETINFO_MACRO(HasGFNI, false, hasGFNI) |
| GET_SUBTARGETINFO_MACRO(HardenSlsIJmp, false, hardenSlsIJmp) |
| GET_SUBTARGETINFO_MACRO(HardenSlsRet, false, hardenSlsRet) |
| GET_SUBTARGETINFO_MACRO(HasHRESET, false, hasHRESET) |
| GET_SUBTARGETINFO_MACRO(HasSlowDivide32, false, hasSlowDivide32) |
| GET_SUBTARGETINFO_MACRO(HasSlowDivide64, false, hasSlowDivide64) |
| GET_SUBTARGETINFO_MACRO(HasINVPCID, false, hasINVPCID) |
| GET_SUBTARGETINFO_MACRO(HasKL, false, hasKL) |
| GET_SUBTARGETINFO_MACRO(UseLeaForSP, false, useLeaForSP) |
| GET_SUBTARGETINFO_MACRO(LeaUsesAG, false, leaUsesAG) |
| GET_SUBTARGETINFO_MACRO(UseLVIControlFlowIntegrity, false, useLVIControlFlowIntegrity) |
| GET_SUBTARGETINFO_MACRO(UseLVILoadHardening, false, useLVILoadHardening) |
| GET_SUBTARGETINFO_MACRO(HasLWP, false, hasLWP) |
| GET_SUBTARGETINFO_MACRO(HasLZCNT, false, hasLZCNT) |
| GET_SUBTARGETINFO_MACRO(HasMacroFusion, false, hasMacroFusion) |
| GET_SUBTARGETINFO_MACRO(HasMOVBE, false, hasMOVBE) |
| GET_SUBTARGETINFO_MACRO(HasMOVDIR64B, false, hasMOVDIR64B) |
| GET_SUBTARGETINFO_MACRO(HasMOVDIRI, false, hasMOVDIRI) |
| GET_SUBTARGETINFO_MACRO(HasMWAITX, false, hasMWAITX) |
| GET_SUBTARGETINFO_MACRO(HasNOPL, false, hasNOPL) |
| GET_SUBTARGETINFO_MACRO(PadShortFunctions, false, padShortFunctions) |
| GET_SUBTARGETINFO_MACRO(HasPCLMUL, false, hasPCLMUL) |
| GET_SUBTARGETINFO_MACRO(HasPCONFIG, false, hasPCONFIG) |
| GET_SUBTARGETINFO_MACRO(HasPKU, false, hasPKU) |
| GET_SUBTARGETINFO_MACRO(HasPOPCNT, false, hasPOPCNT) |
| GET_SUBTARGETINFO_MACRO(Prefer128Bit, false, prefer128Bit) |
| GET_SUBTARGETINFO_MACRO(Prefer256Bit, false, prefer256Bit) |
| GET_SUBTARGETINFO_MACRO(PreferMaskRegisters, false, preferMaskRegisters) |
| GET_SUBTARGETINFO_MACRO(HasPREFETCHI, false, hasPREFETCHI) |
| GET_SUBTARGETINFO_MACRO(HasPREFETCHWT1, false, hasPREFETCHWT1) |
| GET_SUBTARGETINFO_MACRO(HasPRFCHW, false, hasPRFCHW) |
| GET_SUBTARGETINFO_MACRO(HasPTWRITE, false, hasPTWRITE) |
| GET_SUBTARGETINFO_MACRO(HasRAOINT, false, hasRAOINT) |
| GET_SUBTARGETINFO_MACRO(HasRDPID, false, hasRDPID) |
| GET_SUBTARGETINFO_MACRO(HasRDPRU, false, hasRDPRU) |
| GET_SUBTARGETINFO_MACRO(HasRDRAND, false, hasRDRAND) |
| GET_SUBTARGETINFO_MACRO(HasRDSEED, false, hasRDSEED) |
| GET_SUBTARGETINFO_MACRO(DeprecatedUseRetpoline, false, deprecatedUseRetpoline) |
| GET_SUBTARGETINFO_MACRO(UseRetpolineExternalThunk, false, useRetpolineExternalThunk) |
| GET_SUBTARGETINFO_MACRO(UseRetpolineIndirectBranches, false, useRetpolineIndirectBranches) |
| GET_SUBTARGETINFO_MACRO(UseRetpolineIndirectCalls, false, useRetpolineIndirectCalls) |
| GET_SUBTARGETINFO_MACRO(HasRTM, false, hasRTM) |
| GET_SUBTARGETINFO_MACRO(HasLAHFSAHF64, false, hasLAHFSAHF64) |
| GET_SUBTARGETINFO_MACRO(HasSBBDepBreaking, false, hasSBBDepBreaking) |
| GET_SUBTARGETINFO_MACRO(HasSERIALIZE, false, hasSERIALIZE) |
| GET_SUBTARGETINFO_MACRO(UseSpeculativeExecutionSideEffectSuppression, false, useSpeculativeExecutionSideEffectSuppression) |
| GET_SUBTARGETINFO_MACRO(HasSGX, false, hasSGX) |
| GET_SUBTARGETINFO_MACRO(HasSHA, false, hasSHA) |
| GET_SUBTARGETINFO_MACRO(HasSHSTK, false, hasSHSTK) |
| GET_SUBTARGETINFO_MACRO(Slow3OpsLEA, false, slow3OpsLEA) |
| GET_SUBTARGETINFO_MACRO(SlowIncDec, false, slowIncDec) |
| GET_SUBTARGETINFO_MACRO(SlowLEA, false, slowLEA) |
| GET_SUBTARGETINFO_MACRO(IsPMADDWDSlow, false, isPMADDWDSlow) |
| GET_SUBTARGETINFO_MACRO(IsPMULLDSlow, false, isPMULLDSlow) |
| GET_SUBTARGETINFO_MACRO(IsSHLDSlow, false, isSHLDSlow) |
| GET_SUBTARGETINFO_MACRO(SlowTwoMemOps, false, slowTwoMemOps) |
| GET_SUBTARGETINFO_MACRO(IsUnalignedMem16Slow, false, isUnalignedMem16Slow) |
| GET_SUBTARGETINFO_MACRO(IsUnalignedMem32Slow, false, isUnalignedMem32Slow) |
| GET_SUBTARGETINFO_MACRO(UseSoftFloat, false, useSoftFloat) |
| GET_SUBTARGETINFO_MACRO(HasSSEUnalignedMem, false, hasSSEUnalignedMem) |
| GET_SUBTARGETINFO_MACRO(HasSSE4A, false, hasSSE4A) |
| GET_SUBTARGETINFO_MACRO(AllowTaggedGlobals, false, allowTaggedGlobals) |
| GET_SUBTARGETINFO_MACRO(HasTBM, false, hasTBM) |
| GET_SUBTARGETINFO_MACRO(HasTSXLDTRK, false, hasTSXLDTRK) |
| GET_SUBTARGETINFO_MACRO(HasUINTR, false, hasUINTR) |
| GET_SUBTARGETINFO_MACRO(UseGLMDivSqrtCosts, false, useGLMDivSqrtCosts) |
| GET_SUBTARGETINFO_MACRO(UseSLMArithCosts, false, useSLMArithCosts) |
| GET_SUBTARGETINFO_MACRO(HasVAES, false, hasVAES) |
| GET_SUBTARGETINFO_MACRO(HasVPCLMULQDQ, false, hasVPCLMULQDQ) |
| GET_SUBTARGETINFO_MACRO(InsertVZEROUPPER, false, insertVZEROUPPER) |
| GET_SUBTARGETINFO_MACRO(HasWAITPKG, false, hasWAITPKG) |
| GET_SUBTARGETINFO_MACRO(HasWBNOINVD, false, hasWBNOINVD) |
| GET_SUBTARGETINFO_MACRO(HasWIDEKL, false, hasWIDEKL) |
| GET_SUBTARGETINFO_MACRO(HasX87, false, hasX87) |
| GET_SUBTARGETINFO_MACRO(HasXOP, false, hasXOP) |
| GET_SUBTARGETINFO_MACRO(HasXSAVE, false, hasXSAVE) |
| GET_SUBTARGETINFO_MACRO(HasXSAVEC, false, hasXSAVEC) |
| GET_SUBTARGETINFO_MACRO(HasXSAVEOPT, false, hasXSAVEOPT) |
| GET_SUBTARGETINFO_MACRO(HasXSAVES, false, hasXSAVES) |
| #undef GET_SUBTARGETINFO_MACRO |
| #endif // GET_SUBTARGETINFO_MACRO |
| |
| |
| #ifdef GET_SUBTARGETINFO_MC_DESC |
| #undef GET_SUBTARGETINFO_MC_DESC |
| |
| namespace llvm { |
| // Sorted (by key) array of values for CPU features. |
| extern const llvm::SubtargetFeatureKV X86FeatureKV[] = { |
| { "16bit-mode", "16-bit mode (i8086)", X86::Is16Bit, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "32bit-mode", "32-bit mode (80386)", X86::Is32Bit, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "3dnow", "Enable 3DNow! instructions", X86::Feature3DNow, { { { 0x20000000000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "3dnowa", "Enable 3DNow! Athlon instructions", X86::Feature3DNowA, { { { 0x1ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "64bit", "Support 64-bit instructions", X86::FeatureX86_64, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "64bit-mode", "64-bit mode (x86_64)", X86::Is64Bit, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "adx", "Support ADX instructions", X86::FeatureADX, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "aes", "Enable AES instructions", X86::FeatureAES, { { { 0x0ULL, 0x80000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "allow-light-256-bit", "Enable generation of 256-bit load/stores even if we prefer 128-bit", X86::TuningAllowLight256Bit, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "amx-bf16", "Support AMX-BF16 instructions", X86::FeatureAMXBF16, { { { 0x80ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "amx-fp16", "Support AMX amx-fp16 instructions", X86::FeatureAMXFP16, { { { 0x80ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "amx-int8", "Support AMX-INT8 instructions", X86::FeatureAMXINT8, { { { 0x80ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "amx-tile", "Support AMX-TILE instructions", X86::FeatureAMXTILE, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx", "Enable AVX instructions", X86::FeatureAVX, { { { 0x0ULL, 0x800000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx2", "Enable AVX2 instructions", X86::FeatureAVX2, { { { 0x100ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512bf16", "Support bfloat16 floating point", X86::FeatureBF16, { { { 0x80000ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512bitalg", "Enable AVX-512 Bit Algorithms", X86::FeatureBITALG, { { { 0x80000ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512bw", "Enable AVX-512 Byte and Word Instructions", X86::FeatureBWI, { { { 0x400ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512cd", "Enable AVX-512 Conflict Detection Instructions", X86::FeatureCDI, { { { 0x400ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512dq", "Enable AVX-512 Doubleword and Quadword Instructions", X86::FeatureDQI, { { { 0x400ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512er", "Enable AVX-512 Exponential and Reciprocal Instructions", X86::FeatureERI, { { { 0x400ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512f", "Enable AVX-512 instructions", X86::FeatureAVX512, { { { 0xc00000200ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512fp16", "Support 16-bit floating point", X86::FeatureFP16, { { { 0x40080000ULL, 0x800000000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512ifma", "Enable AVX-512 Integer Fused Multiple-Add", X86::FeatureIFMA, { { { 0x400ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512pf", "Enable AVX-512 PreFetch Instructions", X86::FeaturePFI, { { { 0x400ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512vbmi", "Enable AVX-512 Vector Byte Manipulation Instructions", X86::FeatureVBMI, { { { 0x80000ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512vbmi2", "Enable AVX-512 further Vector Byte Manipulation Instructions", X86::FeatureVBMI2, { { { 0x80000ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512vl", "Enable AVX-512 Vector Length eXtensions", X86::FeatureVLX, { { { 0x400ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512vnni", "Enable AVX-512 Vector Neural Network Instructions", X86::FeatureVNNI, { { { 0x400ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512vp2intersect", "Enable AVX-512 vp2intersect", X86::FeatureVP2INTERSECT, { { { 0x400ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avx512vpopcntdq", "Enable AVX-512 Population Count Instructions", X86::FeatureVPOPCNTDQ, { { { 0x400ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avxifma", "Enable AVX-IFMA", X86::FeatureAVXIFMA, { { { 0x200ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avxneconvert", "Support AVX-NE-CONVERT instructions", X86::FeatureAVXNECONVERT, { { { 0x200ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avxvnni", "Support AVX_VNNI encoding", X86::FeatureAVXVNNI, { { { 0x200ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "avxvnniint8", "Enable AVX-VNNI-INT8", X86::FeatureAVXVNNIINT8, { { { 0x200ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "bmi", "Support BMI instructions", X86::FeatureBMI, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "bmi2", "Support BMI2 instructions", X86::FeatureBMI2, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "branchfusion", "CMP/TEST can be fused with conditional branches", X86::TuningBranchFusion, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "cldemote", "Enable Cache Line Demote", X86::FeatureCLDEMOTE, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "clflushopt", "Flush A Cache Line Optimized", X86::FeatureCLFLUSHOPT, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "clwb", "Cache Line Write Back", X86::FeatureCLWB, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "clzero", "Enable Cache Line Zero", X86::FeatureCLZERO, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "cmov", "Enable conditional move instructions", X86::FeatureCMOV, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "cmpccxadd", "Support CMPCCXADD instructions", X86::FeatureCMPCCXADD, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "crc32", "Enable SSE 4.2 CRC32 instruction (used when SSE4.2 is supported but function is GPR only)", X86::FeatureCRC32, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "cx16", "64-bit with cmpxchg16b (this is true for most x86-64 chips, but not the first AMD chips)", X86::FeatureCX16, { { { 0x10000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "cx8", "Support CMPXCHG8B instructions", X86::FeatureCX8, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "enqcmd", "Has ENQCMD instructions", X86::FeatureENQCMD, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "ermsb", "REP MOVS/STOS are fast", X86::FeatureERMSB, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "f16c", "Support 16-bit floating point conversion instructions", X86::FeatureF16C, { { { 0x100ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "false-deps-getmant", "VGETMANTSS/SD/SH and VGETMANDPS/PD(memory version) has a false dependency on dest register", X86::TuningGETMANTFalseDeps, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "false-deps-lzcnt-tzcnt", "LZCNT/TZCNT have a false dependency on dest register", X86::TuningLZCNTFalseDeps, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "false-deps-mulc", "VF[C]MULCPH/SH has a false dependency on dest register", X86::TuningMULCFalseDeps, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "false-deps-mullq", "VPMULLQ has a false dependency on dest register", X86::TuningMULLQFalseDeps, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "false-deps-perm", "VPERMD/Q/PS/PD has a false dependency on dest register", X86::TuningPERMFalseDeps, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "false-deps-popcnt", "POPCNT has a false dependency on dest register", X86::TuningPOPCNTFalseDeps, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "false-deps-range", "VRANGEPD/PS/SD/SS has a false dependency on dest register", X86::TuningRANGEFalseDeps, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-11bytenop", "Target can quickly decode up to 11 byte NOPs", X86::TuningFast11ByteNOP, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-15bytenop", "Target can quickly decode up to 15 byte NOPs", X86::TuningFast15ByteNOP, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-7bytenop", "Target can quickly decode up to 7 byte NOPs", X86::TuningFast7ByteNOP, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-bextr", "Indicates that the BEXTR instruction is implemented as a single uop with good throughput", X86::TuningFastBEXTR, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-gather", "Indicates if gather is reasonably fast (this is true for Skylake client and all AVX-512 CPUs)", X86::TuningFastGather, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-hops", "Prefer horizontal vector math instructions (haddp, phsub, etc.) over normal vector instructions with shuffles", X86::TuningFastHorizontalOps, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-lzcnt", "LZCNT instructions are as fast as most simple integer ops", X86::TuningFastLZCNT, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-movbe", "Prefer a movbe over a single-use load + bswap / single-use bswap + store", X86::TuningFastMOVBE, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-scalar-fsqrt", "Scalar SQRT is fast (disable Newton-Raphson)", X86::TuningFastScalarFSQRT, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-scalar-shift-masks", "Prefer a left/right scalar logical shift pair over a shift+and pair", X86::TuningFastScalarShiftMasks, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-shld-rotate", "SHLD can be used as a faster rotate", X86::TuningFastSHLDRotate, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-variable-crosslane-shuffle", "Cross-lane shuffles with variable masks are fast", X86::TuningFastVariableCrossLaneShuffle, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-variable-perlane-shuffle", "Per-lane shuffles with variable masks are fast", X86::TuningFastVariablePerLaneShuffle, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-vector-fsqrt", "Vector SQRT is fast (disable Newton-Raphson)", X86::TuningFastVectorFSQRT, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fast-vector-shift-masks", "Prefer a left/right vector logical shift pair over a shift+and pair", X86::TuningFastVectorShiftMasks, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fma", "Enable three-operand fused multiple-add", X86::FeatureFMA, { { { 0x100ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fma4", "Enable four-operand fused multiple-add", X86::FeatureFMA4, { { { 0x100ULL, 0x200000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fsgsbase", "Support FS/GS Base instructions", X86::FeatureFSGSBase, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fsrm", "REP MOVSB of short lengths is faster", X86::FeatureFSRM, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "fxsr", "Support fxsave/fxrestore instructions", X86::FeatureFXSR, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "gfni", "Enable Galois Field Arithmetic Instructions", X86::FeatureGFNI, { { { 0x0ULL, 0x80000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "harden-sls-ijmp", "Harden against straight line speculation across indirect JMP instructions.", X86::FeatureHardenSlsIJmp, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "harden-sls-ret", "Harden against straight line speculation across RET instructions.", X86::FeatureHardenSlsRet, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "hreset", "Has hreset instruction", X86::FeatureHRESET, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "idivl-to-divb", "Use 8-bit divide for positive values less than 256", X86::TuningSlowDivide32, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "idivq-to-divl", "Use 32-bit divide for positive values less than 2^32", X86::TuningSlowDivide64, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "invpcid", "Invalidate Process-Context Identifier", X86::FeatureINVPCID, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "kl", "Support Key Locker kl Instructions", X86::FeatureKL, { { { 0x0ULL, 0x80000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "lea-sp", "Use LEA for adjusting the stack pointer (this is an optimization for Intel Atom processors)", X86::TuningLEAForSP, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "lea-uses-ag", "LEA instruction needs inputs at AG stage", X86::TuningLEAUsesAG, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "lvi-cfi", "Prevent indirect calls/branches from using a memory operand, and precede all indirect calls/branches from a register with an LFENCE instruction to serialize control flow. Also decompose RET instructions into a POP+LFENCE+JMP sequence.", X86::FeatureLVIControlFlowIntegrity, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "lvi-load-hardening", "Insert LFENCE instructions to prevent data speculatively injected into loads from being used maliciously.", X86::FeatureLVILoadHardening, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "lwp", "Enable LWP instructions", X86::FeatureLWP, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "lzcnt", "Support LZCNT instruction", X86::FeatureLZCNT, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "macrofusion", "Various instructions can be fused with conditional branches", X86::TuningMacroFusion, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "mmx", "Enable MMX instructions", X86::FeatureMMX, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "movbe", "Support MOVBE instruction", X86::FeatureMOVBE, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "movdir64b", "Support movdir64b instruction (direct store 64 bytes)", X86::FeatureMOVDIR64B, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "movdiri", "Support movdiri instruction (direct store integer)", X86::FeatureMOVDIRI, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "mwaitx", "Enable MONITORX/MWAITX timer functionality", X86::FeatureMWAITX, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "nopl", "Enable NOPL instruction (generally pentium pro+)", X86::FeatureNOPL, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "pad-short-functions", "Pad short functions (to prevent a stall when returning too early)", X86::TuningPadShortFunctions, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "pclmul", "Enable packed carry-less multiplication instructions", X86::FeaturePCLMUL, { { { 0x0ULL, 0x80000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "pconfig", "platform configuration instruction", X86::FeaturePCONFIG, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "pku", "Enable protection keys", X86::FeaturePKU, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "popcnt", "Support POPCNT instruction", X86::FeaturePOPCNT, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "prefer-128-bit", "Prefer 128-bit AVX instructions", X86::TuningPrefer128Bit, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "prefer-256-bit", "Prefer 256-bit AVX instructions", X86::TuningPrefer256Bit, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "prefer-mask-registers", "Prefer AVX512 mask registers over PTEST/MOVMSK", X86::TuningPreferMaskRegisters, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "prefetchi", "Prefetch instruction with T0 or T1 Hint", X86::FeaturePREFETCHI, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "prefetchwt1", "Prefetch with Intent to Write and T1 Hint", X86::FeaturePREFETCHWT1, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "prfchw", "Support PRFCHW instructions", X86::FeaturePRFCHW, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "ptwrite", "Support ptwrite instruction", X86::FeaturePTWRITE, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "raoint", "Support RAO-INT instructions", X86::FeatureRAOINT, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "rdpid", "Support RDPID instructions", X86::FeatureRDPID, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "rdpru", "Support RDPRU instructions", X86::FeatureRDPRU, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "rdrnd", "Support RDRAND instruction", X86::FeatureRDRAND, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "rdseed", "Support RDSEED instruction", X86::FeatureRDSEED, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "retpoline", "Remove speculation of indirect branches from the generated code, either by avoiding them entirely or lowering them with a speculation blocking construct", X86::FeatureRetpoline, { { { 0x0ULL, 0x3000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "retpoline-external-thunk", "When lowering an indirect call or branch using a `retpoline`, rely on the specified user provided thunk rather than emitting one ourselves. Only has effect when combined with some other retpoline feature", X86::FeatureRetpolineExternalThunk, { { { 0x0ULL, 0x2000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "retpoline-indirect-branches", "Remove speculation of indirect branches from the generated code", X86::FeatureRetpolineIndirectBranches, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "retpoline-indirect-calls", "Remove speculation of indirect calls from the generated code", X86::FeatureRetpolineIndirectCalls, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "rtm", "Support RTM instructions", X86::FeatureRTM, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "sahf", "Support LAHF and SAHF instructions in 64-bit mode", X86::FeatureLAHFSAHF64, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "sbb-dep-breaking", "SBB with same register has no source dependency", X86::TuningSBBDepBreaking, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "serialize", "Has serialize instruction", X86::FeatureSERIALIZE, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "seses", "Prevent speculative execution side channel timing attacks by inserting a speculation barrier before memory reads, memory writes, and conditional branches. Implies LVI Control Flow integrity.", X86::FeatureSpeculativeExecutionSideEffectSuppression, { { { 0x2000000000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "sgx", "Enable Software Guard Extensions", X86::FeatureSGX, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "sha", "Enable SHA instructions", X86::FeatureSHA, { { { 0x0ULL, 0x80000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "shstk", "Support CET Shadow-Stack instructions", X86::FeatureSHSTK, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "slow-3ops-lea", "LEA instruction with 3 ops or certain registers is slow", X86::TuningSlow3OpsLEA, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "slow-incdec", "INC and DEC instructions are slower than ADD and SUB", X86::TuningSlowIncDec, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "slow-lea", "LEA instruction with certain arguments is slow", X86::TuningSlowLEA, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "slow-pmaddwd", "PMADDWD is slower than PMULLD", X86::TuningSlowPMADDWD, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "slow-pmulld", "PMULLD instruction is slow (compared to PMULLW/PMULHW and PMULUDQ)", X86::TuningSlowPMULLD, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "slow-shld", "SHLD instruction is slow", X86::TuningSlowSHLD, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "slow-two-mem-ops", "Two memory operand instructions are slow", X86::TuningSlowTwoMemOps, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "slow-unaligned-mem-16", "Slow unaligned 16-byte memory access", X86::TuningSlowUAMem16, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "slow-unaligned-mem-32", "Slow unaligned 32-byte memory access", X86::TuningSlowUAMem32, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "soft-float", "Use software floating point features", X86::FeatureSoftFloat, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "sse", "Enable SSE instructions", X86::FeatureSSE1, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "sse-unaligned-mem", "Allow unaligned memory operands with SSE instructions (this may require setting a configuration bit in the processor)", X86::FeatureSSEUnalignedMem, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "sse2", "Enable SSE2 instructions", X86::FeatureSSE2, { { { 0x0ULL, 0x40000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "sse3", "Enable SSE3 instructions", X86::FeatureSSE3, { { { 0x0ULL, 0x80000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "sse4.1", "Enable SSE 4.1 instructions", X86::FeatureSSE41, { { { 0x0ULL, 0x2000000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "sse4.2", "Enable SSE 4.2 instructions", X86::FeatureSSE42, { { { 0x0ULL, 0x400000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "sse4a", "Support SSE 4a instructions", X86::FeatureSSE4A, { { { 0x0ULL, 0x100000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "ssse3", "Enable SSSE3 instructions", X86::FeatureSSSE3, { { { 0x0ULL, 0x100000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "tagged-globals", "Use an instruction sequence for taking the address of a global that allows a memory tag in the upper address bits.", X86::FeatureTaggedGlobals, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "tbm", "Enable TBM instructions", X86::FeatureTBM, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "tsxldtrk", "Support TSXLDTRK instructions", X86::FeatureTSXLDTRK, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "uintr", "Has UINTR Instructions", X86::FeatureUINTR, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "use-glm-div-sqrt-costs", "Use Goldmont specific floating point div/sqrt costs", X86::TuningUseGLMDivSqrtCosts, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "use-slm-arith-costs", "Use Silvermont specific arithmetic costs", X86::TuningUseSLMArithCosts, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "vaes", "Promote selected AES instructions to AVX512/AVX registers", X86::FeatureVAES, { { { 0x108ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "vpclmulqdq", "Enable vpclmulqdq instructions", X86::FeatureVPCLMULQDQ, { { { 0x800000000000100ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "vzeroupper", "Should insert vzeroupper instructions", X86::TuningInsertVZEROUPPER, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "waitpkg", "Wait and pause enhancements", X86::FeatureWAITPKG, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "wbnoinvd", "Write Back No Invalidate", X86::FeatureWBNOINVD, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "widekl", "Support Key Locker wide Instructions", X86::FeatureWIDEKL, { { { 0x800000000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "x87", "Enable X87 float instructions", X86::FeatureX87, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "xop", "Enable XOP instructions", X86::FeatureXOP, { { { 0x1000000000ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "xsave", "Support xsave instructions", X86::FeatureXSAVE, { { { 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "xsavec", "Support xsavec instructions", X86::FeatureXSAVEC, { { { 0x0ULL, 0x400000000000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "xsaveopt", "Support xsaveopt instructions", X86::FeatureXSAVEOPT, { { { 0x0ULL, 0x400000000000ULL, 0x0ULL, 0x0ULL, } } } }, |
| { "xsaves", "Support xsaves instructions", X86::FeatureXSAVES, { { { 0x0ULL, 0x400000000000ULL, 0x0ULL, 0x0ULL, } } } }, |
| }; |
| |
| #ifdef DBGFIELD |
| #error "<target>GenSubtargetInfo.inc requires a DBGFIELD macro" |
| #endif |
| #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) |
| #define DBGFIELD(x) x, |
| #else |
| #define DBGFIELD(x) |
| #endif |
| |
| // =============================================================== |
| // Data tables for the new per-operand machine model. |
| |
| // {ProcResourceIdx, Cycles} |
| extern const llvm::MCWriteProcResEntry X86WriteProcResTable[] = { |
| { 0, 0}, // Invalid |
| { 5, 1}, // #1 |
| { 1, 1}, // #2 |
| { 2, 1}, // #3 |
| { 3, 1}, // #4 |
| { 4, 1}, // #5 |
| { 5, 1}, // #6 |
| { 6, 1}, // #7 |
| { 7, 1}, // #8 |
| { 8, 1}, // #9 |
| { 4, 1}, // #10 |
| { 5, 1}, // #11 |
| { 7, 1}, // #12 |
| { 8, 1}, // #13 |
| { 4, 2}, // #14 |
| { 5, 3}, // #15 |
| { 7, 2}, // #16 |
| { 8, 2}, // #17 |
| {15, 2}, // #18 |
| {16, 1}, // #19 |
| {19, 1}, // #20 |
| {23, 1}, // #21 |
| { 4, 1}, // #22 |
| { 5, 1}, // #23 |
| { 7, 1}, // #24 |
| { 8, 1}, // #25 |
| {13, 1}, // #26 |
| {14, 1}, // #27 |
| {15, 1}, // #28 |
| {16, 1}, // #29 |
| { 2, 1}, // #30 |
| { 3, 1}, // #31 |
| { 4, 1}, // #32 |
| { 5, 1}, // #33 |
| { 9, 1}, // #34 |
| {10, 1}, // #35 |
| {11, 1}, // #36 |
| {15, 1}, // #37 |
| {19, 1}, // #38 |
| {23, 1}, // #39 |
| { 5, 1}, // #40 |
| {15, 2}, // #41 |
| {16, 1}, // #42 |
| {19, 1}, // #43 |
| {23, 1}, // #44 |
| { 4, 1}, // #45 |
| { 5, 2}, // #46 |
| { 7, 1}, // #47 |
| { 8, 1}, // #48 |
| {15, 2}, // #49 |
| {16, 1}, // #50 |
| {19, 1}, // #51 |
| {23, 1}, // #52 |
| { 3, 1}, // #53 |
| { 4, 1}, // #54 |
| { 5, 1}, // #55 |
| {10, 1}, // #56 |
| {11, 1}, // #57 |
| {15, 1}, // #58 |
| {16, 1}, // #59 |
| { 3, 1}, // #60 |
| { 4, 1}, // #61 |
| { 5, 1}, // #62 |
| { 6, 1}, // #63 |
| { 7, 1}, // #64 |
| {10, 1}, // #65 |
| {11, 1}, // #66 |
| {20, 1}, // #67 |
| { 2, 1}, // #68 |
| { 3, 1}, // #69 |
| { 4, 1}, // #70 |
| { 5, 1}, // #71 |
| {15, 1}, // #72 |
| {16, 1}, // #73 |
| { 2, 2}, // #74 |
| { 3, 2}, // #75 |
| { 4, 2}, // #76 |
| { 5, 2}, // #77 |
| {15, 1}, // #78 |
| {16, 1}, // #79 |
| { 1, 4}, // #80 |
| { 2, 5}, // #81 |
| { 3, 11}, // #82 |
| { 4, 13}, // #83 |
| { 5, 13}, // #84 |
| { 6, 7}, // #85 |
| { 7, 9}, // #86 |
| { 8, 6}, // #87 |
| {10, 6}, // #88 |
| {11, 6}, // #89 |
| {15, 1}, // #90 |
| {16, 1}, // #91 |
| {20, 3}, // #92 |
| { 1, 4}, // #93 |
| { 2, 5}, // #94 |
| { 3, 12}, // #95 |
| { 4, 14}, // #96 |
| { 5, 14}, // #97 |
| { 6, 7}, // #98 |
| { 7, 9}, // #99 |
| { 8, 6}, // #100 |
| {10, 6}, // #101 |
| {11, 6}, // #102 |
| {20, 3}, // #103 |
| { 2, 1}, // #104 |
| { 3, 1}, // #105 |
| { 4, 2}, // #106 |
| { 5, 2}, // #107 |
| { 7, 1}, // #108 |
| { 8, 1}, // #109 |
| { 9, 1}, // #110 |
| {10, 1}, // #111 |
| {11, 1}, // #112 |
| {15, 1}, // #113 |
| {16, 1}, // #114 |
| { 5, 1}, // #115 |
| {11, 1}, // #116 |
| {15, 1}, // #117 |
| {16, 1}, // #118 |
| { 2, 1}, // #119 |
| { 3, 1}, // #120 |
| { 4, 1}, // #121 |
| { 5, 1}, // #122 |
| { 9, 1}, // #123 |
| {10, 1}, // #124 |
| {11, 1}, // #125 |
| {15, 1}, // #126 |
| {16, 1}, // #127 |
| { 2, 1}, // #128 |
| { 3, 1}, // #129 |
| { 4, 3}, // #130 |
| { 5, 9}, // #131 |
| { 7, 2}, // #132 |
| { 8, 2}, // #133 |
| { 9, 1}, // #134 |
| {10, 1}, // #135 |
| {11, 3}, // #136 |
| {15, 1}, // #137 |
| {16, 1}, // #138 |
| { 2, 1}, // #139 |
| { 3, 1}, // #140 |
| { 4, 1}, // #141 |
| { 5, 1}, // #142 |
| { 9, 1}, // #143 |
| {10, 1}, // #144 |
| {11, 1}, // #145 |
| {15, 2}, // #146 |
| {16, 1}, // #147 |
| {19, 1}, // #148 |
| {23, 1}, // #149 |
| { 2, 1}, // #150 |
| { 3, 1}, // #151 |
| { 4, 3}, // #152 |
| { 5, 8}, // #153 |
| { 7, 2}, // #154 |
| { 8, 2}, // #155 |
| { 9, 1}, // #156 |
| {10, 1}, // #157 |
| {11, 3}, // #158 |
| {15, 2}, // #159 |
| {16, 1}, // #160 |
| {19, 1}, // #161 |
| {23, 1}, // #162 |
| { 4, 1}, // #163 |
| { 5, 1}, // #164 |
| { 7, 1}, // #165 |
| { 8, 1}, // #166 |
| {15, 1}, // #167 |
| {16, 1}, // #168 |
| { 4, 2}, // #169 |
| { 5, 5}, // #170 |
| { 7, 2}, // #171 |
| { 8, 2}, // #172 |
| { 1, 1}, // #173 |
| { 2, 1}, // #174 |
| { 3, 1}, // #175 |
| { 4, 1}, // #176 |
| { 5, 1}, // #177 |
| { 6, 1}, // #178 |
| { 7, 1}, // #179 |
| { 8, 1}, // #180 |
| {15, 1}, // #181 |
| {16, 1}, // #182 |
| { 2, 1}, // #183 |
| { 3, 2}, // #184 |
| { 4, 2}, // #185 |
| { 5, 2}, // #186 |
| { 6, 1}, // #187 |
| { 7, 1}, // #188 |
| {10, 1}, // #189 |
| {11, 1}, // #190 |
| {20, 1}, // #191 |
| { 2, 1}, // #192 |
| { 3, 2}, // #193 |
| { 4, 2}, // #194 |
| { 5, 2}, // #195 |
| { 6, 1}, // #196 |
| { 7, 1}, // #197 |
| {10, 1}, // #198 |
| {11, 1}, // #199 |
| {15, 1}, // #200 |
| {16, 1}, // #201 |
| {20, 1}, // #202 |
| { 1, 1}, // #203 |
| { 2, 2}, // #204 |
| { 3, 2}, // #205 |
| { 4, 2}, // #206 |
| { 5, 2}, // #207 |
| { 6, 1}, // #208 |
| { 7, 1}, // #209 |
| { 8, 1}, // #210 |
| {15, 1}, // #211 |
| {16, 1}, // #212 |
| { 2, 3}, // #213 |
| { 3, 3}, // #214 |
| { 4, 3}, // #215 |
| { 5, 4}, // #216 |
| { 9, 3}, // #217 |
| {10, 3}, // #218 |
| {11, 3}, // #219 |
| {15, 1}, // #220 |
| {16, 1}, // #221 |
| { 2, 3}, // #222 |
| { 3, 3}, // #223 |
| { 4, 3}, // #224 |
| { 5, 3}, // #225 |
| { 9, 3}, // #226 |
| {10, 3}, // #227 |
| {11, 3}, // #228 |
| {15, 1}, // #229 |
| {16, 1}, // #230 |
| { 2, 2}, // #231 |
| { 3, 3}, // #232 |
| { 4, 3}, // #233 |
| { 5, 3}, // #234 |
| {10, 1}, // #235 |
| {11, 1}, // #236 |
| {15, 1}, // #237 |
| {16, 1}, // #238 |
| { 2, 2}, // #239 |
| { 3, 5}, // #240 |
| { 4, 6}, // #241 |
| { 5, 6}, // #242 |
| { 6, 1}, // #243 |
| { 7, 2}, // #244 |
| { 8, 1}, // #245 |
| {10, 3}, // #246 |
| {11, 3}, // #247 |
| {15, 1}, // #248 |
| {16, 1}, // #249 |
| {20, 1}, // #250 |
| { 2, 2}, // #251 |
| { 3, 5}, // #252 |
| { 4, 6}, // #253 |
| { 5, 6}, // #254 |
| { 6, 1}, // #255 |
| { 7, 2}, // #256 |
| { 8, 1}, // #257 |
| {10, 3}, // #258 |
| {11, 3}, // #259 |
| {20, 1}, // #260 |
| { 3, 1}, // #261 |
| { 4, 1}, // #262 |
| { 5, 1}, // #263 |
| {10, 1}, // #264 |
| {11, 1}, // #265 |
| {15, 1}, // #266 |
| {19, 1}, // #267 |
| {23, 1}, // #268 |
| { 1, 1}, // #269 |
| { 2, 1}, // #270 |
| { 3, 2}, // #271 |
| { 4, 2}, // #272 |
| { 5, 2}, // #273 |
| { 6, 1}, // #274 |
| { 7, 1}, // #275 |
| { 8, 1}, // #276 |
| {10, 1}, // #277 |
| {11, 1}, // #278 |
| { 3, 1}, // #279 |
| { 4, 1}, // #280 |
| { 5, 1}, // #281 |
| { 6, 1}, // #282 |
| { 7, 1}, // #283 |
| {10, 1}, // #284 |
| {11, 1}, // #285 |
| {13, 1}, // #286 |
| {14, 1}, // #287 |
| {15, 1}, // #288 |
| {16, 1}, // #289 |
| {20, 1}, // #290 |
| { 1, 1}, // #291 |
| { 2, 1}, // #292 |
| { 3, 9}, // #293 |
| { 4, 10}, // #294 |
| { 5, 10}, // #295 |
| { 6, 9}, // #296 |
| { 7, 10}, // #297 |
| { 8, 2}, // #298 |
| { 3, 2}, // #299 |
| { 4, 2}, // #300 |
| { 5, 2}, // #301 |
| { 6, 2}, // #302 |
| { 7, 2}, // #303 |
| { 3, 3}, // #304 |
| { 4, 3}, // #305 |
| { 5, 3}, // #306 |
| { 6, 2}, // #307 |
| { 7, 2}, // #308 |
| {10, 3}, // #309 |
| {11, 3}, // #310 |
| {15, 1}, // #311 |
| {16, 1}, // #312 |
| {20, 2}, // #313 |
| { 3, 3}, // #314 |
| { 4, 3}, // #315 |
| { 5, 3}, // #316 |
| { 6, 2}, // #317 |
| { 7, 2}, // #318 |
| {10, 3}, // #319 |
| {11, 3}, // #320 |
| {20, 2}, // #321 |
| { 2, 1}, // #322 |
| { 3, 1}, // #323 |
| { 4, 2}, // #324 |
| { 5, 4}, // #325 |
| { 7, 1}, // #326 |
| { 8, 1}, // #327 |
| { 9, 1}, // #328 |
| {10, 1}, // #329 |
| {11, 1}, // #330 |
| {15, 1}, // #331 |
| {16, 1}, // #332 |
| { 2, 1}, // #333 |
| { 3, 1}, // #334 |
| { 4, 1}, // #335 |
| { 5, 2}, // #336 |
| { 9, 1}, // #337 |
| {10, 1}, // #338 |
| {11, 1}, // #339 |
| {15, 1}, // #340 |
| {16, 1}, // #341 |
| { 2, 1}, // #342 |
| { 3, 1}, // #343 |
| { 4, 2}, // #344 |
| { 5, 3}, // #345 |
| { 7, 1}, // #346 |
| { 8, 1}, // #347 |
| { 9, 1}, // #348 |
| {10, 1}, // #349 |
| {11, 1}, // #350 |
| {15, 1}, // #351 |
| {16, 1}, // #352 |
| { 2, 1}, // #353 |
| { 3, 2}, // #354 |
| { 4, 2}, // #355 |
| { 5, 2}, // #356 |
| { 6, 1}, // #357 |
| { 7, 1}, // #358 |
| { 9, 1}, // #359 |
| {10, 2}, // #360 |
| {11, 2}, // #361 |
| {15, 1}, // #362 |
| {16, 1}, // #363 |
| {20, 1}, // #364 |
| { 2, 1}, // #365 |
| { 3, 2}, // #366 |
| { 4, 2}, // #367 |
| { 5, 2}, // #368 |
| { 6, 1}, // #369 |
| { 7, 1}, // #370 |
| { 9, 1}, // #371 |
| {10, 2}, // #372 |
| {11, 2}, // #373 |
| {20, 1}, // #374 |
| { 3, 1}, // #375 |
| { 4, 1}, // #376 |
| { 5, 1}, // #377 |
| { 6, 1}, // #378 |
| { 7, 1}, // #379 |
| {10, 1}, // #380 |
| {11, 1}, // #381 |
| {15, 1}, // #382 |
| {16, 1}, // #383 |
| {20, 1}, // #384 |
| { 1, 1}, // #385 |
| { 2, 1}, // #386 |
| { 3, 2}, // #387 |
| { 4, 3}, // #388 |
| { 5, 3}, // #389 |
| { 6, 1}, // #390 |
| { 7, 2}, // #391 |
| { 8, 2}, // #392 |
| {15, 1}, // #393 |
| {16, 1}, // #394 |
| { 3, 1}, // #395 |
| { 4, 1}, // #396 |
| { 5, 1}, // #397 |
| { 6, 1}, // #398 |
| { 7, 1}, // #399 |
| {15, 1}, // #400 |
| {16, 1}, // #401 |
| { 3, 3}, // #402 |
| { 4, 3}, // #403 |
| { 5, 3}, // #404 |
| { 6, 3}, // #405 |
| { 7, 3}, // #406 |
| {10, 2}, // #407 |
| {11, 2}, // #408 |
| {15, 1}, // #409 |
| {16, 1}, // #410 |
| {20, 2}, // #411 |
| { 3, 3}, // #412 |
| { 4, 3}, // #413 |
| { 5, 3}, // #414 |
| { 6, 3}, // #415 |
| { 7, 3}, // #416 |
| {10, 2}, // #417 |
| {11, 2}, // #418 |
| {20, 2}, // #419 |
| { 3, 2}, // #420 |
| { 4, 2}, // #421 |
| { 5, 2}, // #422 |
| { 6, 1}, // #423 |
| { 7, 1}, // #424 |
| {10, 2}, // #425 |
| {11, 2}, // #426 |
| {20, 1}, // #427 |
| { 1, 1}, // #428 |
| { 2, 1}, // #429 |
| { 3, 2}, // #430 |
| { 4, 2}, // #431 |
| { 5, 2}, // #432 |
| { 6, 2}, // #433 |
| { 7, 2}, // #434 |
| { 8, 1}, // #435 |
| {10, 1}, // #436 |
| {11, 1}, // #437 |
| {15, 1}, // #438 |
| {16, 1}, // #439 |
| {20, 1}, // #440 |
| { 1, 1}, // #441 |
| { 2, 1}, // #442 |
| { 3, 2}, // #443 |
| { 4, 2}, // #444 |
| { 5, 2}, // #445 |
| { 6, 2}, // #446 |
| { 7, 2}, // #447 |
| { 8, 1}, // #448 |
| {10, 1}, // #449 |
| {11, 1}, // #450 |
| {20, 1}, // #451 |
| { 3, 2}, // #452 |
| { 4, 2}, // #453 |
| { 5, 2}, // #454 |
| { 6, 1}, // #455 |
| { 7, 1}, // #456 |
| {10, 2}, // #457 |
| {11, 2}, // #458 |
| {15, 1}, // #459 |
| {16, 1}, // #460 |
| {20, 1}, // #461 |
| { 1, 3}, // #462 |
| { 2, 4}, // #463 |
| { 3, 6}, // #464 |
| { 4, 7}, // #465 |
| { 5, 7}, // #466 |
| { 6, 4}, // #467 |
| { 7, 5}, // #468 |
| { 8, 4}, // #469 |
| { 9, 1}, // #470 |
| {10, 2}, // #471 |
| {11, 2}, // #472 |
| {15, 1}, // #473 |
| {16, 1}, // #474 |
| {20, 1}, // #475 |
| { 1, 3}, // #476 |
| { 2, 4}, // #477 |
| { 3, 7}, // #478 |
| { 4, 8}, // #479 |
| { 5, 8}, // #480 |
| { 6, 4}, // #481 |
| { 7, 5}, // #482 |
| { 8, 4}, // #483 |
| { 9, 1}, // #484 |
| {10, 2}, // #485 |
| {11, 2}, // #486 |
| {20, 1}, // #487 |
| { 1, 3}, // #488 |
| { 2, 4}, // #489 |
| { 3, 7}, // #490 |
| { 4, 8}, // #491 |
| { 5, 8}, // #492 |
| { 6, 4}, // #493 |
| { 7, 5}, // #494 |
| { 8, 4}, // #495 |
| { 9, 1}, // #496 |
| {10, 2}, // #497 |
| {11, 2}, // #498 |
| {15, 1}, // #499 |
| {16, 1}, // #500 |
| {20, 1}, // #501 |
| { 1, 3}, // #502 |
| { 2, 4}, // #503 |
| { 3, 8}, // #504 |
| { 4, 9}, // #505 |
| { 5, 9}, // #506 |
| { 6, 4}, // #507 |
| { 7, 5}, // #508 |
| { 8, 4}, // #509 |
| { 9, 1}, // #510 |
| {10, 2}, // #511 |
| {11, 2}, // #512 |
| {20, 1}, // #513 |
| { 1, 3}, // #514 |
| { 2, 3}, // #515 |
| { 3, 3}, // #516 |
| { 4, 3}, // #517 |
| { 5, 3}, // #518 |
| { 6, 3}, // #519 |
| { 7, 3}, // #520 |
| { 8, 3}, // #521 |
| {15, 1}, // #522 |
| {16, 1}, // #523 |
| { 3, 3}, // #524 |
| { 4, 3}, // #525 |
| { 5, 3}, // #526 |
| {10, 2}, // #527 |
| {11, 2}, // #528 |
| {15, 1}, // #529 |
| {16, 1}, // #530 |
| { 2, 1}, // #531 |
| { 3, 2}, // #532 |
| { 4, 2}, // #533 |
| { 5, 2}, // #534 |
| {10, 1}, // #535 |
| {11, 1}, // #536 |
| { 2, 2}, // #537 |
| { 3, 2}, // #538 |
| { 4, 5}, // #539 |
| { 5, 7}, // #540 |
| { 7, 3}, // #541 |
| { 8, 3}, // #542 |
| { 9, 2}, // #543 |
| {10, 2}, // #544 |
| {11, 2}, // #545 |
| {15, 2}, // #546 |
| {16, 1}, // #547 |
| {19, 1}, // #548 |
| {23, 1}, // #549 |
| { 4, 2}, // #550 |
| { 5, 2}, // #551 |
| { 7, 2}, // #552 |
| { 8, 2}, // #553 |
| { 4, 1}, // #554 |
| { 5, 1}, // #555 |
| { 7, 1}, // #556 |
| { 8, 1}, // #557 |
| {15, 2}, // #558 |
| {16, 1}, // #559 |
| {19, 1}, // #560 |
| {23, 1}, // #561 |
| { 4, 2}, // #562 |
| { 5, 2}, // #563 |
| { 7, 2}, // #564 |
| { 8, 2}, // #565 |
| {15, 2}, // #566 |
| {16, 1}, // #567 |
| {19, 1}, // #568 |
| {23, 1}, // #569 |
| { 4, 2}, // #570 |
| { 5, 2}, // #571 |
| { 7, 2}, // #572 |
| { 8, 2}, // #573 |
| {15, 1}, // #574 |
| {19, 1}, // #575 |
| {23, 1}, // #576 |
| { 2, 1}, // #577 |
| { 3, 1}, // #578 |
| { 4, 2}, // #579 |
| { 5, 3}, // #580 |
| { 7, 1}, // #581 |
| { 8, 1}, // #582 |
| { 9, 1}, // #583 |
| {10, 1}, // #584 |
| {11, 1}, // #585 |
| {15, 2}, // #586 |
| {16, 1}, // #587 |
| {19, 1}, // #588 |
| {23, 1}, // #589 |
| { 2, 1}, // #590 |
| { 3, 1}, // #591 |
| { 4, 1}, // #592 |
| { 5, 2}, // #593 |
| { 9, 1}, // #594 |
| {10, 1}, // #595 |
| {11, 1}, // #596 |
| {15, 2}, // #597 |
| {16, 1}, // #598 |
| {19, 1}, // #599 |
| {23, 1}, // #600 |
| { 1, 1}, // #601 |
| { 2, 1}, // #602 |
| { 3, 1}, // #603 |
| { 4, 1}, // #604 |
| { 5, 1}, // #605 |
| { 6, 1}, // #606 |
| { 7, 1}, // #607 |
| { 8, 1}, // #608 |
| {28, 7}, // #609 |
| { 1, 1}, // #610 |
| { 2, 1}, // #611 |
| { 3, 1}, // #612 |
| { 4, 2}, // #613 |
| { 5, 2}, // #614 |
| { 6, 1}, // #615 |
| { 7, 2}, // #616 |
| { 8, 2}, // #617 |
| {15, 1}, // #618 |
| {19, 1}, // #619 |
| {23, 1}, // #620 |
| { 3, 3}, // #621 |
| { 4, 3}, // #622 |
| { 5, 3}, // #623 |
| {15, 1}, // #624 |
| {16, 1}, // #625 |
| { 2, 1}, // #626 |
| { 3, 1}, // #627 |
| { 4, 1}, // #628 |
| { 5, 1}, // #629 |
| {15, 1}, // #630 |
| {19, 1}, // #631 |
| {23, 1}, // #632 |
| { 1, 1}, // #633 |
| { 2, 1}, // #634 |
| { 3, 1}, // #635 |
| { 4, 1}, // #636 |
| { 5, 1}, // #637 |
| { 6, 1}, // #638 |
| { 7, 1}, // #639 |
| { 8, 1}, // #640 |
| {15, 1}, // #641 |
| {19, 1}, // #642 |
| {23, 1}, // #643 |
| { 1, 2}, // #644 |
| { 2, 3}, // #645 |
| { 3, 7}, // #646 |
| { 4, 15}, // #647 |
| { 5, 15}, // #648 |
| { 6, 6}, // #649 |
| { 7, 10}, // #650 |
| { 8, 6}, // #651 |
| { 9, 1}, // #652 |
| {10, 3}, // #653 |
| {11, 3}, // #654 |
| {20, 2}, // #655 |
| {21, 4}, // #656 |
| { 2, 1}, // #657 |
| { 3, 3}, // #658 |
| { 4, 3}, // #659 |
| { 5, 3}, // #660 |
| { 6, 2}, // #661 |
| { 7, 2}, // #662 |
| {10, 2}, // #663 |
| {11, 2}, // #664 |
| {20, 2}, // #665 |
| { 1, 1}, // #666 |
| { 2, 2}, // #667 |
| { 3, 3}, // #668 |
| { 4, 3}, // #669 |
| { 5, 3}, // #670 |
| { 6, 2}, // #671 |
| { 7, 2}, // #672 |
| { 8, 1}, // #673 |
| {10, 1}, // #674 |
| {11, 1}, // #675 |
| {20, 1}, // #676 |
| {14, 1}, // #677 |
| {15, 1}, // #678 |
| {18, 1}, // #679 |
| {19, 1}, // #680 |
| { 5, 4}, // #681 |
| {15, 2}, // #682 |
| {16, 1}, // #683 |
| {19, 1}, // #684 |
| {23, 1}, // #685 |
| { 4, 1}, // #686 |
| { 5, 6}, // #687 |
| { 7, 1}, // #688 |
| { 8, 1}, // #689 |
| {15, 2}, // #690 |
| {16, 1}, // #691 |
| {19, 1}, // #692 |
| {23, 1}, // #693 |
| { 1, 1}, // #694 |
| { 2, 1}, // #695 |
| { 3, 2}, // #696 |
| { 4, 2}, // #697 |
| { 5, 2}, // #698 |
| { 6, 2}, // #699 |
| { 7, 2}, // #700 |
| { 8, 1}, // #701 |
| {13, 1}, // #702 |
| {14, 1}, // #703 |
| {15, 1}, // #704 |
| {16, 1}, // #705 |
| { 3, 1}, // #706 |
| { 4, 1}, // #707 |
| { 5, 1}, // #708 |
| { 6, 1}, // #709 |
| { 7, 1}, // #710 |
| {10, 1}, // #711 |
| {11, 1}, // #712 |
| {14, 1}, // #713 |
| {15, 1}, // #714 |
| {18, 1}, // #715 |
| {19, 1}, // #716 |
| {20, 1}, // #717 |
| { 2, 1}, // #718 |
| { 3, 1}, // #719 |
| { 4, 7}, // #720 |
| { 5, 11}, // #721 |
| { 7, 6}, // #722 |
| { 8, 6}, // #723 |
| { 9, 1}, // #724 |
| {10, 1}, // #725 |
| {11, 1}, // #726 |
| { 4, 1}, // #727 |
| { 5, 1}, // #728 |
| { 7, 1}, // #729 |
| { 8, 1}, // #730 |
| {14, 1}, // #731 |
| {15, 1}, // #732 |
| {18, 1}, // #733 |
| {19, 1}, // #734 |
| {21, 1}, // #735 |
| { 3, 1}, // #736 |
| { 4, 2}, // #737 |
| { 5, 2}, // #738 |
| { 6, 1}, // #739 |
| { 7, 2}, // #740 |
| { 8, 1}, // #741 |
| {10, 1}, // #742 |
| {11, 1}, // #743 |
| {20, 1}, // #744 |
| { 2, 2}, // #745 |
| { 3, 2}, // #746 |
| { 4, 9}, // #747 |
| { 5, 13}, // #748 |
| { 7, 7}, // #749 |
| { 8, 7}, // #750 |
| { 9, 2}, // #751 |
| {10, 2}, // #752 |
| {11, 2}, // #753 |
| {15, 2}, // #754 |
| {16, 1}, // #755 |
| {19, 1}, // #756 |
| {23, 1}, // #757 |
| { 2, 1}, // #758 |
| { 3, 1}, // #759 |
| { 4, 5}, // #760 |
| { 5, 7}, // #761 |
| { 7, 4}, // #762 |
| { 8, 4}, // #763 |
| { 9, 1}, // #764 |
| {10, 1}, // #765 |
| {11, 1}, // #766 |
| { 1, 2}, // #767 |
| { 2, 2}, // #768 |
| { 3, 6}, // #769 |
| { 4, 12}, // #770 |
| { 5, 19}, // #771 |
| { 6, 4}, // #772 |
| { 7, 10}, // #773 |
| { 8, 8}, // #774 |
| {10, 4}, // #775 |
| {11, 4}, // #776 |
| {15, 2}, // #777 |
| {16, 1}, // #778 |
| {19, 1}, // #779 |
| {20, 2}, // #780 |
| {23, 1}, // #781 |
| { 4, 4}, // #782 |
| { 5, 4}, // #783 |
| { 1, 2}, // #784 |
| { 2, 8}, // #785 |
| { 3, 12}, // #786 |
| { 4, 21}, // #787 |
| { 5, 21}, // #788 |
| { 6, 5}, // #789 |
| { 7, 14}, // #790 |
| { 8, 9}, // #791 |
| { 9, 4}, // #792 |
| {10, 7}, // #793 |
| {11, 7}, // #794 |
| {20, 3}, // #795 |
| { 1, 2}, // #796 |
| { 2, 4}, // #797 |
| { 3, 13}, // #798 |
| { 4, 34}, // #799 |
| { 5, 34}, // #800 |
| { 6, 11}, // #801 |
| { 7, 32}, // #802 |
| { 8, 23}, // #803 |
| { 9, 2}, // #804 |
| {10, 11}, // #805 |
| {11, 11}, // #806 |
| {15, 19}, // #807 |
| {16, 14}, // #808 |
| {19, 4}, // #809 |
| {20, 9}, // #810 |
| {23, 5}, // #811 |
| { 2, 1}, // #812 |
| { 3, 1}, // #813 |
| { 4, 3}, // #814 |
| { 5, 9}, // #815 |
| { 7, 2}, // #816 |
| { 8, 2}, // #817 |
| { 9, 1}, // #818 |
| {10, 1}, // #819 |
| {11, 1}, // #820 |
| {15, 1}, // #821 |
| {16, 1}, // #822 |
| { 3, 1}, // #823 |
| { 4, 10}, // #824 |
| { 5, 10}, // #825 |
| { 6, 1}, // #826 |
| { 7, 3}, // #827 |
| { 8, 2}, // #828 |
| {10, 1}, // #829 |
| {11, 1}, // #830 |
| {20, 1}, // #831 |
| {21, 2}, // #832 |
| { 1, 7}, // #833 |
| { 2, 24}, // #834 |
| { 3, 44}, // #835 |
| { 4, 70}, // #836 |
| { 5, 75}, // #837 |
| { 6, 26}, // #838 |
| { 7, 52}, // #839 |
| { 8, 32}, // #840 |
| { 9, 17}, // #841 |
| {10, 36}, // #842 |
| {11, 37}, // #843 |
| {15, 10}, // #844 |
| {16, 9}, // #845 |
| {19, 1}, // #846 |
| {20, 19}, // #847 |
| {23, 1}, // #848 |
| { 3, 9}, // #849 |
| { 4, 15}, // #850 |
| { 5, 15}, // #851 |
| { 6, 9}, // #852 |
| { 7, 9}, // #853 |
| {10, 6}, // #854 |
| {11, 6}, // #855 |
| {20, 6}, // #856 |
| { 1, 5}, // #857 |
| { 2, 20}, // #858 |
| { 3, 35}, // #859 |
| { 4, 61}, // #860 |
| { 5, 66}, // #861 |
| { 6, 20}, // #862 |
| { 7, 46}, // #863 |
| { 8, 31}, // #864 |
| { 9, 15}, // #865 |
| {10, 30}, // #866 |
| {11, 30}, // #867 |
| {15, 6}, // #868 |
| {16, 5}, // #869 |
| {19, 1}, // #870 |
| {20, 15}, // #871 |
| {23, 1}, // #872 |
| { 1, 5}, // #873 |
| { 2, 20}, // #874 |
| { 3, 36}, // #875 |
| { 4, 61}, // #876 |
| { 5, 66}, // #877 |
| { 6, 21}, // #878 |
| { 7, 46}, // #879 |
| { 8, 30}, // #880 |
| { 9, 15}, // #881 |
| {10, 30}, // #882 |
| {11, 30}, // #883 |
| {15, 6}, // #884 |
| {16, 5}, // #885 |
| {19, 1}, // #886 |
| {20, 15}, // #887 |
| {23, 1}, // #888 |
| { 1, 6}, // #889 |
| { 2, 23}, // #890 |
| { 3, 41}, // #891 |
| { 4, 68}, // #892 |
| { 5, 73}, // #893 |
| { 6, 24}, // #894 |
| { 7, 51}, // #895 |
| { 8, 33}, // #896 |
| { 9, 16}, // #897 |
| {10, 34}, // #898 |
| {11, 34}, // #899 |
| {15, 9}, // #900 |
| {16, 8}, // #901 |
| {19, 1}, // #902 |
| {20, 18}, // #903 |
| {23, 1}, // #904 |
| { 2, 9}, // #905 |
| { 3, 23}, // #906 |
| { 4, 53}, // #907 |
| { 5, 54}, // #908 |
| { 6, 3}, // #909 |
| { 7, 33}, // #910 |
| { 8, 20}, // #911 |
| { 9, 8}, // #912 |
| {10, 15}, // #913 |
| {11, 16}, // #914 |
| {20, 2}, // #915 |
| { 1, 7}, // #916 |
| { 2, 26}, // #917 |
| { 3, 46}, // #918 |
| { 4, 71}, // #919 |
| { 5, 79}, // #920 |
| { 6, 27}, // #921 |
| { 7, 52}, // #922 |
| { 8, 32}, // #923 |
| { 9, 19}, // #924 |
| {10, 39}, // #925 |
| {11, 41}, // #926 |
| {15, 8}, // #927 |
| {16, 8}, // #928 |
| {20, 20}, // #929 |
| { 1, 7}, // #930 |
| { 2, 26}, // #931 |
| { 3, 46}, // #932 |
| { 4, 71}, // #933 |
| { 5, 79}, // #934 |
| { 6, 27}, // #935 |
| { 7, 52}, // #936 |
| { 8, 32}, // #937 |
| { 9, 19}, // #938 |
| {10, 39}, // #939 |
| {11, 41}, // #940 |
| {15, 7}, // #941 |
| {16, 7}, // #942 |
| {20, 20}, // #943 |
| { 1, 2}, // #944 |
| { 2, 9}, // #945 |
| { 3, 14}, // #946 |
| { 4, 24}, // #947 |
| { 5, 24}, // #948 |
| { 6, 7}, // #949 |
| { 7, 17}, // #950 |
| { 8, 12}, // #951 |
| { 9, 6}, // #952 |
| {10, 11}, // #953 |
| {11, 11}, // #954 |
| {15, 1}, // #955 |
| {19, 1}, // #956 |
| {20, 5}, // #957 |
| {23, 1}, // #958 |
| { 1, 2}, // #959 |
| { 2, 12}, // #960 |
| { 3, 17}, // #961 |
| { 4, 27}, // #962 |
| { 5, 32}, // #963 |
| { 6, 7}, // #964 |
| { 7, 17}, // #965 |
| { 8, 12}, // #966 |
| { 9, 10}, // #967 |
| {10, 15}, // #968 |
| {11, 15}, // #969 |
| {15, 40}, // #970 |
| {16, 2}, // #971 |
| {19, 38}, // #972 |
| {20, 5}, // #973 |
| {23, 38}, // #974 |
| { 1, 4}, // #975 |
| { 2, 4}, // #976 |
| { 3, 6}, // #977 |
| { 4, 57}, // #978 |
| { 5, 57}, // #979 |
| { 6, 5}, // #980 |
| { 7, 9}, // #981 |
| { 8, 8}, // #982 |
| {10, 1}, // #983 |
| {11, 1}, // #984 |
| {13, 33}, // #985 |
| {14, 33}, // #986 |
| {15, 33}, // #987 |
| {16, 33}, // #988 |
| {21, 2}, // #989 |
| { 1, 8}, // #990 |
| { 2, 35}, // #991 |
| { 3, 79}, // #992 |
| { 4, 142}, // #993 |
| { 5, 142}, // #994 |
| { 6, 37}, // #995 |
| { 7, 100}, // #996 |
| { 8, 71}, // #997 |
| { 9, 21}, // #998 |
| {10, 46}, // #999 |
| {11, 46}, // #1000 |
| {15, 1}, // #1001 |
| {19, 1}, // #1002 |
| {20, 10}, // #1003 |
| {23, 1}, // #1004 |
| { 1, 1}, // #1005 |
| { 2, 1}, // #1006 |
| { 3, 1}, // #1007 |
| { 4, 2}, // #1008 |
| { 5, 2}, // #1009 |
| { 6, 1}, // #1010 |
| { 7, 1}, // #1011 |
| { 8, 1}, // #1012 |
| { 2, 3}, // #1013 |
| { 3, 3}, // #1014 |
| { 4, 7}, // #1015 |
| { 5, 10}, // #1016 |
| { 7, 4}, // #1017 |
| { 8, 4}, // #1018 |
| { 9, 3}, // #1019 |
| {10, 3}, // #1020 |
| {11, 3}, // #1021 |
| { 2, 1}, // #1022 |
| { 3, 1}, // #1023 |
| { 4, 3}, // #1024 |
| { 5, 3}, // #1025 |
| { 7, 2}, // #1026 |
| { 8, 2}, // #1027 |
| { 9, 1}, // #1028 |
| {10, 1}, // #1029 |
| {11, 1}, // #1030 |
| { 3, 1}, // #1031 |
| { 4, 1}, // #1032 |
| { 5, 1}, // #1033 |
| { 6, 1}, // #1034 |
| { 7, 1}, // #1035 |
| {10, 1}, // #1036 |
| {11, 1}, // #1037 |
| {15, 1}, // #1038 |
| {19, 1}, // #1039 |
| {20, 1}, // #1040 |
| {23, 1}, // #1041 |
| { 5, 2}, // #1042 |
| {15, 1}, // #1043 |
| {19, 1}, // #1044 |
| {23, 1}, // #1045 |
| { 2, 1}, // #1046 |
| { 3, 1}, // #1047 |
| { 4, 2}, // #1048 |
| { 5, 2}, // #1049 |
| { 7, 1}, // #1050 |
| { 8, 1}, // #1051 |
| { 9, 1}, // #1052 |
| {10, 1}, // #1053 |
| {11, 1}, // #1054 |
| {15, 1}, // #1055 |
| {19, 1}, // #1056 |
| {23, 1}, // #1057 |
| { 1, 5}, // #1058 |
| { 2, 13}, // #1059 |
| { 3, 13}, // #1060 |
| { 4, 13}, // #1061 |
| { 5, 13}, // #1062 |
| { 6, 5}, // #1063 |
| { 7, 5}, // #1064 |
| { 8, 5}, // #1065 |
| { 9, 8}, // #1066 |
| {10, 8}, // #1067 |
| {11, 8}, // #1068 |
| {15, 21}, // #1069 |
| {16, 21}, // #1070 |
| { 4, 1}, // #1071 |
| { 5, 1}, // #1072 |
| { 7, 1}, // #1073 |
| { 8, 1}, // #1074 |
| {13, 1}, // #1075 |
| {14, 1}, // #1076 |
| {15, 1}, // #1077 |
| {16, 1}, // #1078 |
| {21, 1}, // #1079 |
| { 1, 1}, // #1080 |
| { 2, 1}, // #1081 |
| { 3, 1}, // #1082 |
| { 4, 1}, // #1083 |
| { 5, 1}, // #1084 |
| { 6, 1}, // #1085 |
| { 7, 1}, // #1086 |
| { 8, 1}, // #1087 |
| {14, 1}, // #1088 |
| {15, 1}, // #1089 |
| {18, 1}, // #1090 |
| {19, 1}, // #1091 |
| { 5, 5}, // #1092 |
| {15, 2}, // #1093 |
| {16, 2}, // #1094 |
| { 5, 2}, // #1095 |
| {15, 2}, // #1096 |
| {16, 1}, // #1097 |
| {19, 1}, // #1098 |
| {23, 1}, // #1099 |
| { 4, 2}, // #1100 |
| { 5, 2}, // #1101 |
| { 7, 1}, // #1102 |
| { 8, 1}, // #1103 |
| {13, 1}, // #1104 |
| {14, 2}, // #1105 |
| {15, 2}, // #1106 |
| {16, 1}, // #1107 |
| {18, 1}, // #1108 |
| {19, 1}, // #1109 |
| {21, 1}, // #1110 |
| { 4, 1}, // #1111 |
| { 5, 3}, // #1112 |
| { 7, 1}, // #1113 |
| { 8, 1}, // #1114 |
| {15, 2}, // #1115 |
| {16, 1}, // #1116 |
| {19, 1}, // #1117 |
| {23, 1}, // #1118 |
| { 3, 2}, // #1119 |
| { 4, 2}, // #1120 |
| { 5, 2}, // #1121 |
| { 6, 2}, // #1122 |
| { 7, 2}, // #1123 |
| {10, 2}, // #1124 |
| {11, 2}, // #1125 |
| {13, 1}, // #1126 |
| {14, 1}, // #1127 |
| {15, 1}, // #1128 |
| {16, 1}, // #1129 |
| {20, 2}, // #1130 |
| { 1, 1}, // #1131 |
| { 2, 1}, // #1132 |
| { 3, 1}, // #1133 |
| { 4, 1}, // #1134 |
| { 5, 1}, // #1135 |
| { 6, 1}, // #1136 |
| { 7, 1}, // #1137 |
| { 8, 1}, // #1138 |
| {13, 1}, // #1139 |
| {14, 1}, // #1140 |
| {15, 1}, // #1141 |
| {16, 1}, // #1142 |
| { 1, 1}, // #1143 |
| { 2, 1}, // #1144 |
| { 3, 2}, // #1145 |
| { 4, 2}, // #1146 |
| { 5, 2}, // #1147 |
| { 6, 2}, // #1148 |
| { 7, 2}, // #1149 |
| { 8, 1}, // #1150 |
| {10, 1}, // #1151 |
| {11, 1}, // #1152 |
| {13, 1}, // #1153 |
| {14, 1}, // #1154 |
| {15, 1}, // #1155 |
| {16, 1}, // #1156 |
| {20, 1}, // #1157 |
| { 2, 3}, // #1158 |
| { 3, 4}, // #1159 |
| { 4, 7}, // #1160 |
| { 5, 10}, // #1161 |
| { 7, 3}, // #1162 |
| { 8, 3}, // #1163 |
| { 9, 3}, // #1164 |
| {10, 3}, // #1165 |
| {11, 4}, // #1166 |
| { 4, 2}, // #1167 |
| { 5, 2}, // #1168 |
| { 7, 2}, // #1169 |
| { 8, 2}, // #1170 |
| {15, 1}, // #1171 |
| {16, 1}, // #1172 |
| { 2, 2}, // #1173 |
| { 3, 3}, // #1174 |
| { 4, 9}, // #1175 |
| { 5, 18}, // #1176 |
| { 6, 1}, // #1177 |
| { 7, 7}, // #1178 |
| { 8, 6}, // #1179 |
| { 9, 2}, // #1180 |
| {10, 3}, // #1181 |
| {11, 3}, // #1182 |
| {20, 1}, // #1183 |
| { 1, 2}, // #1184 |
| { 2, 9}, // #1185 |
| { 3, 14}, // #1186 |
| { 4, 21}, // #1187 |
| { 5, 24}, // #1188 |
| { 6, 4}, // #1189 |
| { 7, 11}, // #1190 |
| { 8, 7}, // #1191 |
| { 9, 7}, // #1192 |
| {10, 12}, // #1193 |
| {11, 12}, // #1194 |
| {15, 1}, // #1195 |
| {16, 1}, // #1196 |
| {20, 2}, // #1197 |
| { 2, 2}, // #1198 |
| { 3, 2}, // #1199 |
| { 4, 2}, // #1200 |
| { 5, 3}, // #1201 |
| { 9, 2}, // #1202 |
| {10, 2}, // #1203 |
| {11, 2}, // #1204 |
| {15, 2}, // #1205 |
| {19, 2}, // #1206 |
| {23, 2}, // #1207 |
| { 4, 1}, // #1208 |
| { 5, 1}, // #1209 |
| { 7, 1}, // #1210 |
| { 8, 1}, // #1211 |
| {15, 1}, // #1212 |
| {19, 1}, // #1213 |
| {23, 1}, // #1214 |
| { 2, 5}, // #1215 |
| { 3, 5}, // #1216 |
| { 4, 16}, // #1217 |
| { 5, 23}, // #1218 |
| { 7, 11}, // #1219 |
| { 8, 8}, // #1220 |
| { 9, 5}, // #1221 |
| {10, 5}, // #1222 |
| {11, 5}, // #1223 |
| { 3, 2}, // #1224 |
| { 4, 2}, // #1225 |
| { 5, 2}, // #1226 |
| { 6, 2}, // #1227 |
| { 7, 2}, // #1228 |
| {10, 2}, // #1229 |
| {11, 2}, // #1230 |
| {15, 1}, // #1231 |
| {16, 1}, // #1232 |
| {20, 2}, // #1233 |
| { 3, 2}, // #1234 |
| { 4, 2}, // #1235 |
| { 5, 2}, // #1236 |
| { 6, 2}, // #1237 |
| { 7, 2}, // #1238 |
| {10, 2}, // #1239 |
| {11, 2}, // #1240 |
| {20, 2}, // #1241 |
| { 1, 1}, // #1242 |
| { 2, 6}, // #1243 |
| { 3, 8}, // #1244 |
| { 4, 17}, // #1245 |
| { 5, 20}, // #1246 |
| { 6, 2}, // #1247 |
| { 7, 11}, // #1248 |
| { 8, 9}, // #1249 |
| { 9, 5}, // #1250 |
| {10, 7}, // #1251 |
| {11, 7}, // #1252 |
| {15, 2}, // #1253 |
| {16, 2}, // #1254 |
| {20, 1}, // #1255 |
| { 1, 1}, // #1256 |
| { 2, 4}, // #1257 |
| { 3, 5}, // #1258 |
| { 4, 10}, // #1259 |
| { 5, 10}, // #1260 |
| { 6, 2}, // #1261 |
| { 7, 7}, // #1262 |
| { 8, 6}, // #1263 |
| { 9, 3}, // #1264 |
| {10, 4}, // #1265 |
| {11, 4}, // #1266 |
| {15, 3}, // #1267 |
| {16, 3}, // #1268 |
| {20, 1}, // #1269 |
| { 2, 8}, // #1270 |
| { 3, 14}, // #1271 |
| { 4, 30}, // #1272 |
| { 5, 54}, // #1273 |
| { 6, 2}, // #1274 |
| { 7, 18}, // #1275 |
| { 8, 14}, // #1276 |
| { 9, 8}, // #1277 |
| {10, 10}, // #1278 |
| {11, 11}, // #1279 |
| {20, 2}, // #1280 |
| { 2, 2}, // #1281 |
| { 3, 2}, // #1282 |
| { 4, 7}, // #1283 |
| { 5, 9}, // #1284 |
| { 7, 5}, // #1285 |
| { 8, 5}, // #1286 |
| { 9, 2}, // #1287 |
| {10, 2}, // #1288 |
| {11, 2}, // #1289 |
| { 2, 3}, // #1290 |
| { 3, 4}, // #1291 |
| { 4, 10}, // #1292 |
| { 5, 15}, // #1293 |
| { 6, 1}, // #1294 |
| { 7, 7}, // #1295 |
| { 8, 6}, // #1296 |
| { 9, 3}, // #1297 |
| {10, 4}, // #1298 |
| {11, 4}, // #1299 |
| {20, 1}, // #1300 |
| { 2, 1}, // #1301 |
| { 3, 1}, // #1302 |
| { 4, 30}, // #1303 |
| { 5, 30}, // #1304 |
| { 7, 8}, // #1305 |
| { 8, 8}, // #1306 |
| { 9, 1}, // #1307 |
| {10, 1}, // #1308 |
| {11, 1}, // #1309 |
| {13, 1}, // #1310 |
| {14, 1}, // #1311 |
| {15, 1}, // #1312 |
| {16, 1}, // #1313 |
| {21, 8}, // #1314 |
| { 2, 35}, // #1315 |
| { 3, 90}, // #1316 |
| { 4, 134}, // #1317 |
| { 5, 134}, // #1318 |
| { 6, 34}, // #1319 |
| { 7, 78}, // #1320 |
| { 8, 44}, // #1321 |
| { 9, 21}, // #1322 |
| {10, 51}, // #1323 |
| {11, 51}, // #1324 |
| {15, 5}, // #1325 |
| {16, 4}, // #1326 |
| {19, 1}, // #1327 |
| {20, 9}, // #1328 |
| {23, 1}, // #1329 |
| { 2, 52}, // #1330 |
| { 3, 97}, // #1331 |
| { 4, 150}, // #1332 |
| { 5, 150}, // #1333 |
| { 6, 45}, // #1334 |
| { 7, 98}, // #1335 |
| { 8, 53}, // #1336 |
| { 9, 27}, // #1337 |
| {10, 37}, // #1338 |
| {11, 37}, // #1339 |
| {15, 5}, // #1340 |
| {16, 4}, // #1341 |
| {19, 1}, // #1342 |
| {20, 10}, // #1343 |
| {23, 1}, // #1344 |
| { 2, 1}, // #1345 |
| { 3, 4}, // #1346 |
| { 4, 15}, // #1347 |
| { 5, 15}, // #1348 |
| { 6, 2}, // #1349 |
| { 7, 5}, // #1350 |
| { 8, 3}, // #1351 |
| { 9, 1}, // #1352 |
| {10, 4}, // #1353 |
| {11, 4}, // #1354 |
| {13, 1}, // #1355 |
| {14, 2}, // #1356 |
| {15, 2}, // #1357 |
| {16, 1}, // #1358 |
| {18, 1}, // #1359 |
| {19, 1}, // #1360 |
| {20, 2}, // #1361 |
| {21, 3}, // #1362 |
| { 1, 2}, // #1363 |
| { 2, 2}, // #1364 |
| { 3, 7}, // #1365 |
| { 4, 56}, // #1366 |
| { 5, 56}, // #1367 |
| { 6, 7}, // #1368 |
| { 7, 17}, // #1369 |
| { 8, 12}, // #1370 |
| {13, 8}, // #1371 |
| {14, 8}, // #1372 |
| {15, 8}, // #1373 |
| {16, 8}, // #1374 |
| { 1, 4}, // #1375 |
| { 2, 4}, // #1376 |
| { 3, 6}, // #1377 |
| { 4, 57}, // #1378 |
| { 5, 57}, // #1379 |
| { 6, 5}, // #1380 |
| { 7, 11}, // #1381 |
| { 8, 10}, // #1382 |
| {10, 1}, // #1383 |
| {11, 1}, // #1384 |
| {13, 31}, // #1385 |
| {14, 31}, // #1386 |
| {15, 31}, // #1387 |
| {16, 31}, // #1388 |
| {21, 4}, // #1389 |
| { 1, 9}, // #1390 |
| { 2, 10}, // #1391 |
| { 3, 26}, // #1392 |
| { 4, 78}, // #1393 |
| { 5, 78}, // #1394 |
| { 6, 25}, // #1395 |
| { 7, 47}, // #1396 |
| { 8, 31}, // #1397 |
| { 9, 1}, // #1398 |
| {10, 17}, // #1399 |
| {11, 17}, // #1400 |
| {14, 11}, // #1401 |
| {15, 11}, // #1402 |
| {18, 11}, // #1403 |
| {19, 11}, // #1404 |
| {20, 16}, // #1405 |
| {21, 1}, // #1406 |
| { 1, 1}, // #1407 |
| { 2, 1}, // #1408 |
| { 3, 3}, // #1409 |
| { 4, 3}, // #1410 |
| { 5, 3}, // #1411 |
| { 6, 1}, // #1412 |
| { 7, 1}, // #1413 |
| { 8, 1}, // #1414 |
| {10, 1}, // #1415 |
| {11, 1}, // #1416 |
| {15, 2}, // #1417 |
| {16, 2}, // #1418 |
| { 1, 1}, // #1419 |
| { 2, 1}, // #1420 |
| { 3, 4}, // #1421 |
| { 4, 4}, // #1422 |
| { 5, 4}, // #1423 |
| { 6, 1}, // #1424 |
| { 7, 1}, // #1425 |
| { 8, 1}, // #1426 |
| {10, 2}, // #1427 |
| {11, 2}, // #1428 |
| {15, 4}, // #1429 |
| {16, 4}, // #1430 |
| { 1, 1}, // #1431 |
| { 2, 1}, // #1432 |
| { 3, 4}, // #1433 |
| { 4, 4}, // #1434 |
| { 5, 4}, // #1435 |
| { 6, 1}, // #1436 |
| { 7, 1}, // #1437 |
| { 8, 1}, // #1438 |
| {10, 2}, // #1439 |
| {11, 2}, // #1440 |
| {15, 8}, // #1441 |
| {16, 8}, // #1442 |
| { 4, 2}, // #1443 |
| { 5, 2}, // #1444 |
| { 7, 1}, // #1445 |
| { 8, 1}, // #1446 |
| {13, 1}, // #1447 |
| {14, 1}, // #1448 |
| {15, 1}, // #1449 |
| {16, 1}, // #1450 |
| {21, 1}, // #1451 |
| { 2, 1}, // #1452 |
| { 3, 1}, // #1453 |
| { 4, 3}, // #1454 |
| { 5, 3}, // #1455 |
| { 7, 2}, // #1456 |
| { 8, 2}, // #1457 |
| { 9, 1}, // #1458 |
| {10, 1}, // #1459 |
| {11, 1}, // #1460 |
| {15, 1}, // #1461 |
| {16, 1}, // #1462 |
| { 1, 2}, // #1463 |
| { 2, 2}, // #1464 |
| { 3, 2}, // #1465 |
| { 4, 2}, // #1466 |
| { 5, 2}, // #1467 |
| { 6, 2}, // #1468 |
| { 7, 2}, // #1469 |
| { 8, 2}, // #1470 |
| {15, 1}, // #1471 |
| {19, 1}, // #1472 |
| {23, 1}, // #1473 |
| { 2, 3}, // #1474 |
| { 3, 6}, // #1475 |
| { 4, 7}, // #1476 |
| { 5, 7}, // #1477 |
| { 6, 1}, // #1478 |
| { 7, 2}, // #1479 |
| { 8, 1}, // #1480 |
| {10, 1}, // #1481 |
| {11, 1}, // #1482 |
| {20, 1}, // #1483 |
| { 2, 3}, // #1484 |
| { 3, 6}, // #1485 |
| { 4, 7}, // #1486 |
| { 5, 7}, // #1487 |
| { 6, 1}, // #1488 |
| { 7, 2}, // #1489 |
| { 8, 1}, // #1490 |
| {10, 1}, // #1491 |
| {11, 1}, // #1492 |
| {15, 1}, // #1493 |
| {16, 1}, // #1494 |
| {20, 1}, // #1495 |
| { 2, 2}, // #1496 |
| { 3, 6}, // #1497 |
| { 4, 7}, // #1498 |
| { 5, 7}, // #1499 |
| { 7, 1}, // #1500 |
| { 8, 1}, // #1501 |
| {10, 2}, // #1502 |
| {11, 2}, // #1503 |
| { 2, 2}, // #1504 |
| { 3, 6}, // #1505 |
| { 4, 7}, // #1506 |
| { 5, 7}, // #1507 |
| { 7, 1}, // #1508 |
| { 8, 1}, // #1509 |
| {10, 2}, // #1510 |
| {11, 2}, // #1511 |
| {15, 1}, // #1512 |
| {16, 1}, // #1513 |
| { 2, 1}, // #1514 |
| { 3, 3}, // #1515 |
| { 4, 3}, // #1516 |
| { 5, 3}, // #1517 |
| {10, 1}, // #1518 |
| {11, 1}, // #1519 |
| { 2, 1}, // #1520 |
| { 3, 3}, // #1521 |
| { 4, 3}, // #1522 |
| { 5, 3}, // #1523 |
| {10, 1}, // #1524 |
| {11, 1}, // #1525 |
| {15, 1}, // #1526 |
| {16, 1}, // #1527 |
| { 4, 1}, // #1528 |
| { 5, 2}, // #1529 |
| { 7, 1}, // #1530 |
| { 8, 1}, // #1531 |
| {15, 1}, // #1532 |
| {16, 1}, |