authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-02-27 01:54:07-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-02-27 01:54:07-07:00
log02bda72d918f9020887b0bafe439d0d4024b8e02
tree9f736c9120ed58e8cc8e92303f7d1ba1034ad687
parenta9f19221e99d9470d936f63ecfa20c735e175a2c

update amdgpu target CPU features


2 files changed, 39 insertions(+), 89 deletions(-)

lib/std/target/amdgpu.zig+29-89
...@@ -1,8 +1,5 @@...@@ -1,8 +1,5 @@
1// SPDX-License-Identifier: MIT1//! This file is auto-generated by tools/update_cpu_features.zig.
2// Copyright (c) 2015-2021 Zig Contributors2
3// This file is part of [zig](https://ziglang.org/), which is MIT licensed.
4// The MIT license requires this copyright notice to be included in all copies
5// and substantial portions of the software.
6const std = @import("../std.zig");3const std = @import("../std.zig");
7const CpuFeature = std.Target.Cpu.Feature;4const CpuFeature = std.Target.Cpu.Feature;
8const CpuModel = std.Target.Cpu.Model;5const CpuModel = std.Target.Cpu.Model;
...@@ -26,7 +23,6 @@ pub const Feature = enum {...@@ -26,7 +23,6 @@ pub const Feature = enum {
26 dpp,23 dpp,
27 dpp8,24 dpp8,
28 ds_src2_insts,25 ds_src2_insts,
29 dump_code,
30 enable_ds128,26 enable_ds128,
31 enable_prt_strict_null,27 enable_prt_strict_null,
32 fast_denormal_f32,28 fast_denormal_f32,
...@@ -76,8 +72,6 @@ pub const Feature = enum {...@@ -76,8 +72,6 @@ pub const Feature = enum {
76 movrel,72 movrel,
77 no_data_dep_hazard,73 no_data_dep_hazard,
78 no_sdst_cmpx,74 no_sdst_cmpx,
79 no_sram_ecc_support,
80 no_xnack_support,
81 nsa_encoding,75 nsa_encoding,
82 nsa_to_vmem_bug,76 nsa_to_vmem_bug,
83 offset_3f_bug,77 offset_3f_bug,
...@@ -101,7 +95,8 @@ pub const Feature = enum {...@@ -101,7 +95,8 @@ pub const Feature = enum {
101 si_scheduler,95 si_scheduler,
102 smem_to_vector_write_hazard,96 smem_to_vector_write_hazard,
103 southern_islands,97 southern_islands,
104 sram_ecc,98 sramecc,
99 sramecc_support,
105 trap_handler,100 trap_handler,
106 trig_reduced_range,101 trig_reduced_range,
107 unaligned_access_mode,102 unaligned_access_mode,
...@@ -122,6 +117,7 @@ pub const Feature = enum {...@@ -122,6 +117,7 @@ pub const Feature = enum {
122 wavefrontsize32,117 wavefrontsize32,
123 wavefrontsize64,118 wavefrontsize64,
124 xnack,119 xnack,
120 xnack_support,
125};121};
126122
127pub usingnamespace CpuFeature.feature_set_fns(Feature);123pub usingnamespace CpuFeature.feature_set_fns(Feature);
...@@ -222,14 +218,9 @@ pub const all_features = blk: {...@@ -222,14 +218,9 @@ pub const all_features = blk: {
222 .description = "Has ds_*_src2 instructions",218 .description = "Has ds_*_src2 instructions",
223 .dependencies = featureSet(&[_]Feature{}),219 .dependencies = featureSet(&[_]Feature{}),
224 };220 };
225 result[@enumToInt(Feature.dump_code)] = .{
226 .llvm_name = "dumpcode",
227 .description = "Dump MachineInstrs in the CodeEmitter",
228 .dependencies = featureSet(&[_]Feature{}),
229 };
230 result[@enumToInt(Feature.enable_ds128)] = .{221 result[@enumToInt(Feature.enable_ds128)] = .{
231 .llvm_name = "enable-ds128",222 .llvm_name = "enable-ds128",
232 .description = "Use ds_read|write_b128",223 .description = "Use ds_{read|write}_b128",
233 .dependencies = featureSet(&[_]Feature{}),224 .dependencies = featureSet(&[_]Feature{}),
234 };225 };
235 result[@enumToInt(Feature.enable_prt_strict_null)] = .{226 result[@enumToInt(Feature.enable_prt_strict_null)] = .{
...@@ -337,7 +328,6 @@ pub const all_features = blk: {...@@ -337,7 +328,6 @@ pub const all_features = blk: {
337 .movrel,328 .movrel,
338 .no_data_dep_hazard,329 .no_data_dep_hazard,
339 .no_sdst_cmpx,330 .no_sdst_cmpx,
340 .no_sram_ecc_support,
341 .pk_fmac_f16_inst,331 .pk_fmac_f16_inst,
342 .register_banking,332 .register_banking,
343 .s_memrealtime,333 .s_memrealtime,
...@@ -417,6 +407,7 @@ pub const all_features = blk: {...@@ -417,6 +407,7 @@ pub const all_features = blk: {
417 .vgpr_index_mode,407 .vgpr_index_mode,
418 .vop3p,408 .vop3p,
419 .wavefrontsize64,409 .wavefrontsize64,
410 .xnack_support,
420 }),411 }),
421 };412 };
422 result[@enumToInt(Feature.gfx9_insts)] = .{413 result[@enumToInt(Feature.gfx9_insts)] = .{
...@@ -549,16 +540,6 @@ pub const all_features = blk: {...@@ -549,16 +540,6 @@ pub const all_features = blk: {
549 .description = "V_CMPX does not write VCC/SGPR in addition to EXEC",540 .description = "V_CMPX does not write VCC/SGPR in addition to EXEC",
550 .dependencies = featureSet(&[_]Feature{}),541 .dependencies = featureSet(&[_]Feature{}),
551 };542 };
552 result[@enumToInt(Feature.no_sram_ecc_support)] = .{
553 .llvm_name = "no-sram-ecc-support",
554 .description = "Hardware does not support SRAM ECC",
555 .dependencies = featureSet(&[_]Feature{}),
556 };
557 result[@enumToInt(Feature.no_xnack_support)] = .{
558 .llvm_name = "no-xnack-support",
559 .description = "Hardware does not support XNACK",
560 .dependencies = featureSet(&[_]Feature{}),
561 };
562 result[@enumToInt(Feature.nsa_encoding)] = .{543 result[@enumToInt(Feature.nsa_encoding)] = .{
563 .llvm_name = "nsa-encoding",544 .llvm_name = "nsa-encoding",
564 .description = "Support NSA encoding for image instructions",545 .description = "Support NSA encoding for image instructions",
...@@ -662,7 +643,6 @@ pub const all_features = blk: {...@@ -662,7 +643,6 @@ pub const all_features = blk: {
662 .mad_mac_f32_insts,643 .mad_mac_f32_insts,
663 .mimg_r128,644 .mimg_r128,
664 .movrel,645 .movrel,
665 .no_sram_ecc_support,
666 .s_memtime_inst,646 .s_memtime_inst,
667 .trig_reduced_range,647 .trig_reduced_range,
668 .unaligned_buffer_access,648 .unaligned_buffer_access,
...@@ -695,16 +675,19 @@ pub const all_features = blk: {...@@ -695,16 +675,19 @@ pub const all_features = blk: {
695 .mad_mac_f32_insts,675 .mad_mac_f32_insts,
696 .mimg_r128,676 .mimg_r128,
697 .movrel,677 .movrel,
698 .no_sram_ecc_support,
699 .no_xnack_support,
700 .s_memtime_inst,678 .s_memtime_inst,
701 .trig_reduced_range,679 .trig_reduced_range,
702 .wavefrontsize64,680 .wavefrontsize64,
703 }),681 }),
704 };682 };
705 result[@enumToInt(Feature.sram_ecc)] = .{683 result[@enumToInt(Feature.sramecc)] = .{
706 .llvm_name = "sram-ecc",684 .llvm_name = "sramecc",
707 .description = "Enable SRAM ECC",685 .description = "Enable SRAMECC",
686 .dependencies = featureSet(&[_]Feature{}),
687 };
688 result[@enumToInt(Feature.sramecc_support)] = .{
689 .llvm_name = "sramecc-support",
690 .description = "Hardware supports SRAMECC",
708 .dependencies = featureSet(&[_]Feature{}),691 .dependencies = featureSet(&[_]Feature{}),
709 };692 };
710 result[@enumToInt(Feature.trap_handler)] = .{693 result[@enumToInt(Feature.trap_handler)] = .{
...@@ -787,7 +770,6 @@ pub const all_features = blk: {...@@ -787,7 +770,6 @@ pub const all_features = blk: {
787 .mad_mac_f32_insts,770 .mad_mac_f32_insts,
788 .mimg_r128,771 .mimg_r128,
789 .movrel,772 .movrel,
790 .no_sram_ecc_support,
791 .s_memrealtime,773 .s_memrealtime,
792 .s_memtime_inst,774 .s_memtime_inst,
793 .scalar_stores,775 .scalar_stores,
...@@ -835,6 +817,11 @@ pub const all_features = blk: {...@@ -835,6 +817,11 @@ pub const all_features = blk: {
835 .description = "Enable XNACK support",817 .description = "Enable XNACK support",
836 .dependencies = featureSet(&[_]Feature{}),818 .dependencies = featureSet(&[_]Feature{}),
837 };819 };
820 result[@enumToInt(Feature.xnack_support)] = .{
821 .llvm_name = "xnack-support",
822 .description = "Hardware supports XNACK",
823 .dependencies = featureSet(&[_]Feature{}),
824 };
838 const ti = @typeInfo(Feature);825 const ti = @typeInfo(Feature);
839 for (result) |*elem, i| {826 for (result) |*elem, i| {
840 elem.index = i;827 elem.index = i;
...@@ -849,7 +836,6 @@ pub const cpu = struct {...@@ -849,7 +836,6 @@ pub const cpu = struct {
849 .llvm_name = "bonaire",836 .llvm_name = "bonaire",
850 .features = featureSet(&[_]Feature{837 .features = featureSet(&[_]Feature{
851 .ldsbankcount32,838 .ldsbankcount32,
852 .no_xnack_support,
853 .sea_islands,839 .sea_islands,
854 }),840 }),
855 };841 };
...@@ -862,7 +848,7 @@ pub const cpu = struct {...@@ -862,7 +848,7 @@ pub const cpu = struct {
862 .ldsbankcount32,848 .ldsbankcount32,
863 .unpacked_d16_vmem,849 .unpacked_d16_vmem,
864 .volcanic_islands,850 .volcanic_islands,
865 .xnack,851 .xnack_support,
866 }),852 }),
867 };853 };
868 pub const fiji = CpuModel{854 pub const fiji = CpuModel{
...@@ -870,7 +856,6 @@ pub const cpu = struct {...@@ -870,7 +856,6 @@ pub const cpu = struct {
870 .llvm_name = "fiji",856 .llvm_name = "fiji",
871 .features = featureSet(&[_]Feature{857 .features = featureSet(&[_]Feature{
872 .ldsbankcount32,858 .ldsbankcount32,
873 .no_xnack_support,
874 .unpacked_d16_vmem,859 .unpacked_d16_vmem,
875 .volcanic_islands,860 .volcanic_islands,
876 }),861 }),
...@@ -904,7 +889,6 @@ pub const cpu = struct {...@@ -904,7 +889,6 @@ pub const cpu = struct {
904 .lds_misaligned_bug,889 .lds_misaligned_bug,
905 .ldsbankcount32,890 .ldsbankcount32,
906 .mad_mac_f32_insts,891 .mad_mac_f32_insts,
907 .no_xnack_support,
908 .nsa_encoding,892 .nsa_encoding,
909 .nsa_to_vmem_bug,893 .nsa_to_vmem_bug,
910 .offset_3f_bug,894 .offset_3f_bug,
...@@ -917,6 +901,7 @@ pub const cpu = struct {...@@ -917,6 +901,7 @@ pub const cpu = struct {
917 .vcmpx_permlane_hazard,901 .vcmpx_permlane_hazard,
918 .vmem_to_scalar_write_hazard,902 .vmem_to_scalar_write_hazard,
919 .wavefrontsize32,903 .wavefrontsize32,
904 .xnack_support,
920 }),905 }),
921 };906 };
922 pub const gfx1011 = CpuModel{907 pub const gfx1011 = CpuModel{
...@@ -937,7 +922,6 @@ pub const cpu = struct {...@@ -937,7 +922,6 @@ pub const cpu = struct {
937 .lds_misaligned_bug,922 .lds_misaligned_bug,
938 .ldsbankcount32,923 .ldsbankcount32,
939 .mad_mac_f32_insts,924 .mad_mac_f32_insts,
940 .no_xnack_support,
941 .nsa_encoding,925 .nsa_encoding,
942 .nsa_to_vmem_bug,926 .nsa_to_vmem_bug,
943 .offset_3f_bug,927 .offset_3f_bug,
...@@ -950,6 +934,7 @@ pub const cpu = struct {...@@ -950,6 +934,7 @@ pub const cpu = struct {
950 .vcmpx_permlane_hazard,934 .vcmpx_permlane_hazard,
951 .vmem_to_scalar_write_hazard,935 .vmem_to_scalar_write_hazard,
952 .wavefrontsize32,936 .wavefrontsize32,
937 .xnack_support,
953 }),938 }),
954 };939 };
955 pub const gfx1012 = CpuModel{940 pub const gfx1012 = CpuModel{
...@@ -970,7 +955,6 @@ pub const cpu = struct {...@@ -970,7 +955,6 @@ pub const cpu = struct {
970 .lds_misaligned_bug,955 .lds_misaligned_bug,
971 .ldsbankcount32,956 .ldsbankcount32,
972 .mad_mac_f32_insts,957 .mad_mac_f32_insts,
973 .no_xnack_support,
974 .nsa_encoding,958 .nsa_encoding,
975 .nsa_to_vmem_bug,959 .nsa_to_vmem_bug,
976 .offset_3f_bug,960 .offset_3f_bug,
...@@ -983,6 +967,7 @@ pub const cpu = struct {...@@ -983,6 +967,7 @@ pub const cpu = struct {
983 .vcmpx_permlane_hazard,967 .vcmpx_permlane_hazard,
984 .vmem_to_scalar_write_hazard,968 .vmem_to_scalar_write_hazard,
985 .wavefrontsize32,969 .wavefrontsize32,
970 .xnack_support,
986 }),971 }),
987 };972 };
988 pub const gfx1030 = CpuModel{973 pub const gfx1030 = CpuModel{
...@@ -998,7 +983,6 @@ pub const cpu = struct {...@@ -998,7 +983,6 @@ pub const cpu = struct {
998 .gfx10_3_insts,983 .gfx10_3_insts,
999 .gfx10_b_encoding,984 .gfx10_b_encoding,
1000 .ldsbankcount32,985 .ldsbankcount32,
1001 .no_xnack_support,
1002 .nsa_encoding,986 .nsa_encoding,
1003 .wavefrontsize32,987 .wavefrontsize32,
1004 }),988 }),
...@@ -1016,7 +1000,6 @@ pub const cpu = struct {...@@ -1016,7 +1000,6 @@ pub const cpu = struct {
1016 .gfx10_3_insts,1000 .gfx10_3_insts,
1017 .gfx10_b_encoding,1001 .gfx10_b_encoding,
1018 .ldsbankcount32,1002 .ldsbankcount32,
1019 .no_xnack_support,
1020 .nsa_encoding,1003 .nsa_encoding,
1021 .wavefrontsize32,1004 .wavefrontsize32,
1022 }),1005 }),
...@@ -1034,7 +1017,6 @@ pub const cpu = struct {...@@ -1034,7 +1017,6 @@ pub const cpu = struct {
1034 .gfx10_3_insts,1017 .gfx10_3_insts,
1035 .gfx10_b_encoding,1018 .gfx10_b_encoding,
1036 .ldsbankcount32,1019 .ldsbankcount32,
1037 .no_xnack_support,
1038 .nsa_encoding,1020 .nsa_encoding,
1039 .wavefrontsize32,1021 .wavefrontsize32,
1040 }),1022 }),
...@@ -1052,7 +1034,6 @@ pub const cpu = struct {...@@ -1052,7 +1034,6 @@ pub const cpu = struct {
1052 .gfx10_3_insts,1034 .gfx10_3_insts,
1053 .gfx10_b_encoding,1035 .gfx10_b_encoding,
1054 .ldsbankcount32,1036 .ldsbankcount32,
1055 .no_xnack_support,
1056 .nsa_encoding,1037 .nsa_encoding,
1057 .wavefrontsize32,1038 .wavefrontsize32,
1058 }),1039 }),
...@@ -1063,8 +1044,6 @@ pub const cpu = struct {...@@ -1063,8 +1044,6 @@ pub const cpu = struct {
1063 .features = featureSet(&[_]Feature{1044 .features = featureSet(&[_]Feature{
1064 .fast_fmaf,1045 .fast_fmaf,
1065 .half_rate_64_ops,1046 .half_rate_64_ops,
1066 .ldsbankcount32,
1067 .no_xnack_support,
1068 .southern_islands,1047 .southern_islands,
1069 }),1048 }),
1070 };1049 };
...@@ -1072,8 +1051,6 @@ pub const cpu = struct {...@@ -1072,8 +1051,6 @@ pub const cpu = struct {
1072 .name = "gfx601",1051 .name = "gfx601",
1073 .llvm_name = "gfx601",1052 .llvm_name = "gfx601",
1074 .features = featureSet(&[_]Feature{1053 .features = featureSet(&[_]Feature{
1075 .ldsbankcount32,
1076 .no_xnack_support,
1077 .southern_islands,1054 .southern_islands,
1078 }),1055 }),
1079 };1056 };
...@@ -1081,8 +1058,6 @@ pub const cpu = struct {...@@ -1081,8 +1058,6 @@ pub const cpu = struct {
1081 .name = "gfx602",1058 .name = "gfx602",
1082 .llvm_name = "gfx602",1059 .llvm_name = "gfx602",
1083 .features = featureSet(&[_]Feature{1060 .features = featureSet(&[_]Feature{
1084 .ldsbankcount32,
1085 .no_xnack_support,
1086 .southern_islands,1061 .southern_islands,
1087 }),1062 }),
1088 };1063 };
...@@ -1091,7 +1066,6 @@ pub const cpu = struct {...@@ -1091,7 +1066,6 @@ pub const cpu = struct {
1091 .llvm_name = "gfx700",1066 .llvm_name = "gfx700",
1092 .features = featureSet(&[_]Feature{1067 .features = featureSet(&[_]Feature{
1093 .ldsbankcount32,1068 .ldsbankcount32,
1094 .no_xnack_support,
1095 .sea_islands,1069 .sea_islands,
1096 }),1070 }),
1097 };1071 };
...@@ -1102,7 +1076,6 @@ pub const cpu = struct {...@@ -1102,7 +1076,6 @@ pub const cpu = struct {
1102 .fast_fmaf,1076 .fast_fmaf,
1103 .half_rate_64_ops,1077 .half_rate_64_ops,
1104 .ldsbankcount32,1078 .ldsbankcount32,
1105 .no_xnack_support,
1106 .sea_islands,1079 .sea_islands,
1107 }),1080 }),
1108 };1081 };
...@@ -1112,7 +1085,6 @@ pub const cpu = struct {...@@ -1112,7 +1085,6 @@ pub const cpu = struct {
1112 .features = featureSet(&[_]Feature{1085 .features = featureSet(&[_]Feature{
1113 .fast_fmaf,1086 .fast_fmaf,
1114 .ldsbankcount16,1087 .ldsbankcount16,
1115 .no_xnack_support,
1116 .sea_islands,1088 .sea_islands,
1117 }),1089 }),
1118 };1090 };
...@@ -1121,7 +1093,6 @@ pub const cpu = struct {...@@ -1121,7 +1093,6 @@ pub const cpu = struct {
1121 .llvm_name = "gfx703",1093 .llvm_name = "gfx703",
1122 .features = featureSet(&[_]Feature{1094 .features = featureSet(&[_]Feature{
1123 .ldsbankcount16,1095 .ldsbankcount16,
1124 .no_xnack_support,
1125 .sea_islands,1096 .sea_islands,
1126 }),1097 }),
1127 };1098 };
...@@ -1130,7 +1101,6 @@ pub const cpu = struct {...@@ -1130,7 +1101,6 @@ pub const cpu = struct {
1130 .llvm_name = "gfx704",1101 .llvm_name = "gfx704",
1131 .features = featureSet(&[_]Feature{1102 .features = featureSet(&[_]Feature{
1132 .ldsbankcount32,1103 .ldsbankcount32,
1133 .no_xnack_support,
1134 .sea_islands,1104 .sea_islands,
1135 }),1105 }),
1136 };1106 };
...@@ -1139,7 +1109,6 @@ pub const cpu = struct {...@@ -1139,7 +1109,6 @@ pub const cpu = struct {
1139 .llvm_name = "gfx705",1109 .llvm_name = "gfx705",
1140 .features = featureSet(&[_]Feature{1110 .features = featureSet(&[_]Feature{
1141 .ldsbankcount16,1111 .ldsbankcount16,
1142 .no_xnack_support,
1143 .sea_islands,1112 .sea_islands,
1144 }),1113 }),
1145 };1114 };
...@@ -1152,7 +1121,7 @@ pub const cpu = struct {...@@ -1152,7 +1121,7 @@ pub const cpu = struct {
1152 .ldsbankcount32,1121 .ldsbankcount32,
1153 .unpacked_d16_vmem,1122 .unpacked_d16_vmem,
1154 .volcanic_islands,1123 .volcanic_islands,
1155 .xnack,1124 .xnack_support,
1156 }),1125 }),
1157 };1126 };
1158 pub const gfx802 = CpuModel{1127 pub const gfx802 = CpuModel{
...@@ -1160,7 +1129,6 @@ pub const cpu = struct {...@@ -1160,7 +1129,6 @@ pub const cpu = struct {
1160 .llvm_name = "gfx802",1129 .llvm_name = "gfx802",
1161 .features = featureSet(&[_]Feature{1130 .features = featureSet(&[_]Feature{
1162 .ldsbankcount32,1131 .ldsbankcount32,
1163 .no_xnack_support,
1164 .sgpr_init_bug,1132 .sgpr_init_bug,
1165 .unpacked_d16_vmem,1133 .unpacked_d16_vmem,
1166 .volcanic_islands,1134 .volcanic_islands,
...@@ -1171,7 +1139,6 @@ pub const cpu = struct {...@@ -1171,7 +1139,6 @@ pub const cpu = struct {
1171 .llvm_name = "gfx803",1139 .llvm_name = "gfx803",
1172 .features = featureSet(&[_]Feature{1140 .features = featureSet(&[_]Feature{
1173 .ldsbankcount32,1141 .ldsbankcount32,
1174 .no_xnack_support,
1175 .unpacked_d16_vmem,1142 .unpacked_d16_vmem,
1176 .volcanic_islands,1143 .volcanic_islands,
1177 }),1144 }),
...@@ -1181,7 +1148,6 @@ pub const cpu = struct {...@@ -1181,7 +1148,6 @@ pub const cpu = struct {
1181 .llvm_name = "gfx805",1148 .llvm_name = "gfx805",
1182 .features = featureSet(&[_]Feature{1149 .features = featureSet(&[_]Feature{
1183 .ldsbankcount32,1150 .ldsbankcount32,
1184 .no_xnack_support,
1185 .sgpr_init_bug,1151 .sgpr_init_bug,
1186 .unpacked_d16_vmem,1152 .unpacked_d16_vmem,
1187 .volcanic_islands,1153 .volcanic_islands,
...@@ -1195,7 +1161,7 @@ pub const cpu = struct {...@@ -1195,7 +1161,7 @@ pub const cpu = struct {
1195 .image_store_d16_bug,1161 .image_store_d16_bug,
1196 .ldsbankcount16,1162 .ldsbankcount16,
1197 .volcanic_islands,1163 .volcanic_islands,
1198 .xnack,1164 .xnack_support,
1199 }),1165 }),
1200 };1166 };
1201 pub const gfx900 = CpuModel{1167 pub const gfx900 = CpuModel{
...@@ -1206,8 +1172,6 @@ pub const cpu = struct {...@@ -1206,8 +1172,6 @@ pub const cpu = struct {
1206 .image_gather4_d16_bug,1172 .image_gather4_d16_bug,
1207 .ldsbankcount32,1173 .ldsbankcount32,
1208 .mad_mix_insts,1174 .mad_mix_insts,
1209 .no_sram_ecc_support,
1210 .no_xnack_support,
1211 }),1175 }),
1212 };1176 };
1213 pub const gfx902 = CpuModel{1177 pub const gfx902 = CpuModel{
...@@ -1218,8 +1182,6 @@ pub const cpu = struct {...@@ -1218,8 +1182,6 @@ pub const cpu = struct {
1218 .image_gather4_d16_bug,1182 .image_gather4_d16_bug,
1219 .ldsbankcount32,1183 .ldsbankcount32,
1220 .mad_mix_insts,1184 .mad_mix_insts,
1221 .no_sram_ecc_support,
1222 .xnack,
1223 }),1185 }),
1224 };1186 };
1225 pub const gfx904 = CpuModel{1187 pub const gfx904 = CpuModel{
...@@ -1230,8 +1192,6 @@ pub const cpu = struct {...@@ -1230,8 +1192,6 @@ pub const cpu = struct {
1230 .gfx9,1192 .gfx9,
1231 .image_gather4_d16_bug,1193 .image_gather4_d16_bug,
1232 .ldsbankcount32,1194 .ldsbankcount32,
1233 .no_sram_ecc_support,
1234 .no_xnack_support,
1235 }),1195 }),
1236 };1196 };
1237 pub const gfx906 = CpuModel{1197 pub const gfx906 = CpuModel{
...@@ -1246,7 +1206,7 @@ pub const cpu = struct {...@@ -1246,7 +1206,7 @@ pub const cpu = struct {
1246 .half_rate_64_ops,1206 .half_rate_64_ops,
1247 .image_gather4_d16_bug,1207 .image_gather4_d16_bug,
1248 .ldsbankcount32,1208 .ldsbankcount32,
1249 .no_xnack_support,1209 .sramecc_support,
1250 }),1210 }),
1251 };1211 };
1252 pub const gfx908 = CpuModel{1212 pub const gfx908 = CpuModel{
...@@ -1269,7 +1229,7 @@ pub const cpu = struct {...@@ -1269,7 +1229,7 @@ pub const cpu = struct {
1269 .mai_insts,1229 .mai_insts,
1270 .mfma_inline_literal_bug,1230 .mfma_inline_literal_bug,
1271 .pk_fmac_f16_inst,1231 .pk_fmac_f16_inst,
1272 .sram_ecc,1232 .sramecc_support,
1273 }),1233 }),
1274 };1234 };
1275 pub const gfx909 = CpuModel{1235 pub const gfx909 = CpuModel{
...@@ -1280,7 +1240,6 @@ pub const cpu = struct {...@@ -1280,7 +1240,6 @@ pub const cpu = struct {
1280 .image_gather4_d16_bug,1240 .image_gather4_d16_bug,
1281 .ldsbankcount32,1241 .ldsbankcount32,
1282 .mad_mix_insts,1242 .mad_mix_insts,
1283 .xnack,
1284 }),1243 }),
1285 };1244 };
1286 pub const gfx90c = CpuModel{1245 pub const gfx90c = CpuModel{
...@@ -1298,8 +1257,6 @@ pub const cpu = struct {...@@ -1298,8 +1257,6 @@ pub const cpu = struct {
1298 .name = "hainan",1257 .name = "hainan",
1299 .llvm_name = "hainan",1258 .llvm_name = "hainan",
1300 .features = featureSet(&[_]Feature{1259 .features = featureSet(&[_]Feature{
1301 .ldsbankcount32,
1302 .no_xnack_support,
1303 .southern_islands,1260 .southern_islands,
1304 }),1261 }),
1305 };1262 };
...@@ -1310,7 +1267,6 @@ pub const cpu = struct {...@@ -1310,7 +1267,6 @@ pub const cpu = struct {
1310 .fast_fmaf,1267 .fast_fmaf,
1311 .half_rate_64_ops,1268 .half_rate_64_ops,
1312 .ldsbankcount32,1269 .ldsbankcount32,
1313 .no_xnack_support,
1314 .sea_islands,1270 .sea_islands,
1315 }),1271 }),
1316 };1272 };
...@@ -1319,7 +1275,6 @@ pub const cpu = struct {...@@ -1319,7 +1275,6 @@ pub const cpu = struct {
1319 .llvm_name = "iceland",1275 .llvm_name = "iceland",
1320 .features = featureSet(&[_]Feature{1276 .features = featureSet(&[_]Feature{
1321 .ldsbankcount32,1277 .ldsbankcount32,
1322 .no_xnack_support,
1323 .sgpr_init_bug,1278 .sgpr_init_bug,
1324 .unpacked_d16_vmem,1279 .unpacked_d16_vmem,
1325 .volcanic_islands,1280 .volcanic_islands,
...@@ -1330,7 +1285,6 @@ pub const cpu = struct {...@@ -1330,7 +1285,6 @@ pub const cpu = struct {
1330 .llvm_name = "kabini",1285 .llvm_name = "kabini",
1331 .features = featureSet(&[_]Feature{1286 .features = featureSet(&[_]Feature{
1332 .ldsbankcount16,1287 .ldsbankcount16,
1333 .no_xnack_support,
1334 .sea_islands,1288 .sea_islands,
1335 }),1289 }),
1336 };1290 };
...@@ -1339,7 +1293,6 @@ pub const cpu = struct {...@@ -1339,7 +1293,6 @@ pub const cpu = struct {
1339 .llvm_name = "kaveri",1293 .llvm_name = "kaveri",
1340 .features = featureSet(&[_]Feature{1294 .features = featureSet(&[_]Feature{
1341 .ldsbankcount32,1295 .ldsbankcount32,
1342 .no_xnack_support,
1343 .sea_islands,1296 .sea_islands,
1344 }),1297 }),
1345 };1298 };
...@@ -1348,7 +1301,6 @@ pub const cpu = struct {...@@ -1348,7 +1301,6 @@ pub const cpu = struct {
1348 .llvm_name = "mullins",1301 .llvm_name = "mullins",
1349 .features = featureSet(&[_]Feature{1302 .features = featureSet(&[_]Feature{
1350 .ldsbankcount16,1303 .ldsbankcount16,
1351 .no_xnack_support,
1352 .sea_islands,1304 .sea_islands,
1353 }),1305 }),
1354 };1306 };
...@@ -1356,8 +1308,6 @@ pub const cpu = struct {...@@ -1356,8 +1308,6 @@ pub const cpu = struct {
1356 .name = "oland",1308 .name = "oland",
1357 .llvm_name = "oland",1309 .llvm_name = "oland",
1358 .features = featureSet(&[_]Feature{1310 .features = featureSet(&[_]Feature{
1359 .ldsbankcount32,
1360 .no_xnack_support,
1361 .southern_islands,1311 .southern_islands,
1362 }),1312 }),
1363 };1313 };
...@@ -1365,8 +1315,6 @@ pub const cpu = struct {...@@ -1365,8 +1315,6 @@ pub const cpu = struct {
1365 .name = "pitcairn",1315 .name = "pitcairn",
1366 .llvm_name = "pitcairn",1316 .llvm_name = "pitcairn",
1367 .features = featureSet(&[_]Feature{1317 .features = featureSet(&[_]Feature{
1368 .ldsbankcount32,
1369 .no_xnack_support,
1370 .southern_islands,1318 .southern_islands,
1371 }),1319 }),
1372 };1320 };
...@@ -1375,7 +1323,6 @@ pub const cpu = struct {...@@ -1375,7 +1323,6 @@ pub const cpu = struct {
1375 .llvm_name = "polaris10",1323 .llvm_name = "polaris10",
1376 .features = featureSet(&[_]Feature{1324 .features = featureSet(&[_]Feature{
1377 .ldsbankcount32,1325 .ldsbankcount32,
1378 .no_xnack_support,
1379 .unpacked_d16_vmem,1326 .unpacked_d16_vmem,
1380 .volcanic_islands,1327 .volcanic_islands,
1381 }),1328 }),
...@@ -1385,7 +1332,6 @@ pub const cpu = struct {...@@ -1385,7 +1332,6 @@ pub const cpu = struct {
1385 .llvm_name = "polaris11",1332 .llvm_name = "polaris11",
1386 .features = featureSet(&[_]Feature{1333 .features = featureSet(&[_]Feature{
1387 .ldsbankcount32,1334 .ldsbankcount32,
1388 .no_xnack_support,
1389 .unpacked_d16_vmem,1335 .unpacked_d16_vmem,
1390 .volcanic_islands,1336 .volcanic_islands,
1391 }),1337 }),
...@@ -1398,7 +1344,7 @@ pub const cpu = struct {...@@ -1398,7 +1344,7 @@ pub const cpu = struct {
1398 .image_store_d16_bug,1344 .image_store_d16_bug,
1399 .ldsbankcount16,1345 .ldsbankcount16,
1400 .volcanic_islands,1346 .volcanic_islands,
1401 .xnack,1347 .xnack_support,
1402 }),1348 }),
1403 };1349 };
1404 pub const tahiti = CpuModel{1350 pub const tahiti = CpuModel{
...@@ -1407,8 +1353,6 @@ pub const cpu = struct {...@@ -1407,8 +1353,6 @@ pub const cpu = struct {
1407 .features = featureSet(&[_]Feature{1353 .features = featureSet(&[_]Feature{
1408 .fast_fmaf,1354 .fast_fmaf,
1409 .half_rate_64_ops,1355 .half_rate_64_ops,
1410 .ldsbankcount32,
1411 .no_xnack_support,
1412 .southern_islands,1356 .southern_islands,
1413 }),1357 }),
1414 };1358 };
...@@ -1417,7 +1361,6 @@ pub const cpu = struct {...@@ -1417,7 +1361,6 @@ pub const cpu = struct {
1417 .llvm_name = "tonga",1361 .llvm_name = "tonga",
1418 .features = featureSet(&[_]Feature{1362 .features = featureSet(&[_]Feature{
1419 .ldsbankcount32,1363 .ldsbankcount32,
1420 .no_xnack_support,
1421 .sgpr_init_bug,1364 .sgpr_init_bug,
1422 .unpacked_d16_vmem,1365 .unpacked_d16_vmem,
1423 .volcanic_islands,1366 .volcanic_islands,
...@@ -1428,7 +1371,6 @@ pub const cpu = struct {...@@ -1428,7 +1371,6 @@ pub const cpu = struct {
1428 .llvm_name = "tongapro",1371 .llvm_name = "tongapro",
1429 .features = featureSet(&[_]Feature{1372 .features = featureSet(&[_]Feature{
1430 .ldsbankcount32,1373 .ldsbankcount32,
1431 .no_xnack_support,
1432 .sgpr_init_bug,1374 .sgpr_init_bug,
1433 .unpacked_d16_vmem,1375 .unpacked_d16_vmem,
1434 .volcanic_islands,1376 .volcanic_islands,
...@@ -1438,8 +1380,6 @@ pub const cpu = struct {...@@ -1438,8 +1380,6 @@ pub const cpu = struct {
1438 .name = "verde",1380 .name = "verde",
1439 .llvm_name = "verde",1381 .llvm_name = "verde",
1440 .features = featureSet(&[_]Feature{1382 .features = featureSet(&[_]Feature{
1441 .ldsbankcount32,
1442 .no_xnack_support,
1443 .southern_islands,1383 .southern_islands,
1444 }),1384 }),
1445 };1385 };
tools/update_cpu_features.zig+10
...@@ -44,6 +44,16 @@ const llvm_targets = [_]LlvmTarget{...@@ -44,6 +44,16 @@ const llvm_targets = [_]LlvmTarget{
44 .zig_name = "amdgpu",44 .zig_name = "amdgpu",
45 .llvm_name = "AMDGPU",45 .llvm_name = "AMDGPU",
46 .td_name = "AMDGPU.td",46 .td_name = "AMDGPU.td",
47 .feature_overrides = &.{
48 .{
49 .llvm_name = "DumpCode",
50 .omit = true,
51 },
52 .{
53 .llvm_name = "dumpcode",
54 .omit = true,
55 },
56 },
47 },57 },
48 .{58 .{
49 .zig_name = "arc",59 .zig_name = "arc",