| ... | @@ -180,6 +180,7 @@ pub const Feature = enum { | ... | @@ -180,6 +180,7 @@ pub const Feature = enum { |
| 180 | vgpr_index_mode, | 180 | vgpr_index_mode, |
| 181 | vgpr_singleuse_hint, | 181 | vgpr_singleuse_hint, |
| 182 | vmem_to_scalar_write_hazard, | 182 | vmem_to_scalar_write_hazard, |
| | 183 | vmem_write_vgpr_in_order, |
| 183 | volcanic_islands, | 184 | volcanic_islands, |
| 184 | vop3_literal, | 185 | vop3_literal, |
| 185 | vop3p, | 186 | vop3p, |
| ... | @@ -605,6 +606,7 @@ pub const all_features = blk: { | ... | @@ -605,6 +606,7 @@ pub const all_features = blk: { |
| 605 | .sdwa_sdst, | 606 | .sdwa_sdst, |
| 606 | .unaligned_buffer_access, | 607 | .unaligned_buffer_access, |
| 607 | .unaligned_ds_access, | 608 | .unaligned_ds_access, |
| | 609 | .vmem_write_vgpr_in_order, |
| 608 | .vop3_literal, | 610 | .vop3_literal, |
| 609 | .vop3p, | 611 | .vop3p, |
| 610 | .vscnt, | 612 | .vscnt, |
| ... | @@ -675,6 +677,7 @@ pub const all_features = blk: { | ... | @@ -675,6 +677,7 @@ pub const all_features = blk: { |
| 675 | .true16, | 677 | .true16, |
| 676 | .unaligned_buffer_access, | 678 | .unaligned_buffer_access, |
| 677 | .unaligned_ds_access, | 679 | .unaligned_ds_access, |
| | 680 | .vmem_write_vgpr_in_order, |
| 678 | .vop3_literal, | 681 | .vop3_literal, |
| 679 | .vop3p, | 682 | .vop3p, |
| 680 | .vopd, | 683 | .vopd, |
| ... | @@ -791,6 +794,7 @@ pub const all_features = blk: { | ... | @@ -791,6 +794,7 @@ pub const all_features = blk: { |
| 791 | .unaligned_buffer_access, | 794 | .unaligned_buffer_access, |
| 792 | .unaligned_ds_access, | 795 | .unaligned_ds_access, |
| 793 | .vgpr_index_mode, | 796 | .vgpr_index_mode, |
| | 797 | .vmem_write_vgpr_in_order, |
| 794 | .vop3p, | 798 | .vop3p, |
| 795 | .wavefrontsize64, | 799 | .wavefrontsize64, |
| 796 | .xnack_support, | 800 | .xnack_support, |
| ... | @@ -1161,6 +1165,7 @@ pub const all_features = blk: { | ... | @@ -1161,6 +1165,7 @@ pub const all_features = blk: { |
| 1161 | .s_memtime_inst, | 1165 | .s_memtime_inst, |
| 1162 | .trig_reduced_range, | 1166 | .trig_reduced_range, |
| 1163 | .unaligned_buffer_access, | 1167 | .unaligned_buffer_access, |
| | 1168 | .vmem_write_vgpr_in_order, |
| 1164 | .wavefrontsize64, | 1169 | .wavefrontsize64, |
| 1165 | }), | 1170 | }), |
| 1166 | }; | 1171 | }; |
| ... | @@ -1209,6 +1214,7 @@ pub const all_features = blk: { | ... | @@ -1209,6 +1214,7 @@ pub const all_features = blk: { |
| 1209 | .movrel, | 1214 | .movrel, |
| 1210 | .s_memtime_inst, | 1215 | .s_memtime_inst, |
| 1211 | .trig_reduced_range, | 1216 | .trig_reduced_range, |
| | 1217 | .vmem_write_vgpr_in_order, |
| 1212 | .wavefrontsize64, | 1218 | .wavefrontsize64, |
| 1213 | }), | 1219 | }), |
| 1214 | }; | 1220 | }; |
| ... | @@ -1307,6 +1313,11 @@ pub const all_features = blk: { | ... | @@ -1307,6 +1313,11 @@ pub const all_features = blk: { |
| 1307 | .description = "VMEM instruction followed by scalar writing to EXEC mask, M0 or SGPR leads to incorrect execution.", | 1313 | .description = "VMEM instruction followed by scalar writing to EXEC mask, M0 or SGPR leads to incorrect execution.", |
| 1308 | .dependencies = featureSet(&[_]Feature{}), | 1314 | .dependencies = featureSet(&[_]Feature{}), |
| 1309 | }; | 1315 | }; |
| | 1316 | result[@intFromEnum(Feature.vmem_write_vgpr_in_order)] = .{ |
| | 1317 | .llvm_name = "vmem-write-vgpr-in-order", |
| | 1318 | .description = "VMEM instructions of the same type write VGPR results in order", |
| | 1319 | .dependencies = featureSet(&[_]Feature{}), |
| | 1320 | }; |
| 1310 | result[@intFromEnum(Feature.volcanic_islands)] = .{ | 1321 | result[@intFromEnum(Feature.volcanic_islands)] = .{ |
| 1311 | .llvm_name = "volcanic-islands", | 1322 | .llvm_name = "volcanic-islands", |
| 1312 | .description = "VOLCANIC_ISLANDS GPU generation", | 1323 | .description = "VOLCANIC_ISLANDS GPU generation", |
| ... | @@ -1341,6 +1352,7 @@ pub const all_features = blk: { | ... | @@ -1341,6 +1352,7 @@ pub const all_features = blk: { |
| 1341 | .trig_reduced_range, | 1352 | .trig_reduced_range, |
| 1342 | .unaligned_buffer_access, | 1353 | .unaligned_buffer_access, |
| 1343 | .vgpr_index_mode, | 1354 | .vgpr_index_mode, |
| | 1355 | .vmem_write_vgpr_in_order, |
| 1344 | .wavefrontsize64, | 1356 | .wavefrontsize64, |
| 1345 | }), | 1357 | }), |
| 1346 | }; | 1358 | }; |