@@ -2005,6 +2005,7 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) {
2005
2005
AArch64::AEK_CPA, AArch64::AEK_PAUTHLR,
2006
2006
AArch64::AEK_TLBIW, AArch64::AEK_JSCVT,
2007
2007
AArch64::AEK_FCMA, AArch64::AEK_FP8,
2008
+ AArch64::AEK_SMEB16B16, AArch64::AEK_SVEB16B16,
2008
2009
2009
2010
};
2010
2011
@@ -2043,6 +2044,7 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) {
2043
2044
EXPECT_TRUE (llvm::is_contained (Features, " +sve2-sha3" ));
2044
2045
EXPECT_TRUE (llvm::is_contained (Features, " +sve2-bitperm" ));
2045
2046
EXPECT_TRUE (llvm::is_contained (Features, " +sve2p1" ));
2047
+ EXPECT_TRUE (llvm::is_contained (Features, " +sve-b16b16" ));
2046
2048
EXPECT_TRUE (llvm::is_contained (Features, " +b16b16" ));
2047
2049
EXPECT_TRUE (llvm::is_contained (Features, " +rcpc" ));
2048
2050
EXPECT_TRUE (llvm::is_contained (Features, " +rand" ));
@@ -2063,6 +2065,7 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) {
2063
2065
EXPECT_TRUE (llvm::is_contained (Features, " +sme-f64f64" ));
2064
2066
EXPECT_TRUE (llvm::is_contained (Features, " +sme-i16i64" ));
2065
2067
EXPECT_TRUE (llvm::is_contained (Features, " +sme-f16f16" ));
2068
+ EXPECT_TRUE (llvm::is_contained (Features, " +sme-b16b16" ));
2066
2069
EXPECT_TRUE (llvm::is_contained (Features, " +sme2" ));
2067
2070
EXPECT_TRUE (llvm::is_contained (Features, " +sme2p1" ));
2068
2071
EXPECT_TRUE (llvm::is_contained (Features, " +hbc" ));
@@ -2188,6 +2191,7 @@ TEST(TargetParserTest, AArch64ArchExtFeature) {
2188
2191
{" lse" , " nolse" , " +lse" , " -lse" },
2189
2192
{" rdm" , " nordm" , " +rdm" , " -rdm" },
2190
2193
{" sve" , " nosve" , " +sve" , " -sve" },
2194
+ {" sve-b16b16" , " nosve-b16b16" , " +sve-b16b16" , " -sve-b16b16" },
2191
2195
{" sve2" , " nosve2" , " +sve2" , " -sve2" },
2192
2196
{" sve2-aes" , " nosve2-aes" , " +sve2-aes" , " -sve2-aes" },
2193
2197
{" sve2-sm4" , " nosve2-sm4" , " +sve2-sm4" , " -sve2-sm4" },
@@ -2212,6 +2216,7 @@ TEST(TargetParserTest, AArch64ArchExtFeature) {
2212
2216
{" sme-f64f64" , " nosme-f64f64" , " +sme-f64f64" , " -sme-f64f64" },
2213
2217
{" sme-i16i64" , " nosme-i16i64" , " +sme-i16i64" , " -sme-i16i64" },
2214
2218
{" sme-f16f16" , " nosme-f16f16" , " +sme-f16f16" , " -sme-f16f16" },
2219
+ {" sme-b16b16" , " nosme-b16b16" , " +sme-b16b16" , " -sme-b16b16" },
2215
2220
{" sme2" , " nosme2" , " +sme2" , " -sme2" },
2216
2221
{" sme2p1" , " nosme2p1" , " +sme2p1" , " -sme2p1" },
2217
2222
{" hbc" , " nohbc" , " +hbc" , " -hbc" },
@@ -2452,6 +2457,12 @@ AArch64ExtensionDependenciesBaseArchTestParams
2452
2457
{AArch64::ARMV8A, {" nobf16" , " b16b16" }, {" bf16" , " b16b16" }, {}},
2453
2458
{AArch64::ARMV8A, {" b16b16" , " nobf16" }, {}, {" bf16" , " b16b16" }},
2454
2459
2460
+ // b16b16 -> {sve-b16b16, sme-b16b16}
2461
+ {AArch64::ARMV8A, {" nob16b16" , " sve-b16b16" }, {" b16b16" , " sve-b16b16" }, {}},
2462
+ {AArch64::ARMV8A, {" sve-b16b16" , " nob16b16" }, {}, {" sve-b16b16" , " b16b16" }},
2463
+ {AArch64::ARMV8A, {" nob16b16" , " sme-b16b16" }, {" b16b16" , " sme-b16b16" }, {}},
2464
+ {AArch64::ARMV8A, {" sme-b16b16" , " nob16b16" }, {}, {" b16b16" , " sme-b16b16" }},
2465
+
2455
2466
// sve -> {sve2, f32mm, f64mm}
2456
2467
{AArch64::ARMV8A, {" nosve" , " sve2" }, {" sve" , " sve2" }, {}},
2457
2468
{AArch64::ARMV8A, {" sve2" , " nosve" }, {}, {" sve" , " sve2" }},
@@ -2491,7 +2502,7 @@ AArch64ExtensionDependenciesBaseArchTestParams
2491
2502
{AArch64::ARMV8A, {" sme-fa64" , " nosme" }, {}, {" sme" , " sme-fa64" }},
2492
2503
2493
2504
// sme2 -> {sme2p1, ssve-fp8fma, ssve-fp8dot2, ssve-fp8dot4, sme-f8f16,
2494
- // sme-f8f32}
2505
+ // sme-f8f32, sme-b16b16 }
2495
2506
{AArch64::ARMV8A, {" nosme2" , " sme2p1" }, {" sme2" , " sme2p1" }, {}},
2496
2507
{AArch64::ARMV8A, {" sme2p1" , " nosme2" }, {}, {" sme2" , " sme2p1" }},
2497
2508
{AArch64::ARMV8A,
@@ -2522,6 +2533,8 @@ AArch64ExtensionDependenciesBaseArchTestParams
2522
2533
{AArch64::ARMV8A, {" sme-f8f16" , " nosme2" }, {}, {" sme2" , " sme-f8f16" }},
2523
2534
{AArch64::ARMV8A, {" nosme2" , " sme-f8f32" }, {" sme2" , " sme-f8f32" }, {}},
2524
2535
{AArch64::ARMV8A, {" sme-f8f32" , " nosme2" }, {}, {" sme2" , " sme-f8f32" }},
2536
+ {AArch64::ARMV8A, {" nosme2" , " sme-b16b16" }, {" sme2" , " sme-b16b16" }, {}},
2537
+ {AArch64::ARMV8A, {" sme-b16b16" , " nosme2" }, {}, {" sme2" , " sme-b16b16" }},
2525
2538
2526
2539
// fp8 -> {sme-f8f16, sme-f8f32}
2527
2540
{AArch64::ARMV8A, {" nofp8" , " sme-f8f16" }, {" fp8" , " sme-f8f16" }, {}},
0 commit comments