Index: include/llvm/Support/AArch64TargetParser.h =================================================================== --- include/llvm/Support/AArch64TargetParser.h +++ include/llvm/Support/AArch64TargetParser.h @@ -49,6 +49,7 @@ AEK_MTE = 1 << 19, AEK_SSBS = 1 << 20, AEK_SB = 1 << 21, + AEK_PREDRES = 1 << 22, }; enum class ArchKind { Index: include/llvm/Support/AArch64TargetParser.def =================================================================== --- include/llvm/Support/AArch64TargetParser.def +++ include/llvm/Support/AArch64TargetParser.def @@ -74,6 +74,7 @@ AARCH64_ARCH_EXT_NAME("memtag", AArch64::AEK_MTE, "+mte", "-mte") AARCH64_ARCH_EXT_NAME("ssbs", AArch64::AEK_SSBS, "+ssbs", "-ssbs") AARCH64_ARCH_EXT_NAME("sb", AArch64::AEK_SB, "+sb", "-sb") +AARCH64_ARCH_EXT_NAME("predres", AArch64::AEK_PREDRES, "+predres", "-predres") #undef AARCH64_ARCH_EXT_NAME #ifndef AARCH64_CPU_NAME Index: unittests/Support/TargetParserTest.cpp =================================================================== --- unittests/Support/TargetParserTest.cpp +++ unittests/Support/TargetParserTest.cpp @@ -989,7 +989,9 @@ {"rng", "norng", "+rand", "-rand"}, {"memtag", "nomemtag", "+mte", "-mte"}, {"ssbs", "nossbs", "+ssbs", "-ssbs"}, - {"sb", "nosb", "+sb", "-sb"}}; + {"sb", "nosb", "+sb", "-sb"}, + {"predres", "nopredres", "+predres", "-predres"} +}; for (unsigned i = 0; i < array_lengthof(ArchExt); i++) { EXPECT_EQ(StringRef(ArchExt[i][2]),