@@ -868,109 +868,192 @@ TEST(TripleTest, ParsedIDs) {
868
868
869
869
T = Triple (" dxil-unknown-shadermodel-pixel" );
870
870
EXPECT_EQ (Triple::dxil, T.getArch ());
871
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
871
872
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
872
873
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
873
874
EXPECT_EQ (Triple::Pixel, T.getEnvironment ());
874
875
EXPECT_FALSE (T.supportsCOMDAT ());
875
876
876
877
T = Triple (" dxil-unknown-shadermodel-vertex" );
877
878
EXPECT_EQ (Triple::dxil, T.getArch ());
879
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
878
880
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
879
881
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
880
882
EXPECT_EQ (Triple::Vertex, T.getEnvironment ());
881
883
EXPECT_FALSE (T.supportsCOMDAT ());
882
884
883
885
T = Triple (" dxil-unknown-shadermodel-geometry" );
884
886
EXPECT_EQ (Triple::dxil, T.getArch ());
887
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
885
888
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
886
889
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
887
890
EXPECT_EQ (Triple::Geometry, T.getEnvironment ());
888
891
EXPECT_FALSE (T.supportsCOMDAT ());
889
892
890
893
T = Triple (" dxil-unknown-shadermodel-hull" );
891
894
EXPECT_EQ (Triple::dxil, T.getArch ());
895
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
892
896
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
893
897
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
894
898
EXPECT_EQ (Triple::Hull, T.getEnvironment ());
895
899
EXPECT_FALSE (T.supportsCOMDAT ());
896
900
897
901
T = Triple (" dxil-unknown-shadermodel-domain" );
898
902
EXPECT_EQ (Triple::dxil, T.getArch ());
903
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
899
904
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
900
905
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
901
906
EXPECT_EQ (Triple::Domain, T.getEnvironment ());
902
907
EXPECT_FALSE (T.supportsCOMDAT ());
903
908
904
909
T = Triple (" dxil-unknown-shadermodel-compute" );
905
910
EXPECT_EQ (Triple::dxil, T.getArch ());
911
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
906
912
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
907
913
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
908
914
EXPECT_EQ (Triple::Compute, T.getEnvironment ());
909
915
EXPECT_FALSE (T.supportsCOMDAT ());
910
916
911
917
T = Triple (" dxil-unknown-shadermodel-library" );
912
918
EXPECT_EQ (Triple::dxil, T.getArch ());
919
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
913
920
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
914
921
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
915
922
EXPECT_EQ (Triple::Library, T.getEnvironment ());
916
923
EXPECT_FALSE (T.supportsCOMDAT ());
917
924
918
925
T = Triple (" dxil-unknown-shadermodel-raygeneration" );
919
926
EXPECT_EQ (Triple::dxil, T.getArch ());
927
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
920
928
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
921
929
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
922
930
EXPECT_EQ (Triple::RayGeneration, T.getEnvironment ());
923
931
EXPECT_FALSE (T.supportsCOMDAT ());
924
932
925
933
T = Triple (" dxil-unknown-shadermodel-intersection" );
926
934
EXPECT_EQ (Triple::dxil, T.getArch ());
935
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
927
936
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
928
937
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
929
938
EXPECT_EQ (Triple::Intersection, T.getEnvironment ());
930
939
EXPECT_FALSE (T.supportsCOMDAT ());
931
940
932
941
T = Triple (" dxil-unknown-shadermodel-anyhit" );
933
942
EXPECT_EQ (Triple::dxil, T.getArch ());
943
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
934
944
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
935
945
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
936
946
EXPECT_EQ (Triple::AnyHit, T.getEnvironment ());
937
947
EXPECT_FALSE (T.supportsCOMDAT ());
938
948
939
949
T = Triple (" dxil-unknown-shadermodel-closesthit" );
940
950
EXPECT_EQ (Triple::dxil, T.getArch ());
951
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
941
952
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
942
953
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
943
954
EXPECT_EQ (Triple::ClosestHit, T.getEnvironment ());
944
955
EXPECT_FALSE (T.supportsCOMDAT ());
945
956
946
957
T = Triple (" dxil-unknown-shadermodel-miss" );
947
958
EXPECT_EQ (Triple::dxil, T.getArch ());
959
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
948
960
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
949
961
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
950
962
EXPECT_EQ (Triple::Miss, T.getEnvironment ());
951
963
EXPECT_FALSE (T.supportsCOMDAT ());
952
964
953
965
T = Triple (" dxil-unknown-shadermodel-callable" );
954
966
EXPECT_EQ (Triple::dxil, T.getArch ());
967
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
955
968
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
956
969
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
957
970
EXPECT_EQ (Triple::Callable, T.getEnvironment ());
958
971
EXPECT_FALSE (T.supportsCOMDAT ());
959
972
960
973
T = Triple (" dxil-unknown-shadermodel-mesh" );
961
974
EXPECT_EQ (Triple::dxil, T.getArch ());
975
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
962
976
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
963
977
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
964
978
EXPECT_EQ (Triple::Mesh, T.getEnvironment ());
965
979
EXPECT_FALSE (T.supportsCOMDAT ());
966
980
967
981
T = Triple (" dxil-unknown-shadermodel-amplification" );
968
982
EXPECT_EQ (Triple::dxil, T.getArch ());
983
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
969
984
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
970
985
EXPECT_EQ (Triple::ShaderModel, T.getOS ());
971
986
EXPECT_EQ (Triple::Amplification, T.getEnvironment ());
972
987
EXPECT_FALSE (T.supportsCOMDAT ());
973
988
989
+ T = Triple (" dxilv1.0-unknown-unknown" );
990
+ EXPECT_EQ (Triple::dxil, T.getArch ());
991
+ EXPECT_EQ (Triple::DXILSubArch_v1_0, T.getSubArch ());
992
+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
993
+ EXPECT_EQ (Triple::UnknownOS, T.getOS ());
994
+
995
+ T = Triple (" dxilv1.1-unknown-unknown" );
996
+ EXPECT_EQ (Triple::dxil, T.getArch ());
997
+ EXPECT_EQ (Triple::DXILSubArch_v1_1, T.getSubArch ());
998
+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
999
+ EXPECT_EQ (Triple::UnknownOS, T.getOS ());
1000
+
1001
+ T = Triple (" dxilv1.2-unknown-unknown" );
1002
+ EXPECT_EQ (Triple::dxil, T.getArch ());
1003
+ EXPECT_EQ (Triple::DXILSubArch_v1_2, T.getSubArch ());
1004
+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
1005
+ EXPECT_EQ (Triple::UnknownOS, T.getOS ());
1006
+
1007
+ T = Triple (" dxilv1.3-unknown-unknown" );
1008
+ EXPECT_EQ (Triple::dxil, T.getArch ());
1009
+ EXPECT_EQ (Triple::DXILSubArch_v1_3, T.getSubArch ());
1010
+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
1011
+ EXPECT_EQ (Triple::UnknownOS, T.getOS ());
1012
+
1013
+ T = Triple (" dxilv1.4-unknown-unknown" );
1014
+ EXPECT_EQ (Triple::dxil, T.getArch ());
1015
+ EXPECT_EQ (Triple::DXILSubArch_v1_4, T.getSubArch ());
1016
+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
1017
+ EXPECT_EQ (Triple::UnknownOS, T.getOS ());
1018
+
1019
+ T = Triple (" dxilv1.5-unknown-unknown" );
1020
+ EXPECT_EQ (Triple::dxil, T.getArch ());
1021
+ EXPECT_EQ (Triple::DXILSubArch_v1_5, T.getSubArch ());
1022
+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
1023
+ EXPECT_EQ (Triple::UnknownOS, T.getOS ());
1024
+
1025
+ T = Triple (" dxilv1.6-unknown-unknown" );
1026
+ EXPECT_EQ (Triple::dxil, T.getArch ());
1027
+ EXPECT_EQ (Triple::DXILSubArch_v1_6, T.getSubArch ());
1028
+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
1029
+ EXPECT_EQ (Triple::UnknownOS, T.getOS ());
1030
+
1031
+ T = Triple (" dxilv1.7-unknown-unknown" );
1032
+ EXPECT_EQ (Triple::dxil, T.getArch ());
1033
+ EXPECT_EQ (Triple::DXILSubArch_v1_7, T.getSubArch ());
1034
+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
1035
+ EXPECT_EQ (Triple::UnknownOS, T.getOS ());
1036
+
1037
+ T = Triple (" dxilv1.8-unknown-unknown" );
1038
+ EXPECT_EQ (Triple::dxil, T.getArch ());
1039
+ EXPECT_EQ (Triple::DXILSubArch_v1_8, T.getSubArch ());
1040
+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
1041
+ EXPECT_EQ (Triple::UnknownOS, T.getOS ());
1042
+
1043
+ // Check specification of unknown SubArch results in
1044
+ // unknown architecture.
1045
+ T = Triple (" dxilv1.999-unknown-unknown" );
1046
+ EXPECT_EQ (Triple::UnknownArch, T.getArch ());
1047
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
1048
+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
1049
+ EXPECT_EQ (Triple::UnknownOS, T.getOS ());
1050
+
1051
+ T = Triple (" dxil-unknown-unknown" );
1052
+ EXPECT_EQ (Triple::dxil, T.getArch ());
1053
+ EXPECT_EQ (Triple::NoSubArch, T.getSubArch ());
1054
+ EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
1055
+ EXPECT_EQ (Triple::UnknownOS, T.getOS ());
1056
+
974
1057
T = Triple (" xtensa" );
975
1058
EXPECT_EQ (Triple::xtensa, T.getArch ());
976
1059
EXPECT_EQ (Triple::UnknownVendor, T.getVendor ());
0 commit comments