Files
gps/tools/local/circt/include/llvm/TargetParser/RISCVTargetParserDef.inc
T
2026-07-12 11:01:51 +03:00

793 lines
36 KiB
PHP

#ifdef GET_SUPPORTED_EXTENSIONS
#undef GET_SUPPORTED_EXTENSIONS
static const RISCVSupportedExtension SupportedExtensions[] = {
{"a", {2, 1}},
{"b", {1, 0}},
{"c", {2, 0}},
{"d", {2, 2}},
{"e", {2, 0}},
{"f", {2, 2}},
{"h", {1, 0}},
{"i", {2, 1}},
{"m", {2, 0}},
{"q", {2, 2}},
{"sdext", {1, 0}},
{"sdtrig", {1, 0}},
{"sha", {1, 0}},
{"shcounterenw", {1, 0}},
{"shgatpa", {1, 0}},
{"shlcofideleg", {1, 0}},
{"shtvala", {1, 0}},
{"shvsatpa", {1, 0}},
{"shvstvala", {1, 0}},
{"shvstvecd", {1, 0}},
{"smaia", {1, 0}},
{"smcdeleg", {1, 0}},
{"smcntrpmf", {1, 0}},
{"smcsrind", {1, 0}},
{"smctr", {1, 0}},
{"smdbltrp", {1, 0}},
{"smepmp", {1, 0}},
{"smmpm", {1, 0}},
{"smnpm", {1, 0}},
{"smrnmi", {1, 0}},
{"smstateen", {1, 0}},
{"ssaia", {1, 0}},
{"ssccfg", {1, 0}},
{"ssccptr", {1, 0}},
{"sscofpmf", {1, 0}},
{"sscounterenw", {1, 0}},
{"sscsrind", {1, 0}},
{"ssctr", {1, 0}},
{"ssdbltrp", {1, 0}},
{"ssnpm", {1, 0}},
{"sspm", {1, 0}},
{"ssqosid", {1, 0}},
{"ssstateen", {1, 0}},
{"ssstrict", {1, 0}},
{"sstc", {1, 0}},
{"sstvala", {1, 0}},
{"sstvecd", {1, 0}},
{"ssu64xl", {1, 0}},
{"supm", {1, 0}},
{"svade", {1, 0}},
{"svadu", {1, 0}},
{"svbare", {1, 0}},
{"svinval", {1, 0}},
{"svnapot", {1, 0}},
{"svpbmt", {1, 0}},
{"svrsw60t59b", {1, 0}},
{"svvptc", {1, 0}},
{"v", {1, 0}},
{"xaifet", {1, 0}},
{"xandesbfhcvt", {5, 0}},
{"xandesperf", {5, 0}},
{"xandesvbfhcvt", {5, 0}},
{"xandesvdot", {5, 0}},
{"xandesvpackfph", {5, 0}},
{"xandesvsinth", {5, 0}},
{"xandesvsintload", {5, 0}},
{"xcheriot", {1, 0}},
{"xcvalu", {1, 0}},
{"xcvbi", {1, 0}},
{"xcvbitmanip", {1, 0}},
{"xcvelw", {1, 0}},
{"xcvmac", {1, 0}},
{"xcvmem", {1, 0}},
{"xcvsimd", {1, 0}},
{"xmipscbop", {1, 0}},
{"xmipscmov", {1, 0}},
{"xmipsexectl", {1, 0}},
{"xmipslsp", {1, 0}},
{"xqccmp", {0, 3}},
{"xqci", {0, 13}},
{"xqcia", {0, 7}},
{"xqciac", {0, 3}},
{"xqcibi", {0, 2}},
{"xqcibm", {0, 8}},
{"xqcicli", {0, 3}},
{"xqcicm", {0, 2}},
{"xqcics", {0, 2}},
{"xqcicsr", {0, 4}},
{"xqciint", {0, 10}},
{"xqciio", {0, 1}},
{"xqcilb", {0, 2}},
{"xqcili", {0, 2}},
{"xqcilia", {0, 2}},
{"xqcilo", {0, 3}},
{"xqcilsm", {0, 6}},
{"xqcisim", {0, 2}},
{"xqcisls", {0, 2}},
{"xqcisync", {0, 3}},
{"xsfcease", {1, 0}},
{"xsfmm128t", {0, 6}},
{"xsfmm16t", {0, 6}},
{"xsfmm32a", {0, 6}},
{"xsfmm32a16f", {0, 6}},
{"xsfmm32a32f", {0, 6}},
{"xsfmm32a8f", {0, 6}},
{"xsfmm32a8i", {0, 6}},
{"xsfmm32t", {0, 6}},
{"xsfmm64a64f", {0, 6}},
{"xsfmm64t", {0, 6}},
{"xsfmmbase", {0, 6}},
{"xsfvcp", {1, 0}},
{"xsfvfbfexp16e", {0, 5}},
{"xsfvfexp16e", {0, 5}},
{"xsfvfexp32e", {0, 5}},
{"xsfvfexpa", {0, 2}},
{"xsfvfexpa64e", {0, 2}},
{"xsfvfnrclipxfqf", {1, 0}},
{"xsfvfwmaccqqq", {1, 0}},
{"xsfvqmaccdod", {1, 0}},
{"xsfvqmaccqoq", {1, 0}},
{"xsifivecdiscarddlone", {1, 0}},
{"xsifivecflushdlone", {1, 0}},
{"xsmtvdot", {1, 0}},
{"xtheadba", {1, 0}},
{"xtheadbb", {1, 0}},
{"xtheadbs", {1, 0}},
{"xtheadcmo", {1, 0}},
{"xtheadcondmov", {1, 0}},
{"xtheadfmemidx", {1, 0}},
{"xtheadmac", {1, 0}},
{"xtheadmemidx", {1, 0}},
{"xtheadmempair", {1, 0}},
{"xtheadsync", {1, 0}},
{"xtheadvdot", {1, 0}},
{"xventanacondops", {1, 0}},
{"xwchc", {2, 2}},
{"za128rs", {1, 0}},
{"za64rs", {1, 0}},
{"zaamo", {1, 0}},
{"zabha", {1, 0}},
{"zacas", {1, 0}},
{"zalasr", {1, 0}},
{"zalrsc", {1, 0}},
{"zama16b", {1, 0}},
{"zawrs", {1, 0}},
{"zba", {1, 0}},
{"zbb", {1, 0}},
{"zbc", {1, 0}},
{"zbkb", {1, 0}},
{"zbkc", {1, 0}},
{"zbkx", {1, 0}},
{"zbs", {1, 0}},
{"zca", {1, 0}},
{"zcb", {1, 0}},
{"zcd", {1, 0}},
{"zce", {1, 0}},
{"zcf", {1, 0}},
{"zclsd", {1, 0}},
{"zcmop", {1, 0}},
{"zcmp", {1, 0}},
{"zcmt", {1, 0}},
{"zdinx", {1, 0}},
{"zfa", {1, 0}},
{"zfbfmin", {1, 0}},
{"zfh", {1, 0}},
{"zfhmin", {1, 0}},
{"zfinx", {1, 0}},
{"zhinx", {1, 0}},
{"zhinxmin", {1, 0}},
{"zic64b", {1, 0}},
{"zicbom", {1, 0}},
{"zicbop", {1, 0}},
{"zicboz", {1, 0}},
{"ziccamoa", {1, 0}},
{"ziccamoc", {1, 0}},
{"ziccid", {1, 0}},
{"ziccif", {1, 0}},
{"zicclsm", {1, 0}},
{"ziccrse", {1, 0}},
{"zicntr", {2, 0}},
{"zicond", {1, 0}},
{"zicsr", {2, 0}},
{"zifencei", {2, 0}},
{"zihintntl", {1, 0}},
{"zihintpause", {2, 0}},
{"zihpm", {2, 0}},
{"zilsd", {1, 0}},
{"zimop", {1, 0}},
{"zk", {1, 0}},
{"zkn", {1, 0}},
{"zknd", {1, 0}},
{"zkne", {1, 0}},
{"zknh", {1, 0}},
{"zkr", {1, 0}},
{"zks", {1, 0}},
{"zksed", {1, 0}},
{"zksh", {1, 0}},
{"zkt", {1, 0}},
{"zmmul", {1, 0}},
{"ztso", {1, 0}},
{"zvbb", {1, 0}},
{"zvbc", {1, 0}},
{"zve32f", {1, 0}},
{"zve32x", {1, 0}},
{"zve64d", {1, 0}},
{"zve64f", {1, 0}},
{"zve64x", {1, 0}},
{"zvfbfmin", {1, 0}},
{"zvfbfwma", {1, 0}},
{"zvfh", {1, 0}},
{"zvfhmin", {1, 0}},
{"zvkb", {1, 0}},
{"zvkg", {1, 0}},
{"zvkn", {1, 0}},
{"zvknc", {1, 0}},
{"zvkned", {1, 0}},
{"zvkng", {1, 0}},
{"zvknha", {1, 0}},
{"zvknhb", {1, 0}},
{"zvks", {1, 0}},
{"zvksc", {1, 0}},
{"zvksed", {1, 0}},
{"zvksg", {1, 0}},
{"zvksh", {1, 0}},
{"zvkt", {1, 0}},
{"zvl1024b", {1, 0}},
{"zvl128b", {1, 0}},
{"zvl16384b", {1, 0}},
{"zvl2048b", {1, 0}},
{"zvl256b", {1, 0}},
{"zvl32768b", {1, 0}},
{"zvl32b", {1, 0}},
{"zvl4096b", {1, 0}},
{"zvl512b", {1, 0}},
{"zvl64b", {1, 0}},
{"zvl65536b", {1, 0}},
{"zvl8192b", {1, 0}},
};
static const RISCVSupportedExtension SupportedExperimentalExtensions[] = {
{"p", {0, 21}},
{"smpmpmt", {0, 6}},
{"svukte", {0, 3}},
{"xqccmt", {0, 1}},
{"xsfmclic", {0, 1}},
{"xsfsclic", {0, 1}},
{"y", {0, 98}},
{"zibi", {0, 1}},
{"zicfilp", {1, 0}},
{"zicfiss", {1, 0}},
{"zvabd", {0, 7}},
{"zvbc32e", {0, 7}},
{"zvdot4a8i", {0, 1}},
{"zvfbdota32f", {0, 2}},
{"zvfbfa", {0, 1}},
{"zvfofp8min", {0, 2}},
{"zvfqwbdota8f", {0, 2}},
{"zvfqwdota8f", {0, 2}},
{"zvfwbdota16bf", {0, 2}},
{"zvfwdota16bf", {0, 2}},
{"zvkgs", {0, 7}},
{"zvqwbdota16i", {0, 2}},
{"zvqwbdota8i", {0, 2}},
{"zvqwdota16i", {0, 2}},
{"zvqwdota8i", {0, 2}},
{"zvvfmm", {0, 1}},
{"zvvmm", {0, 1}},
{"zvvmtls", {0, 1}},
{"zvvmttls", {0, 1}},
{"zvzip", {0, 1}},
};
#endif // GET_SUPPORTED_EXTENSIONS
#ifdef GET_IMPLIED_EXTENSIONS
#undef GET_IMPLIED_EXTENSIONS
static constexpr ImpliedExtsEntry ImpliedExts[] = {
{ {"a"}, "zaamo"},
{ {"a"}, "zalrsc"},
{ {"b"}, "zba"},
{ {"b"}, "zbb"},
{ {"b"}, "zbs"},
{ {"c"}, "zca"},
{ {"d"}, "f"},
{ {"f"}, "zicsr"},
{ {"m"}, "zmmul"},
{ {"p"}, "zba"},
{ {"p"}, "zbb"},
{ {"p"}, "zicsr"},
{ {"p"}, "zmmul"},
{ {"q"}, "d"},
{ {"sha"}, "h"},
{ {"sha"}, "shcounterenw"},
{ {"sha"}, "shgatpa"},
{ {"sha"}, "shtvala"},
{ {"sha"}, "shvsatpa"},
{ {"sha"}, "shvstvala"},
{ {"sha"}, "shvstvecd"},
{ {"sha"}, "ssstateen"},
{ {"smctr"}, "sscsrind"},
{ {"smdbltrp"}, "zicsr"},
{ {"ssctr"}, "sscsrind"},
{ {"ssdbltrp"}, "zicsr"},
{ {"v"}, "zve64d"},
{ {"v"}, "zvl128b"},
{ {"xaifet"}, "f"},
{ {"xandesbfhcvt"}, "f"},
{ {"xandesvbfhcvt"}, "zve32f"},
{ {"xandesvdot"}, "zve32x"},
{ {"xandesvpackfph"}, "f"},
{ {"xandesvsinth"}, "zve32x"},
{ {"xandesvsintload"}, "zve32x"},
{ {"xcheriot"}, "e"},
{ {"xcheriot"}, "m"},
{ {"xcheriot"}, "zca"},
{ {"xqccmp"}, "zca"},
{ {"xqccmt"}, "zca"},
{ {"xqccmt"}, "zicsr"},
{ {"xqci"}, "xqcia"},
{ {"xqci"}, "xqciac"},
{ {"xqci"}, "xqcibi"},
{ {"xqci"}, "xqcibm"},
{ {"xqci"}, "xqcicli"},
{ {"xqci"}, "xqcicm"},
{ {"xqci"}, "xqcics"},
{ {"xqci"}, "xqcicsr"},
{ {"xqci"}, "xqciint"},
{ {"xqci"}, "xqciio"},
{ {"xqci"}, "xqcilb"},
{ {"xqci"}, "xqcili"},
{ {"xqci"}, "xqcilia"},
{ {"xqci"}, "xqcilo"},
{ {"xqci"}, "xqcilsm"},
{ {"xqci"}, "xqcisim"},
{ {"xqci"}, "xqcisls"},
{ {"xqci"}, "xqcisync"},
{ {"xqciac"}, "zca"},
{ {"xqcibi"}, "zca"},
{ {"xqcibm"}, "zca"},
{ {"xqcicm"}, "zca"},
{ {"xqciint"}, "zca"},
{ {"xqcilb"}, "zca"},
{ {"xqcili"}, "zca"},
{ {"xqcilia"}, "zca"},
{ {"xqcilo"}, "zca"},
{ {"xqcisim"}, "zca"},
{ {"xqcisync"}, "zca"},
{ {"xsfmm128t"}, "xsfmmbase"},
{ {"xsfmm128t"}, "zvl512b"},
{ {"xsfmm16t"}, "xsfmmbase"},
{ {"xsfmm16t"}, "zvl64b"},
{ {"xsfmm32a"}, "xsfmm32a16f"},
{ {"xsfmm32a"}, "xsfmm32a32f"},
{ {"xsfmm32a"}, "xsfmm32a8i"},
{ {"xsfmm32a16f"}, "xsfmmbase"},
{ {"xsfmm32a16f"}, "zve32f"},
{ {"xsfmm32a32f"}, "xsfmmbase"},
{ {"xsfmm32a32f"}, "zve32f"},
{ {"xsfmm32a8f"}, "xsfmmbase"},
{ {"xsfmm32a8f"}, "zve32f"},
{ {"xsfmm32a8i"}, "xsfmmbase"},
{ {"xsfmm32t"}, "xsfmmbase"},
{ {"xsfmm32t"}, "zvl128b"},
{ {"xsfmm64a64f"}, "xsfmmbase"},
{ {"xsfmm64a64f"}, "zve64d"},
{ {"xsfmm64t"}, "xsfmmbase"},
{ {"xsfmm64t"}, "zvl256b"},
{ {"xsfmmbase"}, "zve32x"},
{ {"xsfvcp"}, "zve32x"},
{ {"xsfvfexp16e"}, "zvfh"},
{ {"xsfvfexp32e"}, "zve32f"},
{ {"xsfvfexpa"}, "zve32f"},
{ {"xsfvfexpa64e"}, "xsfvfexpa"},
{ {"xsfvfexpa64e"}, "zve64d"},
{ {"xsfvfnrclipxfqf"}, "zve32f"},
{ {"xsfvfwmaccqqq"}, "zvfbfmin"},
{ {"xsfvfwmaccqqq"}, "zvl128b"},
{ {"xsfvqmaccdod"}, "zve32x"},
{ {"xsfvqmaccdod"}, "zvl128b"},
{ {"xsfvqmaccqoq"}, "zve32x"},
{ {"xsfvqmaccqoq"}, "zvl256b"},
{ {"xsmtvdot"}, "zve32f"},
{ {"xtheadvdot"}, "v"},
{ {"xwchc"}, "zca"},
{ {"zabha"}, "zaamo"},
{ {"zacas"}, "zaamo"},
{ {"zbc"}, "zbkc"},
{ {"zcb"}, "zca"},
{ {"zcd"}, "d"},
{ {"zcd"}, "zca"},
{ {"zce"}, "zca"},
{ {"zce"}, "zcb"},
{ {"zce"}, "zcmp"},
{ {"zce"}, "zcmt"},
{ {"zcf"}, "f"},
{ {"zcf"}, "zca"},
{ {"zclsd"}, "zca"},
{ {"zclsd"}, "zilsd"},
{ {"zcmop"}, "zca"},
{ {"zcmp"}, "zca"},
{ {"zcmt"}, "zca"},
{ {"zcmt"}, "zicsr"},
{ {"zdinx"}, "zfinx"},
{ {"zfa"}, "f"},
{ {"zfbfmin"}, "f"},
{ {"zfh"}, "zfhmin"},
{ {"zfhmin"}, "f"},
{ {"zfinx"}, "zicsr"},
{ {"zhinx"}, "zhinxmin"},
{ {"zhinxmin"}, "zfinx"},
{ {"ziccid"}, "ziccif"},
{ {"zicfilp"}, "zicsr"},
{ {"zicfiss"}, "zicsr"},
{ {"zicfiss"}, "zimop"},
{ {"zicntr"}, "zicsr"},
{ {"zihpm"}, "zicsr"},
{ {"zk"}, "zkn"},
{ {"zk"}, "zkr"},
{ {"zk"}, "zkt"},
{ {"zkn"}, "zbkb"},
{ {"zkn"}, "zbkc"},
{ {"zkn"}, "zbkx"},
{ {"zkn"}, "zknd"},
{ {"zkn"}, "zkne"},
{ {"zkn"}, "zknh"},
{ {"zks"}, "zbkb"},
{ {"zks"}, "zbkc"},
{ {"zks"}, "zbkx"},
{ {"zks"}, "zksed"},
{ {"zks"}, "zksh"},
{ {"zvbb"}, "zvkb"},
{ {"zvbc"}, "zve64x"},
{ {"zvbc32e"}, "zve32x"},
{ {"zvdot4a8i"}, "zve32x"},
{ {"zve32f"}, "f"},
{ {"zve32f"}, "zve32x"},
{ {"zve32x"}, "zicsr"},
{ {"zve32x"}, "zvl32b"},
{ {"zve64d"}, "d"},
{ {"zve64d"}, "zve64f"},
{ {"zve64f"}, "zve32f"},
{ {"zve64f"}, "zve64x"},
{ {"zve64x"}, "zve32x"},
{ {"zve64x"}, "zvl64b"},
{ {"zvfbdota32f"}, "zve32f"},
{ {"zvfbfa"}, "zfbfmin"},
{ {"zvfbfa"}, "zve32f"},
{ {"zvfbfmin"}, "zve32f"},
{ {"zvfbfwma"}, "zfbfmin"},
{ {"zvfbfwma"}, "zvfbfmin"},
{ {"zvfh"}, "zfhmin"},
{ {"zvfh"}, "zvfhmin"},
{ {"zvfhmin"}, "zve32f"},
{ {"zvfofp8min"}, "zve32f"},
{ {"zvfqwbdota8f"}, "zve32f"},
{ {"zvfqwdota8f"}, "zve32f"},
{ {"zvfwbdota16bf"}, "zve32f"},
{ {"zvfwdota16bf"}, "zve32f"},
{ {"zvkb"}, "zve32x"},
{ {"zvkg"}, "zve32x"},
{ {"zvkgs"}, "zvkg"},
{ {"zvkn"}, "zvkb"},
{ {"zvkn"}, "zvkned"},
{ {"zvkn"}, "zvknhb"},
{ {"zvkn"}, "zvkt"},
{ {"zvknc"}, "zvbc"},
{ {"zvknc"}, "zvkn"},
{ {"zvkned"}, "zve32x"},
{ {"zvkng"}, "zvkg"},
{ {"zvkng"}, "zvkn"},
{ {"zvknha"}, "zve32x"},
{ {"zvknhb"}, "zve64x"},
{ {"zvknhb"}, "zvknha"},
{ {"zvks"}, "zvkb"},
{ {"zvks"}, "zvksed"},
{ {"zvks"}, "zvksh"},
{ {"zvks"}, "zvkt"},
{ {"zvksc"}, "zvbc"},
{ {"zvksc"}, "zvks"},
{ {"zvksed"}, "zve32x"},
{ {"zvksg"}, "zvkg"},
{ {"zvksg"}, "zvks"},
{ {"zvksh"}, "zve32x"},
{ {"zvl1024b"}, "zvl512b"},
{ {"zvl128b"}, "zvl64b"},
{ {"zvl16384b"}, "zvl8192b"},
{ {"zvl2048b"}, "zvl1024b"},
{ {"zvl256b"}, "zvl128b"},
{ {"zvl32768b"}, "zvl16384b"},
{ {"zvl4096b"}, "zvl2048b"},
{ {"zvl512b"}, "zvl256b"},
{ {"zvl64b"}, "zvl32b"},
{ {"zvl65536b"}, "zvl32768b"},
{ {"zvl8192b"}, "zvl4096b"},
{ {"zvqwbdota16i"}, "zve64x"},
{ {"zvqwbdota8i"}, "zve32x"},
{ {"zvqwdota16i"}, "zve64x"},
{ {"zvqwdota8i"}, "zve32x"},
{ {"zvvfmm"}, "zve32f"},
{ {"zvvmm"}, "zve32x"},
{ {"zvvmtls"}, "zve32x"},
{ {"zvvmttls"}, "zve32x"},
{ {"zvzip"}, "zve32x"},
};
#endif // GET_IMPLIED_EXTENSIONS
#ifdef GET_SUPPORTED_PROFILES
#undef GET_SUPPORTED_PROFILES
static constexpr RISCVProfile SupportedProfiles[] = {
{"rva20s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_za128rs1p0_ssccptr1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0"},
{"rva20u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_za128rs1p0"},
{"rva22s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_ssccptr1p0_sscounterenw1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svpbmt1p0"},
{"rva22u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0"},
{"rva23s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_sha1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"},
{"rva23u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_supm1p0"},
{"rvb23s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zkt1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"},
{"rvb23u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zkt1p0"},
{"rvi20u32","rv32i2p1"},
{"rvi20u64","rv64i2p1"},
};
static constexpr RISCVProfile SupportedExperimentalProfiles[] = {
{"rvm23u32","rv32i2p1_m2p0_b1p0_zicbop1p0_zicond1p0_zihintntl1p0_zihintpause2p0_zimop1p0_zce1p0_zcmop1p0"},
};
#endif // GET_SUPPORTED_PROFILES
#ifndef PROC
#define PROC(ENUM, NAME, DEFAULT_MARCH, FAST_SCALAR_UNALIGN, FAST_VECTOR_UNALIGN, MVENDORID, MARCHID, MIMPID)
#endif
PROC(AINEKKO_ERBIUM, {"an-erbium"}, {"rv64m2p0_f2p2_c2p0_xaifet1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(ANDES_A25, {"andes-a25"}, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(ANDES_A45, {"andes-a45"}, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(ANDES_AX25, {"andes-ax25"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(ANDES_AX45, {"andes-ax45"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(ANDES_AX45MPV, {"andes-ax45mpv"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(ANDES_N45, {"andes-n45"}, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(ANDES_NX45, {"andes-nx45"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(ESPERANTO_SOC1, {"et-soc1"}, {"rv64m2p0_f2p2_c2p0_xaifet1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(GENERIC_RV32, {"generic-rv32"}, {"rv32i2p1"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(GENERIC_RV64, {"generic-rv64"}, {"rv64i2p1"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(MIPS_P8700, {"mips-p8700"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_xmipscbop1p0_xmipscmov1p0_xmipsexectl1p0_xmipslsp1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(ROCKET_RV32, {"rocket-rv32"}, {"rv32i2p1_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(ROCKET_RV64, {"rocket-rv64"}, {"rv64i2p1_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(RP2350_HAZARD3, {"rp2350-hazard3"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0_zcb1p0_zcmp1p0_zba1p0_zbb1p0_zbkb1p0_zbs1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_E20, {"sifive-e20"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_E21, {"sifive-e21"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_E24, {"sifive-e24"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_E31, {"sifive-e31"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_E34, {"sifive-e34"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_E76, {"sifive-e76"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_P450, {"sifive-p450"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_P470, {"sifive-p470"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0_xsifivecdiscarddlone1p0_xsifivecflushdlone1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_P550, {"sifive-p550"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zba1p0_zbb1p0"}, 0, 0, 0x00000489, 0x8000000000000008, 0x0000000006220425)
PROC(SIFIVE_P670, {"sifive-p670"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_P870_D, {"sifive-p870-d"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zama16b1p0_zawrs1p0_zfa1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkr1p0_zkt1p0_zvbb1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvfhmin1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvkt1p0_zvl128b1p0_supm1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_S21, {"sifive-s21"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_S51, {"sifive-s51"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_S54, {"sifive-s54"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_S76, {"sifive-s76"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zihintpause2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_U54, {"sifive-u54"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_U74, {"sifive-u74"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_X160, {"sifive-x160"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_b1p0_zicbom1p0_zicbop1p0_zicboz1p0_zicfilp1p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zawrs1p0_zfa1p0_zfbfmin1p0_zfh1p0_zcb1p0_zce1p0_zcf1p0_zcmop1p0_zcmp1p0_zcmt1p0_zkt1p0_zvbb1p0_zvdot4a8i0p1_zve32f1p0_zve32x1p0_zvfbfa0p1_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvkt1p0_zvl128b1p0_xsfcease1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_X180, {"sifive-x180"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_ziccrse1p0_zicfilp1p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfbfmin1p0_zfh1p0_zcb1p0_zcd1p0_zcmop1p0_zkt1p0_zvbb1p0_zvdot4a8i0p1_zvfbfa0p1_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvkb1p0_zvkt1p0_zvl128b1p0_xsfcease1p0_xsfvfbfexp16e0p5_xsfvfexp16e0p5_xsfvfexp32e0p5_xsfvfexpa0p2_xsifivecflushdlone1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_X280, {"sifive-x280"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zifencei2p0_zfh1p0_zba1p0_zbb1p0_zvfh1p0_zvl512b1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SIFIVE_X390, {"sifive-x390"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_ziccrse1p0_zicfilp1p0_zicfiss1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfh1p0_zcb1p0_zcmop1p0_zkr1p0_zkt1p0_zvbb1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvkt1p0_zvl1024b1p0_xsifivecdiscarddlone1p0_xsifivecflushdlone1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SPACEMIT_A100, {"spacemit-a100"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfbfmin1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zbc1p0_zbkc1p0_zkt1p0_zvbb1p0_zvbc1p0_zvfbfwma1p0_zvfh1p0_zvfhmin1p0_zvkng1p0_zvknha1p0_zvksc1p0_zvksg1p0_zvkt1p0_zvl1024b1p0_smepmp1p0_smnpm1p0_smstateen1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_sspm1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"}, 1, 0, 0x00000710, 0x8000000041000002, 0x10000000d5686200)
PROC(SPACEMIT_X60, {"spacemit-x60"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfh1p0_zfhmin1p0_zbc1p0_zbkc1p0_zkt1p0_zvfh1p0_zvkt1p0_zvl256b1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0_xsmtvdot1p0"}, 1, 0, 0x00000710, 0x8000000058000001, 0x1000000049772200)
PROC(SPACEMIT_X100, {"spacemit-x100"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfbfmin1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zbc1p0_zbkc1p0_zkt1p0_zvbb1p0_zvbc1p0_zvfbfwma1p0_zvfh1p0_zvfhmin1p0_zvkng1p0_zvknha1p0_zvksc1p0_zvksg1p0_zvkt1p0_zvl256b1p0_sha1p0_smepmp1p0_smnpm1p0_smstateen1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_sspm1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0_xsmtvdot1p0"}, 1, 0, 0x00000710, 0x8000000058000002, 0x0000000033d8a600)
PROC(SYNTACORE_SCR1_BASE, {"syntacore-scr1-base"}, {"rv32i2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SYNTACORE_SCR1_MAX, {"syntacore-scr1-max"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SYNTACORE_SCR3_RV32, {"syntacore-scr3-rv32"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SYNTACORE_SCR3_RV64, {"syntacore-scr3-rv64"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SYNTACORE_SCR4_RV32, {"syntacore-scr4-rv32"}, {"rv32i2p1_m2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SYNTACORE_SCR4_RV64, {"syntacore-scr4-rv64"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SYNTACORE_SCR5_RV32, {"syntacore-scr5-rv32"}, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SYNTACORE_SCR5_RV64, {"syntacore-scr5-rv64"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(SYNTACORE_SCR7, {"syntacore-scr7"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_zkn1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(TENSTORRENT_ASCALON_X, {"tt-ascalon-x"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfbfmin1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkr1p0_zkt1p0_zvbb1p0_zvbc1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvfhmin1p0_zvkng1p0_zvkt1p0_zvl256b1p0_sha1p0_smaia1p0_smmpm1p0_smnpm1p0_smrnmi1p0_smstateen1p0_ssaia1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_ssstrict1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(VENTANA_VEYRON_V1, {"veyron-v1"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicbom1p0_zicbop1p0_zicboz1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_xventanacondops1p0"}, 0, 0, 0x0000061f, 0x8000000000010000, 0x0000000000000111)
PROC(XIANGSHAN_KUNMINGHU, {"xiangshan-kunminghu"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zacas1p0_zawrs1p0_zfa1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zbc1p0_zkn1p0_zks1p0_zkt1p0_zvbb1p0_zvfh1p0_zvfhmin1p0_zvkt1p0_zvl128b1p0_sha1p0_smaia1p0_smcsrind1p0_smdbltrp1p0_smmpm1p0_smnpm1p0_smrnmi1p0_smstateen1p0_ssaia1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sscsrind1p0_ssdbltrp1p0_ssnpm1p0_sspm1p0_ssstrict1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(XIANGSHAN_NANHU, {"xiangshan-nanhu"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicbom1p0_zicboz1p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_zkn1p0_zksed1p0_zksh1p0_svinval1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(XUANTIE_C910V2, {"xt-c910v2"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfbfmin1p0_zfh1p0_zca1p0_zcb1p0_zcd1p0_zcmop1p0_zbc1p0_zkt1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0_xtheadba1p0_xtheadbb1p0_xtheadbs1p0_xtheadcmo1p0_xtheadcondmov1p0_xtheadfmemidx1p0_xtheadmac1p0_xtheadmemidx1p0_xtheadmempair1p0_xtheadsync1p0"}, 1, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
PROC(XUANTIE_C920V2, {"xt-c920v2"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfbfmin1p0_zfh1p0_zca1p0_zcb1p0_zcd1p0_zcmop1p0_zbc1p0_zkt1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0_xtheadba1p0_xtheadbb1p0_xtheadbs1p0_xtheadcmo1p0_xtheadcondmov1p0_xtheadfmemidx1p0_xtheadmac1p0_xtheadmemidx1p0_xtheadmempair1p0_xtheadsync1p0_xtheadvdot1p0"}, 1, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
#undef PROC
#ifndef TUNE_PROC
#define TUNE_PROC(ENUM, NAME)
#endif
TUNE_PROC(ANDES_45, "andes-45-series")
TUNE_PROC(GENERIC, "generic")
TUNE_PROC(GENERIC_OOO, "generic-ooo")
TUNE_PROC(ROCKET, "rocket")
TUNE_PROC(SIFIVE_7, "sifive-7-series")
#undef TUNE_PROC
#ifdef GET_RISCVExtensionBitmaskTable_IMPL
static const RISCVExtensionBitmask ExtensionBitmask[]={
{"a", 0, 0ULL},
{"b", 0, 1ULL},
{"c", 0, 2ULL},
{"d", 0, 3ULL},
{"e", 0, 4ULL},
{"f", 0, 5ULL},
{"h", 0, 7ULL},
{"i", 0, 8ULL},
{"m", 0, 12ULL},
{"q", 0, 16ULL},
{"v", 0, 21ULL},
{"zacas", 0, 26ULL},
{"zba", 0, 27ULL},
{"zbb", 0, 28ULL},
{"zbc", 0, 29ULL},
{"zbkb", 0, 30ULL},
{"zbkc", 0, 31ULL},
{"zbkx", 0, 32ULL},
{"zbs", 0, 33ULL},
{"zfa", 0, 34ULL},
{"zfh", 0, 35ULL},
{"zfhmin", 0, 36ULL},
{"zicboz", 0, 37ULL},
{"zicond", 0, 38ULL},
{"zihintntl", 0, 39ULL},
{"zihintpause", 0, 40ULL},
{"zknd", 0, 41ULL},
{"zkne", 0, 42ULL},
{"zknh", 0, 43ULL},
{"zksed", 0, 44ULL},
{"zksh", 0, 45ULL},
{"zkt", 0, 46ULL},
{"ztso", 0, 47ULL},
{"zvbb", 0, 48ULL},
{"zvbc", 0, 49ULL},
{"zvfh", 0, 50ULL},
{"zvfhmin", 0, 51ULL},
{"zvkb", 0, 52ULL},
{"zvkg", 0, 53ULL},
{"zvkned", 0, 54ULL},
{"zvknha", 0, 55ULL},
{"zvknhb", 0, 56ULL},
{"zvksed", 0, 57ULL},
{"zvksh", 0, 58ULL},
{"zvkt", 0, 59ULL},
{"zve32x", 0, 60ULL},
{"zve32f", 0, 61ULL},
{"zve64x", 0, 62ULL},
{"zve64f", 0, 63ULL},
{"zve64d", 1, 0ULL},
{"zimop", 1, 1ULL},
{"zca", 1, 2ULL},
{"zcb", 1, 3ULL},
{"zcd", 1, 4ULL},
{"zcf", 1, 5ULL},
{"zcmop", 1, 6ULL},
{"zawrs", 1, 7ULL},
{"zilsd", 1, 8ULL},
{"zclsd", 1, 9ULL},
{"zcmp", 1, 10ULL},
{"zifencei", 1, 11ULL},
{"zmmul", 1, 12ULL},
{"zibi", 1, 13ULL},
{"supm", 1, 14ULL},
{"zicntr", 1, 15ULL},
{"zihpm", 1, 16ULL},
{"zfbfmin", 1, 17ULL},
{"zvfbfmin", 1, 18ULL},
{"zvfbfwma", 1, 19ULL},
{"zicbom", 1, 20ULL},
{"zaamo", 1, 21ULL},
{"zalrsc", 1, 22ULL},
{"zabha", 1, 23ULL},
{"zalasr", 1, 24ULL},
{"zicbop", 1, 25ULL},
{"zicfiss", 1, 27ULL},
};
#undef GET_RISCVExtensionBitmaskTable_IMPL
#endif // GET_RISCVExtensionBitmaskTable_IMPL
#ifdef GET_TUNE_FEATURES
#undef GET_TUNE_FEATURES
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Woverlength-strings"
#endif
static constexpr char TuneFeatureStringsStorage[] =
"\0"
"conditional-cmv-fusion\0"
"no-conditional-cmv-fusion\0"
"disable-latency-sched-heuristic\0"
"enable-latency-sched-heuristic\0"
"disable-misched-load-clustering\0"
"enable-misched-load-clustering\0"
"disable-misched-store-clustering\0"
"enable-misched-store-clustering\0"
"disable-postmisched-load-clustering\0"
"enable-postmisched-load-clustering\0"
"disable-postmisched-store-clustering\0"
"enable-postmisched-store-clustering\0"
"single-element-vec-fp64\0"
"full-vec-fp64\0"
"no-default-unroll\0"
"enable-default-unroll\0"
"no-sink-splat-operands\0"
"sink-splat-operands\0"
"use-postra-scheduler\0"
"no-use-postra-scheduler\0"
"predictable-select-expensive\0"
"no-predictable-select-expensive\0"
"prefer-ascending-load-store\0"
"no-prefer-ascending-load-store\0"
"prefer-vsetvli-over-read-vlenb\0"
"no-prefer-vsetvli-over-read-vlenb\0"
"prefer-w-inst\0"
"no-prefer-w-inst\0"
"short-forward-branch-ialu\0"
"no-short-forward-branch-ialu\0"
"short-forward-branch-iload\0"
"no-short-forward-branch-iload\0"
"short-forward-branch-iminmax\0"
"no-short-forward-branch-iminmax\0"
"short-forward-branch-imul\0"
"no-short-forward-branch-imul\0"
"vl-dependent-latency\0"
"no-vl-dependent-latency\0"
"vxrm-pipeline-flush\0"
"no-vxrm-pipeline-flush\0"
;
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
static constexpr llvm::StringTable
TuneFeatureStrings = TuneFeatureStringsStorage;
static constexpr RISCVTuneFeature TuneFeatures[] = {
{ 1, 24, 1 }, // 'conditional-cmv-fusion'
{ 50, 82, 50 }, // 'disable-latency-sched-heuristic'
{ 113, 145, 113 }, // 'disable-misched-load-clustering'
{ 176, 209, 176 }, // 'disable-misched-store-clustering'
{ 241, 277, 241 }, // 'disable-postmisched-load-clustering'
{ 312, 349, 312 }, // 'disable-postmisched-store-clustering'
{ 385, 409, 385 }, // 'single-element-vec-fp64'
{ 423, 441, 423 }, // 'no-default-unroll'
{ 463, 486, 463 }, // 'no-sink-splat-operands'
{ 506, 527, 506 }, // 'use-postra-scheduler'
{ 551, 580, 551 }, // 'predictable-select-expensive'
{ 612, 640, 612 }, // 'prefer-ascending-load-store'
{ 671, 702, 671 }, // 'prefer-vsetvli-over-read-vlenb'
{ 736, 750, 736 }, // 'prefer-w-inst'
{ 767, 793, 767 }, // 'short-forward-branch-ialu'
{ 822, 849, 822 }, // 'short-forward-branch-iload'
{ 879, 908, 879 }, // 'short-forward-branch-iminmax'
{ 940, 966, 940 }, // 'short-forward-branch-imul'
{ 995, 1016, 995 }, // 'vl-dependent-latency'
{ 1040, 1060, 1040 }, // 'vxrm-pipeline-flush'
};
static constexpr RISCVImpliedTuneFeature ImpliedTuneFeatures[] = {
{ 822, 767 }, // 'short-forward-branch-iload' -> 'short-forward-branch-ialu'
{ 879, 767 }, // 'short-forward-branch-iminmax' -> 'short-forward-branch-ialu'
{ 940, 767 }, // 'short-forward-branch-imul' -> 'short-forward-branch-ialu'
};
#endif // GET_TUNE_FEATURES
#ifdef GET_CONFIGURABLE_TUNE_FEATURES
#undef GET_CONFIGURABLE_TUNE_FEATURES
static constexpr RISCVConfigurableTuneFeatures ConfigurableTuneFeatures[] = {
{ { "sifive-x180" }, 385 },
{ { "sifive-x180" }, 409 },
{ { "sifive-x280" }, 385 },
{ { "sifive-x280" }, 409 },
{ { "sifive-x390" }, 385 },
{ { "sifive-x390" }, 409 },
};
#endif // GET_CONFIGURABLE_TUNE_FEATURES