Source
   pub const cpu = struct {
    pub const bonaire: CpuModel = .{
        .name = "bonaire",
        .llvm_name = "bonaire",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .sea_islands,
        }),
    };
    pub const carrizo: CpuModel = .{
        .name = "carrizo",
        .llvm_name = "carrizo",
        .features = featureSet(&[_]Feature{
            .fast_fmaf,
            .half_rate_64_ops,
            .ldsbankcount32,
            .unpacked_d16_vmem,
            .volcanic_islands,
            .xnack_support,
        }),
    };
    pub const fiji: CpuModel = .{
        .name = "fiji",
        .llvm_name = "fiji",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .unpacked_d16_vmem,
            .volcanic_islands,
        }),
    };
    pub const generic: CpuModel = .{
        .name = "generic",
        .llvm_name = "generic",
        .features = featureSet(&[_]Feature{}),
    };
    pub const generic_hsa: CpuModel = .{
        .name = "generic_hsa",
        .llvm_name = "generic-hsa",
        .features = featureSet(&[_]Feature{
            .flat_address_space,
        }),
    };
    pub const gfx1010: CpuModel = .{
        .name = "gfx1010",
        .llvm_name = "gfx1010",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .ds_src2_insts,
            .flat_segment_offset_bug,
            .get_wave_id_inst,
            .gfx10,
            .inst_fwd_prefetch_bug,
            .lds_branch_vmem_war_hazard,
            .lds_misaligned_bug,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .negative_unaligned_scratch_offset_bug,
            .nsa_clause_bug,
            .nsa_encoding,
            .nsa_to_vmem_bug,
            .offset_3f_bug,
            .scalar_atomics,
            .scalar_flat_scratch_insts,
            .scalar_stores,
            .smem_to_vector_write_hazard,
            .vcmpx_exec_war_hazard,
            .vcmpx_permlane_hazard,
            .vmem_to_scalar_write_hazard,
            .xnack_support,
        }),
    };
    pub const gfx1011: CpuModel = .{
        .name = "gfx1011",
        .llvm_name = "gfx1011",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .ds_src2_insts,
            .flat_segment_offset_bug,
            .get_wave_id_inst,
            .gfx10,
            .inst_fwd_prefetch_bug,
            .lds_branch_vmem_war_hazard,
            .lds_misaligned_bug,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .negative_unaligned_scratch_offset_bug,
            .nsa_clause_bug,
            .nsa_encoding,
            .nsa_to_vmem_bug,
            .offset_3f_bug,
            .scalar_atomics,
            .scalar_flat_scratch_insts,
            .scalar_stores,
            .smem_to_vector_write_hazard,
            .vcmpx_exec_war_hazard,
            .vcmpx_permlane_hazard,
            .vmem_to_scalar_write_hazard,
            .xnack_support,
        }),
    };
    pub const gfx1012: CpuModel = .{
        .name = "gfx1012",
        .llvm_name = "gfx1012",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .ds_src2_insts,
            .flat_segment_offset_bug,
            .get_wave_id_inst,
            .gfx10,
            .inst_fwd_prefetch_bug,
            .lds_branch_vmem_war_hazard,
            .lds_misaligned_bug,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .negative_unaligned_scratch_offset_bug,
            .nsa_clause_bug,
            .nsa_encoding,
            .nsa_to_vmem_bug,
            .offset_3f_bug,
            .scalar_atomics,
            .scalar_flat_scratch_insts,
            .scalar_stores,
            .smem_to_vector_write_hazard,
            .vcmpx_exec_war_hazard,
            .vcmpx_permlane_hazard,
            .vmem_to_scalar_write_hazard,
            .xnack_support,
        }),
    };
    pub const gfx1013: CpuModel = .{
        .name = "gfx1013",
        .llvm_name = "gfx1013",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .ds_src2_insts,
            .flat_segment_offset_bug,
            .get_wave_id_inst,
            .gfx10,
            .gfx10_a_encoding,
            .inst_fwd_prefetch_bug,
            .lds_branch_vmem_war_hazard,
            .lds_misaligned_bug,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .negative_unaligned_scratch_offset_bug,
            .nsa_clause_bug,
            .nsa_encoding,
            .nsa_to_vmem_bug,
            .offset_3f_bug,
            .scalar_atomics,
            .scalar_flat_scratch_insts,
            .scalar_stores,
            .smem_to_vector_write_hazard,
            .vcmpx_exec_war_hazard,
            .vcmpx_permlane_hazard,
            .vmem_to_scalar_write_hazard,
            .xnack_support,
        }),
    };
    pub const gfx1030: CpuModel = .{
        .name = "gfx1030",
        .llvm_name = "gfx1030",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .gfx10,
            .gfx10_3_insts,
            .gfx10_a_encoding,
            .gfx10_b_encoding,
            .ldsbankcount32,
            .nsa_encoding,
            .shader_cycles_register,
        }),
    };
    pub const gfx1031: CpuModel = .{
        .name = "gfx1031",
        .llvm_name = "gfx1031",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .gfx10,
            .gfx10_3_insts,
            .gfx10_a_encoding,
            .gfx10_b_encoding,
            .ldsbankcount32,
            .nsa_encoding,
            .shader_cycles_register,
        }),
    };
    pub const gfx1032: CpuModel = .{
        .name = "gfx1032",
        .llvm_name = "gfx1032",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .gfx10,
            .gfx10_3_insts,
            .gfx10_a_encoding,
            .gfx10_b_encoding,
            .ldsbankcount32,
            .nsa_encoding,
            .shader_cycles_register,
        }),
    };
    pub const gfx1033: CpuModel = .{
        .name = "gfx1033",
        .llvm_name = "gfx1033",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .gfx10,
            .gfx10_3_insts,
            .gfx10_a_encoding,
            .gfx10_b_encoding,
            .ldsbankcount32,
            .nsa_encoding,
            .shader_cycles_register,
        }),
    };
    pub const gfx1034: CpuModel = .{
        .name = "gfx1034",
        .llvm_name = "gfx1034",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .gfx10,
            .gfx10_3_insts,
            .gfx10_a_encoding,
            .gfx10_b_encoding,
            .ldsbankcount32,
            .nsa_encoding,
            .shader_cycles_register,
        }),
    };
    pub const gfx1035: CpuModel = .{
        .name = "gfx1035",
        .llvm_name = "gfx1035",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .gfx10,
            .gfx10_3_insts,
            .gfx10_a_encoding,
            .gfx10_b_encoding,
            .ldsbankcount32,
            .nsa_encoding,
            .shader_cycles_register,
        }),
    };
    pub const gfx1036: CpuModel = .{
        .name = "gfx1036",
        .llvm_name = "gfx1036",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .gfx10,
            .gfx10_3_insts,
            .gfx10_a_encoding,
            .gfx10_b_encoding,
            .ldsbankcount32,
            .nsa_encoding,
            .shader_cycles_register,
        }),
    };
    pub const gfx10_1_generic: CpuModel = .{
        .name = "gfx10_1_generic",
        .llvm_name = "gfx10-1-generic",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .ds_src2_insts,
            .flat_segment_offset_bug,
            .get_wave_id_inst,
            .gfx10,
            .inst_fwd_prefetch_bug,
            .lds_branch_vmem_war_hazard,
            .lds_misaligned_bug,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .negative_unaligned_scratch_offset_bug,
            .nsa_clause_bug,
            .nsa_encoding,
            .nsa_to_vmem_bug,
            .offset_3f_bug,
            .requires_cov6,
            .scalar_atomics,
            .scalar_flat_scratch_insts,
            .scalar_stores,
            .smem_to_vector_write_hazard,
            .vcmpx_exec_war_hazard,
            .vcmpx_permlane_hazard,
            .vmem_to_scalar_write_hazard,
            .xnack_support,
        }),
    };
    pub const gfx10_3_generic: CpuModel = .{
        .name = "gfx10_3_generic",
        .llvm_name = "gfx10-3-generic",
        .features = featureSet(&[_]Feature{
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .gfx10,
            .gfx10_3_insts,
            .gfx10_a_encoding,
            .gfx10_b_encoding,
            .ldsbankcount32,
            .nsa_encoding,
            .requires_cov6,
            .shader_cycles_register,
        }),
    };
    pub const gfx1100: CpuModel = .{
        .name = "gfx1100",
        .llvm_name = "gfx1100",
        .features = featureSet(&[_]Feature{
            .allocate1_5xvgprs,
            .architected_flat_scratch,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .dl_insts,
            .dot10_insts,
            .dot12_insts,
            .dot5_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .flat_atomic_fadd_f32_inst,
            .gfx11,
            .image_insts,
            .ldsbankcount32,
            .mad_intra_fwd_bug,
            .memory_atomic_fadd_f32_denormal_support,
            .msaa_load_dst_sel_bug,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .priv_enabled_trap2_nop_bug,
            .real_true16,
            .shader_cycles_register,
            .user_sgpr_init16_bug,
            .valu_trans_use_hazard,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx1101: CpuModel = .{
        .name = "gfx1101",
        .llvm_name = "gfx1101",
        .features = featureSet(&[_]Feature{
            .allocate1_5xvgprs,
            .architected_flat_scratch,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .dl_insts,
            .dot10_insts,
            .dot12_insts,
            .dot5_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .flat_atomic_fadd_f32_inst,
            .gfx11,
            .image_insts,
            .ldsbankcount32,
            .mad_intra_fwd_bug,
            .memory_atomic_fadd_f32_denormal_support,
            .msaa_load_dst_sel_bug,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .priv_enabled_trap2_nop_bug,
            .real_true16,
            .shader_cycles_register,
            .valu_trans_use_hazard,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx1102: CpuModel = .{
        .name = "gfx1102",
        .llvm_name = "gfx1102",
        .features = featureSet(&[_]Feature{
            .architected_flat_scratch,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .dl_insts,
            .dot10_insts,
            .dot12_insts,
            .dot5_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .flat_atomic_fadd_f32_inst,
            .gfx11,
            .image_insts,
            .ldsbankcount32,
            .mad_intra_fwd_bug,
            .memory_atomic_fadd_f32_denormal_support,
            .msaa_load_dst_sel_bug,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .priv_enabled_trap2_nop_bug,
            .real_true16,
            .shader_cycles_register,
            .user_sgpr_init16_bug,
            .valu_trans_use_hazard,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx1103: CpuModel = .{
        .name = "gfx1103",
        .llvm_name = "gfx1103",
        .features = featureSet(&[_]Feature{
            .architected_flat_scratch,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .dl_insts,
            .dot10_insts,
            .dot12_insts,
            .dot5_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .flat_atomic_fadd_f32_inst,
            .gfx11,
            .image_insts,
            .ldsbankcount32,
            .mad_intra_fwd_bug,
            .memory_atomic_fadd_f32_denormal_support,
            .msaa_load_dst_sel_bug,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .priv_enabled_trap2_nop_bug,
            .real_true16,
            .shader_cycles_register,
            .valu_trans_use_hazard,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx1150: CpuModel = .{
        .name = "gfx1150",
        .llvm_name = "gfx1150",
        .features = featureSet(&[_]Feature{
            .architected_flat_scratch,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .dl_insts,
            .dot10_insts,
            .dot12_insts,
            .dot5_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .dpp_src1_sgpr,
            .flat_atomic_fadd_f32_inst,
            .gfx11,
            .image_insts,
            .ldsbankcount32,
            .memory_atomic_fadd_f32_denormal_support,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .point_sample_accel,
            .required_export_priority,
            .salu_float,
            .shader_cycles_register,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx1151: CpuModel = .{
        .name = "gfx1151",
        .llvm_name = "gfx1151",
        .features = featureSet(&[_]Feature{
            .allocate1_5xvgprs,
            .architected_flat_scratch,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .dl_insts,
            .dot10_insts,
            .dot12_insts,
            .dot5_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .dpp_src1_sgpr,
            .flat_atomic_fadd_f32_inst,
            .gfx11,
            .image_insts,
            .ldsbankcount32,
            .memory_atomic_fadd_f32_denormal_support,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .point_sample_accel,
            .required_export_priority,
            .salu_float,
            .shader_cycles_register,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx1152: CpuModel = .{
        .name = "gfx1152",
        .llvm_name = "gfx1152",
        .features = featureSet(&[_]Feature{
            .architected_flat_scratch,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .dl_insts,
            .dot10_insts,
            .dot12_insts,
            .dot5_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .dpp_src1_sgpr,
            .flat_atomic_fadd_f32_inst,
            .gfx11,
            .image_insts,
            .ldsbankcount32,
            .memory_atomic_fadd_f32_denormal_support,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .point_sample_accel,
            .required_export_priority,
            .salu_float,
            .shader_cycles_register,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx1153: CpuModel = .{
        .name = "gfx1153",
        .llvm_name = "gfx1153",
        .features = featureSet(&[_]Feature{
            .architected_flat_scratch,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .dl_insts,
            .dot10_insts,
            .dot12_insts,
            .dot5_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .dpp_src1_sgpr,
            .flat_atomic_fadd_f32_inst,
            .gfx11,
            .image_insts,
            .ldsbankcount32,
            .memory_atomic_fadd_f32_denormal_support,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .required_export_priority,
            .salu_float,
            .shader_cycles_register,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx11_generic: CpuModel = .{
        .name = "gfx11_generic",
        .llvm_name = "gfx11-generic",
        .features = featureSet(&[_]Feature{
            .architected_flat_scratch,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .dl_insts,
            .dot10_insts,
            .dot12_insts,
            .dot5_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .flat_atomic_fadd_f32_inst,
            .gfx11,
            .image_insts,
            .ldsbankcount32,
            .mad_intra_fwd_bug,
            .memory_atomic_fadd_f32_denormal_support,
            .msaa_load_dst_sel_bug,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .priv_enabled_trap2_nop_bug,
            .required_export_priority,
            .requires_cov6,
            .shader_cycles_register,
            .user_sgpr_init16_bug,
            .valu_trans_use_hazard,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx1200: CpuModel = .{
        .name = "gfx1200",
        .llvm_name = "gfx1200",
        .features = featureSet(&[_]Feature{
            .allocate1_5xvgprs,
            .architected_flat_scratch,
            .architected_sgprs,
            .atomic_buffer_global_pk_add_f16_insts,
            .atomic_buffer_pk_add_bf16_inst,
            .atomic_ds_pk_add_16_insts,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .atomic_flat_pk_add_16_insts,
            .atomic_global_pk_add_bf16_inst,
            .bvh_dual_bvh_8_insts,
            .dl_insts,
            .dot10_insts,
            .dot11_insts,
            .dot12_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .dpp_src1_sgpr,
            .extended_image_insts,
            .flat_atomic_fadd_f32_inst,
            .fp8_conversion_insts,
            .gfx12,
            .image_insts,
            .ldsbankcount32,
            .memory_atomic_fadd_f32_denormal_support,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .pseudo_scalar_trans,
            .restricted_soffset,
            .salu_float,
            .scalar_dwordx3_loads,
            .shader_cycles_hi_lo_registers,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx1201: CpuModel = .{
        .name = "gfx1201",
        .llvm_name = "gfx1201",
        .features = featureSet(&[_]Feature{
            .allocate1_5xvgprs,
            .architected_flat_scratch,
            .architected_sgprs,
            .atomic_buffer_global_pk_add_f16_insts,
            .atomic_buffer_pk_add_bf16_inst,
            .atomic_ds_pk_add_16_insts,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .atomic_flat_pk_add_16_insts,
            .atomic_global_pk_add_bf16_inst,
            .bvh_dual_bvh_8_insts,
            .dl_insts,
            .dot10_insts,
            .dot11_insts,
            .dot12_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .dpp_src1_sgpr,
            .extended_image_insts,
            .flat_atomic_fadd_f32_inst,
            .fp8_conversion_insts,
            .gfx12,
            .image_insts,
            .ldsbankcount32,
            .memory_atomic_fadd_f32_denormal_support,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .pseudo_scalar_trans,
            .restricted_soffset,
            .salu_float,
            .scalar_dwordx3_loads,
            .shader_cycles_hi_lo_registers,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx1250: CpuModel = .{
        .name = "gfx1250",
        .llvm_name = "gfx1250",
        .features = featureSet(&[_]Feature{
            .@"64_bit_literals",
            .architected_flat_scratch,
            .architected_sgprs,
            .ashr_pk_insts,
            .atomic_buffer_global_pk_add_f16_insts,
            .atomic_buffer_pk_add_bf16_inst,
            .atomic_ds_pk_add_16_insts,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .atomic_flat_pk_add_16_insts,
            .atomic_fmin_fmax_flat_f64,
            .atomic_fmin_fmax_global_f64,
            .atomic_global_pk_add_bf16_inst,
            .bf16_cvt_insts,
            .bf16_trans_insts,
            .bitop3_insts,
            .cumode,
            .cvt_pk_f16_f32_inst,
            .dl_insts,
            .dot7_insts,
            .dot8_insts,
            .dpp_src1_sgpr,
            .flat_atomic_fadd_f32_inst,
            .flat_buffer_global_fadd_f64_inst,
            .fmacf64_inst,
            .fp8_conversion_insts,
            .fp8e5m3_insts,
            .gfx12,
            .gfx1250_insts,
            .kernarg_preload,
            .lds_barrier_arrive_atomic,
            .ldsbankcount32,
            .lshl_add_u64_inst,
            .max_hard_clause_length_63,
            .memory_atomic_fadd_f32_denormal_support,
            .minimum3_maximum3_pkf16,
            .packed_fp32_ops,
            .packed_tid,
            .permlane16_swap,
            .prng_inst,
            .pseudo_scalar_trans,
            .restricted_soffset,
            .salu_float,
            .scalar_dwordx3_loads,
            .setprio_inc_wg_inst,
            .shader_cycles_hi_lo_registers,
            .sramecc_support,
            .transpose_load_f4f6_insts,
            .vcmpx_permlane_hazard,
            .wait_xcnt,
            .wavefrontsize32,
        }),
    };
    pub const gfx12_generic: CpuModel = .{
        .name = "gfx12_generic",
        .llvm_name = "gfx12-generic",
        .features = featureSet(&[_]Feature{
            .allocate1_5xvgprs,
            .architected_flat_scratch,
            .architected_sgprs,
            .atomic_buffer_global_pk_add_f16_insts,
            .atomic_buffer_pk_add_bf16_inst,
            .atomic_ds_pk_add_16_insts,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .atomic_flat_pk_add_16_insts,
            .atomic_global_pk_add_bf16_inst,
            .bvh_dual_bvh_8_insts,
            .dl_insts,
            .dot10_insts,
            .dot11_insts,
            .dot12_insts,
            .dot7_insts,
            .dot8_insts,
            .dot9_insts,
            .dpp_src1_sgpr,
            .extended_image_insts,
            .flat_atomic_fadd_f32_inst,
            .fp8_conversion_insts,
            .gfx12,
            .image_insts,
            .ldsbankcount32,
            .memory_atomic_fadd_f32_denormal_support,
            .nsa_encoding,
            .packed_tid,
            .partial_nsa_encoding,
            .pseudo_scalar_trans,
            .requires_cov6,
            .restricted_soffset,
            .salu_float,
            .scalar_dwordx3_loads,
            .shader_cycles_hi_lo_registers,
            .vcmpx_permlane_hazard,
        }),
    };
    pub const gfx600: CpuModel = .{
        .name = "gfx600",
        .llvm_name = "gfx600",
        .features = featureSet(&[_]Feature{
            .fast_fmaf,
            .half_rate_64_ops,
            .southern_islands,
        }),
    };
    pub const gfx601: CpuModel = .{
        .name = "gfx601",
        .llvm_name = "gfx601",
        .features = featureSet(&[_]Feature{
            .southern_islands,
        }),
    };
    pub const gfx602: CpuModel = .{
        .name = "gfx602",
        .llvm_name = "gfx602",
        .features = featureSet(&[_]Feature{
            .southern_islands,
        }),
    };
    pub const gfx700: CpuModel = .{
        .name = "gfx700",
        .llvm_name = "gfx700",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .sea_islands,
        }),
    };
    pub const gfx701: CpuModel = .{
        .name = "gfx701",
        .llvm_name = "gfx701",
        .features = featureSet(&[_]Feature{
            .fast_fmaf,
            .half_rate_64_ops,
            .ldsbankcount32,
            .sea_islands,
        }),
    };
    pub const gfx702: CpuModel = .{
        .name = "gfx702",
        .llvm_name = "gfx702",
        .features = featureSet(&[_]Feature{
            .fast_fmaf,
            .ldsbankcount16,
            .sea_islands,
        }),
    };
    pub const gfx703: CpuModel = .{
        .name = "gfx703",
        .llvm_name = "gfx703",
        .features = featureSet(&[_]Feature{
            .ldsbankcount16,
            .sea_islands,
        }),
    };
    pub const gfx704: CpuModel = .{
        .name = "gfx704",
        .llvm_name = "gfx704",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .sea_islands,
        }),
    };
    pub const gfx705: CpuModel = .{
        .name = "gfx705",
        .llvm_name = "gfx705",
        .features = featureSet(&[_]Feature{
            .ldsbankcount16,
            .sea_islands,
        }),
    };
    pub const gfx801: CpuModel = .{
        .name = "gfx801",
        .llvm_name = "gfx801",
        .features = featureSet(&[_]Feature{
            .fast_fmaf,
            .half_rate_64_ops,
            .ldsbankcount32,
            .unpacked_d16_vmem,
            .volcanic_islands,
            .xnack_support,
        }),
    };
    pub const gfx802: CpuModel = .{
        .name = "gfx802",
        .llvm_name = "gfx802",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .sgpr_init_bug,
            .unpacked_d16_vmem,
            .volcanic_islands,
        }),
    };
    pub const gfx803: CpuModel = .{
        .name = "gfx803",
        .llvm_name = "gfx803",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .unpacked_d16_vmem,
            .volcanic_islands,
        }),
    };
    pub const gfx805: CpuModel = .{
        .name = "gfx805",
        .llvm_name = "gfx805",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .sgpr_init_bug,
            .unpacked_d16_vmem,
            .volcanic_islands,
        }),
    };
    pub const gfx810: CpuModel = .{
        .name = "gfx810",
        .llvm_name = "gfx810",
        .features = featureSet(&[_]Feature{
            .image_gather4_d16_bug,
            .image_store_d16_bug,
            .ldsbankcount16,
            .volcanic_islands,
            .xnack_support,
        }),
    };
    pub const gfx900: CpuModel = .{
        .name = "gfx900",
        .llvm_name = "gfx900",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize65536,
            .ds_src2_insts,
            .extended_image_insts,
            .gds,
            .gfx9,
            .image_gather4_d16_bug,
            .image_insts,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .mad_mix_insts,
        }),
    };
    pub const gfx902: CpuModel = .{
        .name = "gfx902",
        .llvm_name = "gfx902",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize65536,
            .ds_src2_insts,
            .extended_image_insts,
            .gds,
            .gfx9,
            .image_gather4_d16_bug,
            .image_insts,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .mad_mix_insts,
        }),
    };
    pub const gfx904: CpuModel = .{
        .name = "gfx904",
        .llvm_name = "gfx904",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize65536,
            .ds_src2_insts,
            .extended_image_insts,
            .fma_mix_insts,
            .gds,
            .gfx9,
            .image_gather4_d16_bug,
            .image_insts,
            .ldsbankcount32,
            .mad_mac_f32_insts,
        }),
    };
    pub const gfx906: CpuModel = .{
        .name = "gfx906",
        .llvm_name = "gfx906",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize65536,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot7_insts,
            .ds_src2_insts,
            .extended_image_insts,
            .fma_mix_insts,
            .gds,
            .gfx9,
            .half_rate_64_ops,
            .image_gather4_d16_bug,
            .image_insts,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .sramecc_support,
        }),
    };
    pub const gfx908: CpuModel = .{
        .name = "gfx908",
        .llvm_name = "gfx908",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize65536,
            .atomic_buffer_global_pk_add_f16_no_rtn_insts,
            .atomic_fadd_no_rtn_insts,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot3_insts,
            .dot4_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .ds_src2_insts,
            .extended_image_insts,
            .fma_mix_insts,
            .gds,
            .gfx9,
            .half_rate_64_ops,
            .image_gather4_d16_bug,
            .image_insts,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .mai_insts,
            .mfma_inline_literal_bug,
            .pk_fmac_f16_inst,
            .sramecc_support,
        }),
    };
    pub const gfx909: CpuModel = .{
        .name = "gfx909",
        .llvm_name = "gfx909",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize65536,
            .ds_src2_insts,
            .extended_image_insts,
            .gds,
            .gfx9,
            .image_gather4_d16_bug,
            .image_insts,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .mad_mix_insts,
        }),
    };
    pub const gfx90a: CpuModel = .{
        .name = "gfx90a",
        .llvm_name = "gfx90a",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize65536,
            .atomic_buffer_global_pk_add_f16_insts,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .atomic_fmin_fmax_flat_f64,
            .atomic_fmin_fmax_global_f64,
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot3_insts,
            .dot4_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .dpp_64bit,
            .flat_buffer_global_fadd_f64_inst,
            .fma_mix_insts,
            .fmacf64_inst,
            .full_rate_64_ops,
            .gfx9,
            .gfx90a_insts,
            .image_insts,
            .kernarg_preload,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .mai_insts,
            .packed_fp32_ops,
            .packed_tid,
            .pk_fmac_f16_inst,
            .sramecc_support,
        }),
    };
    pub const gfx90c: CpuModel = .{
        .name = "gfx90c",
        .llvm_name = "gfx90c",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize65536,
            .ds_src2_insts,
            .extended_image_insts,
            .gds,
            .gfx9,
            .image_gather4_d16_bug,
            .image_insts,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .mad_mix_insts,
        }),
    };
    pub const gfx942: CpuModel = .{
        .name = "gfx942",
        .llvm_name = "gfx942",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize65536,
            .agent_scope_fine_grained_remote_memory_atomics,
            .architected_flat_scratch,
            .atomic_buffer_global_pk_add_f16_insts,
            .atomic_ds_pk_add_16_insts,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .atomic_flat_pk_add_16_insts,
            .atomic_fmin_fmax_flat_f64,
            .atomic_fmin_fmax_global_f64,
            .atomic_global_pk_add_bf16_inst,
            .back_off_barrier,
            .cvt_fp8_vop1_bug,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot3_insts,
            .dot4_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .dpp_64bit,
            .flat_atomic_fadd_f32_inst,
            .flat_buffer_global_fadd_f64_inst,
            .fma_mix_insts,
            .fmacf64_inst,
            .fp8_insts,
            .full_rate_64_ops,
            .gfx9,
            .gfx90a_insts,
            .gfx940_insts,
            .kernarg_preload,
            .ldsbankcount32,
            .lshl_add_u64_inst,
            .mai_insts,
            .memory_atomic_fadd_f32_denormal_support,
            .packed_fp32_ops,
            .packed_tid,
            .pk_fmac_f16_inst,
            .sramecc_support,
            .xf32_insts,
        }),
    };
    pub const gfx950: CpuModel = .{
        .name = "gfx950",
        .llvm_name = "gfx950",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize163840,
            .agent_scope_fine_grained_remote_memory_atomics,
            .architected_flat_scratch,
            .atomic_buffer_global_pk_add_f16_insts,
            .atomic_buffer_pk_add_bf16_inst,
            .atomic_ds_pk_add_16_insts,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .atomic_flat_pk_add_16_insts,
            .atomic_fmin_fmax_flat_f64,
            .atomic_fmin_fmax_global_f64,
            .atomic_global_pk_add_bf16_inst,
            .back_off_barrier,
            .bf16_cvt_insts,
            .bitop3_insts,
            .dl_insts,
            .dot10_insts,
            .dot12_insts,
            .dot13_insts,
            .dot1_insts,
            .dot2_insts,
            .dot3_insts,
            .dot4_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .dpp_64bit,
            .flat_atomic_fadd_f32_inst,
            .flat_buffer_global_fadd_f64_inst,
            .fma_mix_insts,
            .fmacf64_inst,
            .fp8_conversion_insts,
            .fp8_insts,
            .full_rate_64_ops,
            .gfx9,
            .gfx90a_insts,
            .gfx940_insts,
            .gfx950_insts,
            .kernarg_preload,
            .ldsbankcount32,
            .lshl_add_u64_inst,
            .mai_insts,
            .memory_atomic_fadd_f32_denormal_support,
            .packed_fp32_ops,
            .packed_tid,
            .pk_fmac_f16_inst,
            .prng_inst,
            .sramecc_support,
        }),
    };
    pub const gfx9_4_generic: CpuModel = .{
        .name = "gfx9_4_generic",
        .llvm_name = "gfx9-4-generic",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize65536,
            .agent_scope_fine_grained_remote_memory_atomics,
            .architected_flat_scratch,
            .atomic_buffer_global_pk_add_f16_insts,
            .atomic_ds_pk_add_16_insts,
            .atomic_fadd_no_rtn_insts,
            .atomic_fadd_rtn_insts,
            .atomic_flat_pk_add_16_insts,
            .atomic_fmin_fmax_flat_f64,
            .atomic_fmin_fmax_global_f64,
            .atomic_global_pk_add_bf16_inst,
            .back_off_barrier,
            .dl_insts,
            .dot10_insts,
            .dot1_insts,
            .dot2_insts,
            .dot3_insts,
            .dot4_insts,
            .dot5_insts,
            .dot6_insts,
            .dot7_insts,
            .dpp_64bit,
            .flat_atomic_fadd_f32_inst,
            .flat_buffer_global_fadd_f64_inst,
            .fma_mix_insts,
            .fmacf64_inst,
            .full_rate_64_ops,
            .gfx9,
            .gfx90a_insts,
            .gfx940_insts,
            .kernarg_preload,
            .ldsbankcount32,
            .lshl_add_u64_inst,
            .mai_insts,
            .memory_atomic_fadd_f32_denormal_support,
            .packed_fp32_ops,
            .packed_tid,
            .pk_fmac_f16_inst,
            .requires_cov6,
            .sramecc_support,
        }),
    };
    pub const gfx9_generic: CpuModel = .{
        .name = "gfx9_generic",
        .llvm_name = "gfx9-generic",
        .features = featureSet(&[_]Feature{
            .addressablelocalmemorysize65536,
            .ds_src2_insts,
            .extended_image_insts,
            .gds,
            .gfx9,
            .image_gather4_d16_bug,
            .image_insts,
            .ldsbankcount32,
            .mad_mac_f32_insts,
            .requires_cov6,
        }),
    };
    pub const hainan: CpuModel = .{
        .name = "hainan",
        .llvm_name = "hainan",
        .features = featureSet(&[_]Feature{
            .southern_islands,
        }),
    };
    pub const hawaii: CpuModel = .{
        .name = "hawaii",
        .llvm_name = "hawaii",
        .features = featureSet(&[_]Feature{
            .fast_fmaf,
            .half_rate_64_ops,
            .ldsbankcount32,
            .sea_islands,
        }),
    };
    pub const iceland: CpuModel = .{
        .name = "iceland",
        .llvm_name = "iceland",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .sgpr_init_bug,
            .unpacked_d16_vmem,
            .volcanic_islands,
        }),
    };
    pub const kabini: CpuModel = .{
        .name = "kabini",
        .llvm_name = "kabini",
        .features = featureSet(&[_]Feature{
            .ldsbankcount16,
            .sea_islands,
        }),
    };
    pub const kaveri: CpuModel = .{
        .name = "kaveri",
        .llvm_name = "kaveri",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .sea_islands,
        }),
    };
    pub const mullins: CpuModel = .{
        .name = "mullins",
        .llvm_name = "mullins",
        .features = featureSet(&[_]Feature{
            .ldsbankcount16,
            .sea_islands,
        }),
    };
    pub const oland: CpuModel = .{
        .name = "oland",
        .llvm_name = "oland",
        .features = featureSet(&[_]Feature{
            .southern_islands,
        }),
    };
    pub const pitcairn: CpuModel = .{
        .name = "pitcairn",
        .llvm_name = "pitcairn",
        .features = featureSet(&[_]Feature{
            .southern_islands,
        }),
    };
    pub const polaris10: CpuModel = .{
        .name = "polaris10",
        .llvm_name = "polaris10",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .unpacked_d16_vmem,
            .volcanic_islands,
        }),
    };
    pub const polaris11: CpuModel = .{
        .name = "polaris11",
        .llvm_name = "polaris11",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .unpacked_d16_vmem,
            .volcanic_islands,
        }),
    };
    pub const stoney: CpuModel = .{
        .name = "stoney",
        .llvm_name = "stoney",
        .features = featureSet(&[_]Feature{
            .image_gather4_d16_bug,
            .image_store_d16_bug,
            .ldsbankcount16,
            .volcanic_islands,
            .xnack_support,
        }),
    };
    pub const tahiti: CpuModel = .{
        .name = "tahiti",
        .llvm_name = "tahiti",
        .features = featureSet(&[_]Feature{
            .fast_fmaf,
            .half_rate_64_ops,
            .southern_islands,
        }),
    };
    pub const tonga: CpuModel = .{
        .name = "tonga",
        .llvm_name = "tonga",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .sgpr_init_bug,
            .unpacked_d16_vmem,
            .volcanic_islands,
        }),
    };
    pub const tongapro: CpuModel = .{
        .name = "tongapro",
        .llvm_name = "tongapro",
        .features = featureSet(&[_]Feature{
            .ldsbankcount32,
            .sgpr_init_bug,
            .unpacked_d16_vmem,
            .volcanic_islands,
        }),
    };
    pub const verde: CpuModel = .{
        .name = "verde",
        .llvm_name = "verde",
        .features = featureSet(&[_]Feature{
            .southern_islands,
        }),
    };
}