@@ -620,6 +620,61 @@ TEST(TripleTest, ParsedIDs) {
620620 EXPECT_EQ (Triple::UnknownEnvironment, T.getEnvironment ());
621621 EXPECT_TRUE (T.isArch32Bit ());
622622
623+ T = Triple (" dxil-unknown-shadermodel-pixel" );
624+ EXPECT_EQ (Triple::dxil, T.getArch ());
625+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
626+ EXPECT_EQ (Triple::ShaderModel, T.getOS ());
627+ EXPECT_EQ (Triple::Pixel, T.getEnvironment ());
628+
629+ T = Triple (" dxil-unknown-shadermodel-vertex" );
630+ EXPECT_EQ (Triple::dxil, T.getArch ());
631+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
632+ EXPECT_EQ (Triple::ShaderModel, T.getOS ());
633+ EXPECT_EQ (Triple::Vertex, T.getEnvironment ());
634+
635+ T = Triple (" dxil-unknown-shadermodel-geometry" );
636+ EXPECT_EQ (Triple::dxil, T.getArch ());
637+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
638+ EXPECT_EQ (Triple::ShaderModel, T.getOS ());
639+ EXPECT_EQ (Triple::Geometry, T.getEnvironment ());
640+
641+
642+ T = Triple (" dxil-unknown-shadermodel-hull" );
643+ EXPECT_EQ (Triple::dxil, T.getArch ());
644+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
645+ EXPECT_EQ (Triple::ShaderModel, T.getOS ());
646+ EXPECT_EQ (Triple::Hull, T.getEnvironment ());
647+
648+ T = Triple (" dxil-unknown-shadermodel-domain" );
649+ EXPECT_EQ (Triple::dxil, T.getArch ());
650+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
651+ EXPECT_EQ (Triple::ShaderModel, T.getOS ());
652+ EXPECT_EQ (Triple::Domain, T.getEnvironment ());
653+
654+ T = Triple (" dxil-unknown-shadermodel-compute" );
655+ EXPECT_EQ (Triple::dxil, T.getArch ());
656+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
657+ EXPECT_EQ (Triple::ShaderModel, T.getOS ());
658+ EXPECT_EQ (Triple::Compute, T.getEnvironment ());
659+
660+ T = Triple (" dxil-unknown-shadermodel-library" );
661+ EXPECT_EQ (Triple::dxil, T.getArch ());
662+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
663+ EXPECT_EQ (Triple::ShaderModel, T.getOS ());
664+ EXPECT_EQ (Triple::Library, T.getEnvironment ());
665+
666+ T = Triple (" dxil-unknown-shadermodel-mesh" );
667+ EXPECT_EQ (Triple::dxil, T.getArch ());
668+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
669+ EXPECT_EQ (Triple::ShaderModel, T.getOS ());
670+ EXPECT_EQ (Triple::Mesh, T.getEnvironment ());
671+
672+ T = Triple (" dxil-unknown-shadermodel-amplification" );
673+ EXPECT_EQ (Triple::dxil, T.getArch ());
674+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
675+ EXPECT_EQ (Triple::ShaderModel, T.getOS ());
676+ EXPECT_EQ (Triple::Amplification, T.getEnvironment ());
677+
623678 T = Triple (" huh" );
624679 EXPECT_EQ (Triple::UnknownArch, T.getArch ());
625680}
@@ -973,6 +1028,12 @@ TEST(TripleTest, BitWidthPredicates) {
9731028 EXPECT_FALSE (T.isArch32Bit ());
9741029 EXPECT_TRUE (T.isArch64Bit ());
9751030 EXPECT_TRUE (T.isLoongArch ());
1031+
1032+ T.setArch (Triple::dxil);
1033+ EXPECT_FALSE (T.isArch16Bit ());
1034+ EXPECT_TRUE (T.isArch32Bit ());
1035+ EXPECT_FALSE (T.isArch64Bit ());
1036+ EXPECT_TRUE (T.isDXIL ());
9761037}
9771038
9781039TEST (TripleTest, BitWidthArchVariants) {
@@ -1163,6 +1224,10 @@ TEST(TripleTest, BitWidthArchVariants) {
11631224 T.setArch (Triple::xcore);
11641225 EXPECT_EQ (Triple::xcore, T.get32BitArchVariant ().getArch ());
11651226 EXPECT_EQ (Triple::UnknownArch, T.get64BitArchVariant ().getArch ());
1227+
1228+ T.setArch (Triple::dxil);
1229+ EXPECT_EQ (Triple::dxil, T.get32BitArchVariant ().getArch ());
1230+ EXPECT_EQ (Triple::UnknownArch, T.get64BitArchVariant ().getArch ());
11661231}
11671232
11681233TEST (TripleTest, EndianArchVariants) {
@@ -1311,6 +1376,11 @@ TEST(TripleTest, EndianArchVariants) {
13111376 EXPECT_TRUE (T.isLittleEndian ());
13121377 EXPECT_EQ (Triple::UnknownArch, T.getBigEndianArchVariant ().getArch ());
13131378 EXPECT_EQ (Triple::loongarch64, T.getLittleEndianArchVariant ().getArch ());
1379+
1380+ T.setArch (Triple::dxil);
1381+ EXPECT_TRUE (T.isLittleEndian ());
1382+ EXPECT_EQ (Triple::UnknownArch, T.getBigEndianArchVariant ().getArch ());
1383+ EXPECT_EQ (Triple::dxil, T.getLittleEndianArchVariant ().getArch ());
13141384}
13151385
13161386TEST (TripleTest, getOSVersion) {
@@ -1451,6 +1521,22 @@ TEST(TripleTest, getOSVersion) {
14511521 T = Triple (" x86_64-apple-driverkit" );
14521522 Version = T.getDriverKitVersion ();
14531523 EXPECT_EQ (VersionTuple (19 , 0 ), Version);
1524+
1525+ T = Triple (" dxil-unknown-shadermodel6.6-pixel" );
1526+ EXPECT_EQ (Triple::dxil, T.getArch ());
1527+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
1528+ EXPECT_EQ (Triple::ShaderModel, T.getOS ());
1529+ Version = T.getOSVersion ();
1530+ EXPECT_EQ (VersionTuple (6 , 6 ), Version);
1531+ EXPECT_EQ (Triple::Pixel, T.getEnvironment ());
1532+
1533+ T = Triple (" dxil-unknown-shadermodel6.0-pixel" );
1534+ EXPECT_EQ (Triple::dxil, T.getArch ());
1535+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
1536+ EXPECT_EQ (Triple::ShaderModel, T.getOS ());
1537+ Version = T.getOSVersion ();
1538+ EXPECT_EQ (VersionTuple (6 , 0 ), Version);
1539+ EXPECT_EQ (Triple::Pixel, T.getEnvironment ());
14541540}
14551541
14561542TEST (TripleTest, getEnvironmentVersion) {
0 commit comments