Source
   pub const cpu = struct {
    pub const generic: CpuModel = .{
        .name = "generic",
        .llvm_name = "generic",
        .features = featureSet(&[_]Feature{
            .cabac,
            .compound,
            .duplex,
            .memops,
            .nvj,
            .nvs,
            .prev65,
            .small_data,
            .v5,
            .v55,
            .v60,
        }),
    };
    pub const hexagonv5: CpuModel = .{
        .name = "hexagonv5",
        .llvm_name = "hexagonv5",
        .features = featureSet(&[_]Feature{
            .cabac,
            .compound,
            .duplex,
            .memops,
            .nvj,
            .nvs,
            .prev65,
            .small_data,
            .v5,
        }),
    };
    pub const hexagonv55: CpuModel = .{
        .name = "hexagonv55",
        .llvm_name = "hexagonv55",
        .features = featureSet(&[_]Feature{
            .cabac,
            .compound,
            .duplex,
            .memops,
            .nvj,
            .nvs,
            .prev65,
            .small_data,
            .v5,
            .v55,
        }),
    };
    pub const hexagonv60: CpuModel = .{
        .name = "hexagonv60",
        .llvm_name = "hexagonv60",
        .features = featureSet(&[_]Feature{
            .cabac,
            .compound,
            .duplex,
            .memops,
            .nvj,
            .nvs,
            .prev65,
            .small_data,
            .v5,
            .v55,
            .v60,
        }),
    };
    pub const hexagonv62: CpuModel = .{
        .name = "hexagonv62",
        .llvm_name = "hexagonv62",
        .features = featureSet(&[_]Feature{
            .cabac,
            .compound,
            .duplex,
            .memops,
            .nvj,
            .nvs,
            .prev65,
            .small_data,
            .v5,
            .v55,
            .v60,
            .v62,
        }),
    };
    pub const hexagonv65: CpuModel = .{
        .name = "hexagonv65",
        .llvm_name = "hexagonv65",
        .features = featureSet(&[_]Feature{
            .cabac,
            .compound,
            .duplex,
            .mem_noshuf,
            .memops,
            .nvj,
            .nvs,
            .small_data,
            .v5,
            .v55,
            .v60,
            .v62,
            .v65,
        }),
    };
    pub const hexagonv66: CpuModel = .{
        .name = "hexagonv66",
        .llvm_name = "hexagonv66",
        .features = featureSet(&[_]Feature{
            .cabac,
            .compound,
            .duplex,
            .mem_noshuf,
            .memops,
            .nvj,
            .nvs,
            .small_data,
            .v5,
            .v55,
            .v60,
            .v62,
            .v65,
            .v66,
        }),
    };
    pub const hexagonv67: CpuModel = .{
        .name = "hexagonv67",
        .llvm_name = "hexagonv67",
        .features = featureSet(&[_]Feature{
            .cabac,
            .compound,
            .duplex,
            .mem_noshuf,
            .memops,
            .nvj,
            .nvs,
            .small_data,
            .v5,
            .v55,
            .v60,
            .v62,
            .v65,
            .v66,
            .v67,
        }),
    };
    pub const hexagonv67t: CpuModel = .{
        .name = "hexagonv67t",
        .llvm_name = "hexagonv67t",
        .features = featureSet(&[_]Feature{
            .audio,
            .compound,
            .mem_noshuf,
            .memops,
            .nvs,
            .small_data,
            .tinycore,
            .v5,
            .v55,
            .v60,
            .v62,
            .v65,
            .v66,
            .v67,
        }),
    };
    pub const hexagonv68: CpuModel = .{
        .name = "hexagonv68",
        .llvm_name = "hexagonv68",
        .features = featureSet(&[_]Feature{
            .cabac,
            .compound,
            .duplex,
            .mem_noshuf,
            .memops,
            .nvj,
            .nvs,
            .small_data,
            .v5,
            .v55,
            .v60,
            .v62,
            .v65,
            .v66,
            .v67,
            .v68,
        }),
    };
    pub const hexagonv69: CpuModel = .{
        .name = "hexagonv69",
        .llvm_name = "hexagonv69",
        .features = featureSet(&[_]Feature{
            .cabac,
            .compound,
            .duplex,
            .mem_noshuf,
            .memops,
            .nvj,
            .nvs,
            .small_data,
            .v5,
            .v55,
            .v60,
            .v62,
            .v65,
            .v66,
            .v67,
            .v68,
            .v69,
        }),
    };
    pub const hexagonv71: CpuModel = .{
        .name = "hexagonv71",
        .llvm_name = "hexagonv71",
        .features = featureSet(&[_]Feature{
            .cabac,
            .compound,
            .duplex,
            .mem_noshuf,
            .memops,
            .nvj,
            .nvs,
            .small_data,
            .v5,
            .v55,
            .v60,
            .v62,
            .v65,
            .v66,
            .v67,
            .v68,
            .v69,
            .v71,
        }),
    };
    pub const hexagonv71t: CpuModel = .{
        .name = "hexagonv71t",
        .llvm_name = "hexagonv71t",
        .features = featureSet(&[_]Feature{
            .audio,
            .compound,
            .mem_noshuf,
            .memops,
            .nvs,
            .small_data,
            .tinycore,
            .v5,
            .v55,
            .v60,
            .v62,
            .v65,
            .v66,
            .v67,
            .v68,
            .v69,
            .v71,
        }),
    };
    pub const hexagonv73: CpuModel = .{
        .name = "hexagonv73",
        .llvm_name = "hexagonv73",
        .features = featureSet(&[_]Feature{
            .compound,
            .duplex,
            .mem_noshuf,
            .memops,
            .nvj,
            .nvs,
            .small_data,
            .v5,
            .v55,
            .v60,
            .v62,
            .v65,
            .v66,
            .v67,
            .v68,
            .v69,
            .v71,
            .v73,
        }),
    };
    pub const hexagonv75: CpuModel = .{
        .name = "hexagonv75",
        .llvm_name = "hexagonv75",
        .features = featureSet(&[_]Feature{
            .compound,
            .duplex,
            .mem_noshuf,
            .memops,
            .nvj,
            .nvs,
            .small_data,
            .v5,
            .v55,
            .v60,
            .v62,
            .v65,
            .v66,
            .v67,
            .v68,
            .v69,
            .v71,
            .v73,
            .v75,
        }),
    };
    pub const hexagonv79: CpuModel = .{
        .name = "hexagonv79",
        .llvm_name = "hexagonv79",
        .features = featureSet(&[_]Feature{
            .compound,
            .duplex,
            .mem_noshuf,
            .memops,
            .nvj,
            .nvs,
            .small_data,
            .v5,
            .v55,
            .v60,
            .v62,
            .v65,
            .v66,
            .v67,
            .v68,
            .v69,
            .v71,
            .v73,
            .v75,
            .v79,
        }),
    };
}