@@ -1334,6 +1334,7 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) {
13341334 AArch64::AEK_FPRCVT, AArch64::AEK_CMPBR,
13351335 AArch64::AEK_LSUI, AArch64::AEK_OCCMO,
13361336 AArch64::AEK_PCDPHINT, AArch64::AEK_POPS,
1337+ AArch64::AEK_SVEAES
13371338 };
13381339
13391340 std::vector<StringRef> Features;
@@ -1369,6 +1370,7 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) {
13691370 EXPECT_TRUE (llvm::is_contained (Features, " +sve-bfscale" ));
13701371 EXPECT_TRUE (llvm::is_contained (Features, " +sve-f16f32mm" ));
13711372 EXPECT_TRUE (llvm::is_contained (Features, " +sve2" ));
1373+ EXPECT_TRUE (llvm::is_contained (Features, " +sve-aes" ));
13721374 EXPECT_TRUE (llvm::is_contained (Features, " +sve2-aes" ));
13731375 EXPECT_TRUE (llvm::is_contained (Features, " +sve2-sm4" ));
13741376 EXPECT_TRUE (llvm::is_contained (Features, " +sve2-sha3" ));
@@ -1538,6 +1540,7 @@ TEST(TargetParserTest, AArch64ArchExtFeature) {
15381540 {" sve-bfscale" , " nosve-bfscale" , " +sve-bfscale" , " -sve-bfscale" },
15391541 {" sve-f16f32mm" , " nosve-f16f32mm" , " +sve-f16f32mm" , " -sve-f16f32mm" },
15401542 {" sve2" , " nosve2" , " +sve2" , " -sve2" },
1543+ {" sve-aes" , " nosve-aes" , " +sve-aes" , " -sve-aes" },
15411544 {" sve2-aes" , " nosve2-aes" , " +sve2-aes" , " -sve2-aes" },
15421545 {" sve2-sm4" , " nosve2-sm4" , " +sve2-sm4" , " -sve2-sm4" },
15431546 {" sve2-sha3" , " nosve2-sha3" , " +sve2-sha3" , " -sve2-sha3" },
@@ -1840,7 +1843,11 @@ AArch64ExtensionDependenciesBaseArchTestParams
18401843 {},
18411844 {" sve" , " sve-f16f32mm" }},
18421845
1843- // sve2 -> {sve2p1, sve2-bitperm, sve2-sha3, sve2-sm4}
1846+ // aes -> {sve-aes}
1847+ {AArch64::ARMV8A, {" noaes" , " sve-aes" }, {" aes" , " sve-aes" }, {}},
1848+ {AArch64::ARMV8A, {" sve-aes" , " noaes" }, {}, {" aes" , " sve-aes" }},
1849+
1850+ // sve2 -> {sve2p1, sve2-bitperm, sve2-sha3, sve2-sm4, sve2-aes}
18441851 {AArch64::ARMV8A, {" nosve2" , " sve2p1" }, {" sve2" , " sve2p1" }, {}},
18451852 {AArch64::ARMV8A, {" sve2p1" , " nosve2" }, {}, {" sve2" , " sve2p1" }},
18461853 {AArch64::ARMV8A,
@@ -1855,6 +1862,8 @@ AArch64ExtensionDependenciesBaseArchTestParams
18551862 {AArch64::ARMV8A, {" sve2-sha3" , " nosve2" }, {}, {" sve2" , " sve2-sha3" }},
18561863 {AArch64::ARMV8A, {" nosve2" , " sve2-sm4" }, {" sve2" , " sve2-sm4" }, {}},
18571864 {AArch64::ARMV8A, {" sve2-sm4" , " nosve2" }, {}, {" sve2" , " sve2-sm4" }},
1865+ {AArch64::ARMV8A, {" nosve2" , " sve2-aes" }, {" sve2" , " sve2-aes" }, {}},
1866+ {AArch64::ARMV8A, {" sve2-aes" , " nosve2" }, {}, {" sve2" , " sve2-aes" }},
18581867
18591868 // sve-b16b16 -> {sme-b16b16}
18601869 {AArch64::ARMV9_4A,
@@ -1955,15 +1964,23 @@ AArch64ExtensionDependenciesBaseArchTestParams
19551964 {AArch64::ARMV8A, {" norcpc" , " rcpc3" }, {" rcpc" , " rcpc3" }, {}},
19561965 {AArch64::ARMV8A, {" rcpc3" , " norcpc" }, {}, {" rcpc" , " rcpc3" }},
19571966
1958- // sve2-aes -> ssve-aes
1967+ // sve-aes -> {ssve-aes, sve2-aes}
1968+ {AArch64::ARMV9_6A,
1969+ {" nosve-aes" , " ssve-aes" },
1970+ {" sve-aes" , " ssve-aes" },
1971+ {}},
1972+ {AArch64::ARMV9_6A,
1973+ {" ssve-aes" , " nosve-aes" },
1974+ {},
1975+ {" ssve-aes" , " sve-aes" }},
19591976 {AArch64::ARMV9_6A,
1960- {" nosve2 -aes" , " ssve -aes" },
1961- {" sve2-aes" , " ssve -aes" },
1977+ {" nosve -aes" , " sve2 -aes" },
1978+ {" sve2-aes" , " sve -aes" },
19621979 {}},
19631980 {AArch64::ARMV9_6A,
1964- {" ssve -aes" , " nosve2 -aes" },
1981+ {" sve2 -aes" , " nosve -aes" },
19651982 {},
1966- {" ssve -aes" , " sve2 -aes" }},
1983+ {" sve2 -aes" , " sve -aes" }}
19671984};
19681985
19691986INSTANTIATE_TEST_SUITE_P (
0 commit comments