structstd.Target.arm.cpu[src]

Values

Constantarm1020e[src]

Source Code

Source code
pub const arm1020e: CpuModel = .{
    .name = "arm1020e",
    .llvm_name = "arm1020e",
    .features = featureSet(&[_]Feature{
        .v5te,
    }),
}

Constantarm1020t[src]

Source Code

Source code
pub const arm1020t: CpuModel = .{
    .name = "arm1020t",
    .llvm_name = "arm1020t",
    .features = featureSet(&[_]Feature{
        .v5t,
    }),
}

Constantarm1022e[src]

Source Code

Source code
pub const arm1022e: CpuModel = .{
    .name = "arm1022e",
    .llvm_name = "arm1022e",
    .features = featureSet(&[_]Feature{
        .v5te,
    }),
}

Constantarm10e[src]

Source Code

Source code
pub const arm10e: CpuModel = .{
    .name = "arm10e",
    .llvm_name = "arm10e",
    .features = featureSet(&[_]Feature{
        .v5te,
    }),
}

Constantarm10tdmi[src]

Source Code

Source code
pub const arm10tdmi: CpuModel = .{
    .name = "arm10tdmi",
    .llvm_name = "arm10tdmi",
    .features = featureSet(&[_]Feature{
        .v5t,
    }),
}

Constantarm1136j_s[src]

Source Code

Source code
pub const arm1136j_s: CpuModel = .{
    .name = "arm1136j_s",
    .llvm_name = "arm1136j-s",
    .features = featureSet(&[_]Feature{
        .v6,
    }),
}

Constantarm1136jf_s[src]

Source Code

Source code
pub const arm1136jf_s: CpuModel = .{
    .name = "arm1136jf_s",
    .llvm_name = "arm1136jf-s",
    .features = featureSet(&[_]Feature{
        .slowfpvmlx,
        .v6,
        .vfp2,
    }),
}

Constantarm1156t2_s[src]

Source Code

Source code
pub const arm1156t2_s: CpuModel = .{
    .name = "arm1156t2_s",
    .llvm_name = "arm1156t2-s",
    .features = featureSet(&[_]Feature{
        .v6t2,
    }),
}

Constantarm1156t2f_s[src]

Source Code

Source code
pub const arm1156t2f_s: CpuModel = .{
    .name = "arm1156t2f_s",
    .llvm_name = "arm1156t2f-s",
    .features = featureSet(&[_]Feature{
        .slowfpvmlx,
        .v6t2,
        .vfp2,
    }),
}

Constantarm1176jz_s[src]

Source Code

Source code
pub const arm1176jz_s: CpuModel = .{
    .name = "arm1176jz_s",
    .llvm_name = "arm1176jz-s",
    .features = featureSet(&[_]Feature{
        .v6kz,
    }),
}

Constantarm1176jzf_s[src]

Source Code

Source code
pub const arm1176jzf_s: CpuModel = .{
    .name = "arm1176jzf_s",
    .llvm_name = "arm1176jzf-s",
    .features = featureSet(&[_]Feature{
        .slowfpvmlx,
        .v6kz,
        .vfp2,
    }),
}

Constantarm710t[src]

Source Code

Source code
pub const arm710t: CpuModel = .{
    .name = "arm710t",
    .llvm_name = "arm710t",
    .features = featureSet(&[_]Feature{
        .v4t,
    }),
}

Constantarm720t[src]

Source Code

Source code
pub const arm720t: CpuModel = .{
    .name = "arm720t",
    .llvm_name = "arm720t",
    .features = featureSet(&[_]Feature{
        .v4t,
    }),
}

Constantarm7tdmi[src]

Source Code

Source code
pub const arm7tdmi: CpuModel = .{
    .name = "arm7tdmi",
    .llvm_name = "arm7tdmi",
    .features = featureSet(&[_]Feature{
        .v4t,
    }),
}

Constantarm7tdmi_s[src]

Source Code

Source code
pub const arm7tdmi_s: CpuModel = .{
    .name = "arm7tdmi_s",
    .llvm_name = "arm7tdmi-s",
    .features = featureSet(&[_]Feature{
        .v4t,
    }),
}

Constantarm8[src]

Source Code

Source code
pub const arm8: CpuModel = .{
    .name = "arm8",
    .llvm_name = "arm8",
    .features = featureSet(&[_]Feature{
        .v4,
    }),
}

Constantarm810[src]

Source Code

Source code
pub const arm810: CpuModel = .{
    .name = "arm810",
    .llvm_name = "arm810",
    .features = featureSet(&[_]Feature{
        .v4,
    }),
}

Constantarm9[src]

Source Code

Source code
pub const arm9: CpuModel = .{
    .name = "arm9",
    .llvm_name = "arm9",
    .features = featureSet(&[_]Feature{
        .v4t,
    }),
}

Constantarm920[src]

Source Code

Source code
pub const arm920: CpuModel = .{
    .name = "arm920",
    .llvm_name = "arm920",
    .features = featureSet(&[_]Feature{
        .v4t,
    }),
}

Constantarm920t[src]

Source Code

Source code
pub const arm920t: CpuModel = .{
    .name = "arm920t",
    .llvm_name = "arm920t",
    .features = featureSet(&[_]Feature{
        .v4t,
    }),
}

Constantarm922t[src]

Source Code

Source code
pub const arm922t: CpuModel = .{
    .name = "arm922t",
    .llvm_name = "arm922t",
    .features = featureSet(&[_]Feature{
        .v4t,
    }),
}

Constantarm926ej_s[src]

Source Code

Source code
pub const arm926ej_s: CpuModel = .{
    .name = "arm926ej_s",
    .llvm_name = "arm926ej-s",
    .features = featureSet(&[_]Feature{
        .v5te,
    }),
}

Constantarm940t[src]

Source Code

Source code
pub const arm940t: CpuModel = .{
    .name = "arm940t",
    .llvm_name = "arm940t",
    .features = featureSet(&[_]Feature{
        .v4t,
    }),
}

Constantarm946e_s[src]

Source Code

Source code
pub const arm946e_s: CpuModel = .{
    .name = "arm946e_s",
    .llvm_name = "arm946e-s",
    .features = featureSet(&[_]Feature{
        .v5te,
    }),
}

Constantarm966e_s[src]

Source Code

Source code
pub const arm966e_s: CpuModel = .{
    .name = "arm966e_s",
    .llvm_name = "arm966e-s",
    .features = featureSet(&[_]Feature{
        .v5te,
    }),
}

Constantarm968e_s[src]

Source Code

Source code
pub const arm968e_s: CpuModel = .{
    .name = "arm968e_s",
    .llvm_name = "arm968e-s",
    .features = featureSet(&[_]Feature{
        .v5te,
    }),
}

Constantarm9e[src]

Source Code

Source code
pub const arm9e: CpuModel = .{
    .name = "arm9e",
    .llvm_name = "arm9e",
    .features = featureSet(&[_]Feature{
        .v5te,
    }),
}

Constantarm9tdmi[src]

Source Code

Source code
pub const arm9tdmi: CpuModel = .{
    .name = "arm9tdmi",
    .llvm_name = "arm9tdmi",
    .features = featureSet(&[_]Feature{
        .v4t,
    }),
}

Constantbaseline[src]

Source Code

Source code
pub const baseline: CpuModel = .{
    .name = "baseline",
    .llvm_name = "generic",
    .features = featureSet(&[_]Feature{
        .v7a,
    }),
}

Constantcortex_a12[src]

Source Code

Source code
pub const cortex_a12: CpuModel = .{
    .name = "cortex_a12",
    .llvm_name = "cortex-a12",
    .features = featureSet(&[_]Feature{
        .avoid_partial_cpsr,
        .mp,
        .ret_addr_stack,
        .trustzone,
        .v7a,
        .vfp4,
        .virtualization,
        .vmlx_forwarding,
    }),
}

Constantcortex_a15[src]

Source Code

Source code
pub const cortex_a15: CpuModel = .{
    .name = "cortex_a15",
    .llvm_name = "cortex-a15",
    .features = featureSet(&[_]Feature{
        .avoid_partial_cpsr,
        .mp,
        .muxed_units,
        .ret_addr_stack,
        .splat_vfp_neon,
        .trustzone,
        .v7a,
        .vfp4,
        .virtualization,
        .vldn_align,
    }),
}

Constantcortex_a17[src]

Source Code

Source code
pub const cortex_a17: CpuModel = .{
    .name = "cortex_a17",
    .llvm_name = "cortex-a17",
    .features = featureSet(&[_]Feature{
        .avoid_partial_cpsr,
        .mp,
        .ret_addr_stack,
        .trustzone,
        .v7a,
        .vfp4,
        .virtualization,
        .vmlx_forwarding,
    }),
}

Constantcortex_a32[src]

Source Code

Source code
pub const cortex_a32: CpuModel = .{
    .name = "cortex_a32",
    .llvm_name = "cortex-a32",
    .features = featureSet(&[_]Feature{
        .v8a,
    }),
}

Constantcortex_a35[src]

Source Code

Source code
pub const cortex_a35: CpuModel = .{
    .name = "cortex_a35",
    .llvm_name = "cortex-a35",
    .features = featureSet(&[_]Feature{
        .v8a,
    }),
}

Constantcortex_a5[src]

Source Code

Source code
pub const cortex_a5: CpuModel = .{
    .name = "cortex_a5",
    .llvm_name = "cortex-a5",
    .features = featureSet(&[_]Feature{
        .mp,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slowfpvfmx,
        .slowfpvmlx,
        .trustzone,
        .v7a,
        .vfp4,
        .vmlx_forwarding,
    }),
}

Constantcortex_a53[src]

Source Code

Source code
pub const cortex_a53: CpuModel = .{
    .name = "cortex_a53",
    .llvm_name = "cortex-a53",
    .features = featureSet(&[_]Feature{
        .fpao,
        .v8a,
    }),
}

Constantcortex_a55[src]

Source Code

Source code
pub const cortex_a55: CpuModel = .{
    .name = "cortex_a55",
    .llvm_name = "cortex-a55",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .v8_2a,
    }),
}

Constantcortex_a57[src]

Source Code

Source code
pub const cortex_a57: CpuModel = .{
    .name = "cortex_a57",
    .llvm_name = "cortex-a57",
    .features = featureSet(&[_]Feature{
        .avoid_partial_cpsr,
        .cheap_predicable_cpsr,
        .fix_cortex_a57_aes_1742098,
        .fpao,
        .v8a,
    }),
}

Constantcortex_a7[src]

Source Code

Source code
pub const cortex_a7: CpuModel = .{
    .name = "cortex_a7",
    .llvm_name = "cortex-a7",
    .features = featureSet(&[_]Feature{
        .mp,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slowfpvfmx,
        .slowfpvmlx,
        .trustzone,
        .v7a,
        .vfp4,
        .virtualization,
        .vmlx_forwarding,
        .vmlx_hazards,
    }),
}

Constantcortex_a710[src]

Source Code

Source code
pub const cortex_a710: CpuModel = .{
    .name = "cortex_a710",
    .llvm_name = "cortex-a710",
    .features = featureSet(&[_]Feature{
        .bf16,
        .fp16fml,
        .i8mm,
        .v9a,
    }),
}

Constantcortex_a72[src]

Source Code

Source code
pub const cortex_a72: CpuModel = .{
    .name = "cortex_a72",
    .llvm_name = "cortex-a72",
    .features = featureSet(&[_]Feature{
        .fix_cortex_a57_aes_1742098,
        .v8a,
    }),
}

Constantcortex_a73[src]

Source Code

Source code
pub const cortex_a73: CpuModel = .{
    .name = "cortex_a73",
    .llvm_name = "cortex-a73",
    .features = featureSet(&[_]Feature{
        .v8a,
    }),
}

Constantcortex_a75[src]

Source Code

Source code
pub const cortex_a75: CpuModel = .{
    .name = "cortex_a75",
    .llvm_name = "cortex-a75",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .v8_2a,
    }),
}

Constantcortex_a76[src]

Source Code

Source code
pub const cortex_a76: CpuModel = .{
    .name = "cortex_a76",
    .llvm_name = "cortex-a76",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .fullfp16,
        .v8_2a,
    }),
}

Constantcortex_a76ae[src]

Source Code

Source code
pub const cortex_a76ae: CpuModel = .{
    .name = "cortex_a76ae",
    .llvm_name = "cortex-a76ae",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .fullfp16,
        .v8_2a,
    }),
}

Constantcortex_a77[src]

Source Code

Source code
pub const cortex_a77: CpuModel = .{
    .name = "cortex_a77",
    .llvm_name = "cortex-a77",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .fullfp16,
        .v8_2a,
    }),
}

Constantcortex_a78[src]

Source Code

Source code
pub const cortex_a78: CpuModel = .{
    .name = "cortex_a78",
    .llvm_name = "cortex-a78",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .fullfp16,
        .v8_2a,
    }),
}

Constantcortex_a78ae[src]

Source Code

Source code
pub const cortex_a78ae: CpuModel = .{
    .name = "cortex_a78ae",
    .llvm_name = "cortex-a78ae",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .fullfp16,
        .v8_2a,
    }),
}

Constantcortex_a78c[src]

Source Code

Source code
pub const cortex_a78c: CpuModel = .{
    .name = "cortex_a78c",
    .llvm_name = "cortex-a78c",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .fullfp16,
        .v8_2a,
    }),
}

Constantcortex_a8[src]

Source Code

Source code
pub const cortex_a8: CpuModel = .{
    .name = "cortex_a8",
    .llvm_name = "cortex-a8",
    .features = featureSet(&[_]Feature{
        .nonpipelined_vfp,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slowfpvfmx,
        .slowfpvmlx,
        .trustzone,
        .v7a,
        .vmlx_forwarding,
        .vmlx_hazards,
    }),
}

Constantcortex_a9[src]

Source Code

Source code
pub const cortex_a9: CpuModel = .{
    .name = "cortex_a9",
    .llvm_name = "cortex-a9",
    .features = featureSet(&[_]Feature{
        .avoid_partial_cpsr,
        .expand_fp_mlx,
        .fp16,
        .mp,
        .muxed_units,
        .neon_fpmovs,
        .prefer_vmovsr,
        .ret_addr_stack,
        .trustzone,
        .v7a,
        .vldn_align,
        .vmlx_forwarding,
        .vmlx_hazards,
    }),
}

Constantcortex_m0[src]

Source Code

Source code
pub const cortex_m0: CpuModel = .{
    .name = "cortex_m0",
    .llvm_name = "cortex-m0",
    .features = featureSet(&[_]Feature{
        .no_branch_predictor,
        .v6m,
    }),
}

Constantcortex_m0plus[src]

Source Code

Source code
pub const cortex_m0plus: CpuModel = .{
    .name = "cortex_m0plus",
    .llvm_name = "cortex-m0plus",
    .features = featureSet(&[_]Feature{
        .no_branch_predictor,
        .v6m,
    }),
}

Constantcortex_m1[src]

Source Code

Source code
pub const cortex_m1: CpuModel = .{
    .name = "cortex_m1",
    .llvm_name = "cortex-m1",
    .features = featureSet(&[_]Feature{
        .no_branch_predictor,
        .v6m,
    }),
}

Constantcortex_m23[src]

Source Code

Source code
pub const cortex_m23: CpuModel = .{
    .name = "cortex_m23",
    .llvm_name = "cortex-m23",
    .features = featureSet(&[_]Feature{
        .no_branch_predictor,
        .no_movt,
        .v8m,
    }),
}

Constantcortex_m3[src]

Source Code

Source code
pub const cortex_m3: CpuModel = .{
    .name = "cortex_m3",
    .llvm_name = "cortex-m3",
    .features = featureSet(&[_]Feature{
        .loop_align,
        .no_branch_predictor,
        .use_misched,
        .v7m,
    }),
}

Constantcortex_m33[src]

Source Code

Source code
pub const cortex_m33: CpuModel = .{
    .name = "cortex_m33",
    .llvm_name = "cortex-m33",
    .features = featureSet(&[_]Feature{
        .fix_cmse_cve_2021_35465,
        .loop_align,
        .no_branch_predictor,
        .slowfpvfmx,
        .slowfpvmlx,
        .use_misched,
        .v8m_main,
    }),
}

Constantcortex_m35p[src]

Source Code

Source code
pub const cortex_m35p: CpuModel = .{
    .name = "cortex_m35p",
    .llvm_name = "cortex-m35p",
    .features = featureSet(&[_]Feature{
        .fix_cmse_cve_2021_35465,
        .loop_align,
        .no_branch_predictor,
        .slowfpvfmx,
        .slowfpvmlx,
        .use_misched,
        .v8m_main,
    }),
}

Constantcortex_m4[src]

Source Code

Source code
pub const cortex_m4: CpuModel = .{
    .name = "cortex_m4",
    .llvm_name = "cortex-m4",
    .features = featureSet(&[_]Feature{
        .loop_align,
        .no_branch_predictor,
        .slowfpvfmx,
        .slowfpvmlx,
        .use_misched,
        .v7em,
    }),
}

Constantcortex_m52[src]

Source Code

Source code
pub const cortex_m52: CpuModel = .{
    .name = "cortex_m52",
    .llvm_name = "cortex-m52",
    .features = featureSet(&[_]Feature{
        .fp_armv8d16,
        .loop_align,
        .mve1beat,
        .mve_fp,
        .no_branch_predictor,
        .pacbti,
        .slowfpvmlx,
        .use_misched,
        .v8_1m_main,
    }),
}

Constantcortex_m55[src]

Source Code

Source code
pub const cortex_m55: CpuModel = .{
    .name = "cortex_m55",
    .llvm_name = "cortex-m55",
    .features = featureSet(&[_]Feature{
        .dsp,
        .fix_cmse_cve_2021_35465,
        .loop_align,
        .no_branch_predictor,
        .slowfpvmlx,
        .use_misched,
        .v8_1m_main,
    }),
}

Constantcortex_m7[src]

Source Code

Source code
pub const cortex_m7: CpuModel = .{
    .name = "cortex_m7",
    .llvm_name = "cortex-m7",
    .features = featureSet(&[_]Feature{
        .use_mipipeliner,
        .use_misched,
        .v7em,
    }),
}

Constantcortex_m85[src]

Source Code

Source code
pub const cortex_m85: CpuModel = .{
    .name = "cortex_m85",
    .llvm_name = "cortex-m85",
    .features = featureSet(&[_]Feature{
        .dsp,
        .use_misched,
        .v8_1m_main,
    }),
}

Constantcortex_r4[src]

Source Code

Source code
pub const cortex_r4: CpuModel = .{
    .name = "cortex_r4",
    .llvm_name = "cortex-r4",
    .features = featureSet(&[_]Feature{
        .avoid_partial_cpsr,
        .ret_addr_stack,
        .v7r,
    }),
}

Constantcortex_r4f[src]

Source Code

Source code
pub const cortex_r4f: CpuModel = .{
    .name = "cortex_r4f",
    .llvm_name = "cortex-r4f",
    .features = featureSet(&[_]Feature{
        .avoid_partial_cpsr,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slowfpvfmx,
        .slowfpvmlx,
        .v7r,
        .vfp3d16,
    }),
}

Constantcortex_r5[src]

Source Code

Source code
pub const cortex_r5: CpuModel = .{
    .name = "cortex_r5",
    .llvm_name = "cortex-r5",
    .features = featureSet(&[_]Feature{
        .avoid_partial_cpsr,
        .hwdiv_arm,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slowfpvfmx,
        .slowfpvmlx,
        .v7r,
        .vfp3d16,
    }),
}

Constantcortex_r52[src]

Source Code

Source code
pub const cortex_r52: CpuModel = .{
    .name = "cortex_r52",
    .llvm_name = "cortex-r52",
    .features = featureSet(&[_]Feature{
        .fp_armv8,
        .fpao,
        .neon,
        .use_misched,
        .v8r,
    }),
}

Constantcortex_r52plus[src]

Source Code

Source code
pub const cortex_r52plus: CpuModel = .{
    .name = "cortex_r52plus",
    .llvm_name = "cortex-r52plus",
    .features = featureSet(&[_]Feature{
        .fp_armv8,
        .fpao,
        .neon,
        .use_misched,
        .v8r,
    }),
}

Constantcortex_r7[src]

Source Code

Source code
pub const cortex_r7: CpuModel = .{
    .name = "cortex_r7",
    .llvm_name = "cortex-r7",
    .features = featureSet(&[_]Feature{
        .avoid_partial_cpsr,
        .fp16,
        .hwdiv_arm,
        .mp,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slowfpvfmx,
        .slowfpvmlx,
        .v7r,
        .vfp3d16,
    }),
}

Constantcortex_r8[src]

Source Code

Source code
pub const cortex_r8: CpuModel = .{
    .name = "cortex_r8",
    .llvm_name = "cortex-r8",
    .features = featureSet(&[_]Feature{
        .avoid_partial_cpsr,
        .fp16,
        .hwdiv_arm,
        .mp,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slowfpvfmx,
        .slowfpvmlx,
        .v7r,
        .vfp3d16,
    }),
}

Constantcortex_x1[src]

Source Code

Source code
pub const cortex_x1: CpuModel = .{
    .name = "cortex_x1",
    .llvm_name = "cortex-x1",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .fullfp16,
        .v8_2a,
    }),
}

Constantcortex_x1c[src]

Source Code

Source code
pub const cortex_x1c: CpuModel = .{
    .name = "cortex_x1c",
    .llvm_name = "cortex-x1c",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .fullfp16,
        .v8_2a,
    }),
}

Constantcyclone[src]

Source Code

Source code
pub const cyclone: CpuModel = .{
    .name = "cyclone",
    .llvm_name = "cyclone",
    .features = featureSet(&[_]Feature{
        .avoid_movs_shop,
        .avoid_partial_cpsr,
        .disable_postra_scheduler,
        .neonfp,
        .ret_addr_stack,
        .slowfpvfmx,
        .slowfpvmlx,
        .use_misched,
        .v8a,
        .zcz,
    }),
}

Constantep9312[src]

Source Code

Source code
pub const ep9312: CpuModel = .{
    .name = "ep9312",
    .llvm_name = "ep9312",
    .features = featureSet(&[_]Feature{
        .v4t,
    }),
}

Constantexynos_m1[src]

Source Code

Source code
pub const exynos_m1: CpuModel = .{
    .name = "exynos_m1",
    .llvm_name = null,
    .features = featureSet(&[_]Feature{
        .expand_fp_mlx,
        .fuse_aes,
        .fuse_literals,
        .prof_unpr,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slow_vdup32,
        .slow_vgetlni32,
        .slowfpvfmx,
        .slowfpvmlx,
        .splat_vfp_neon,
        .v8a,
        .wide_stride_vfp,
        .zcz,
    }),
}

Constantexynos_m2[src]

Source Code

Source code
pub const exynos_m2: CpuModel = .{
    .name = "exynos_m2",
    .llvm_name = null,
    .features = featureSet(&[_]Feature{
        .expand_fp_mlx,
        .fuse_aes,
        .fuse_literals,
        .prof_unpr,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slow_vdup32,
        .slow_vgetlni32,
        .slowfpvfmx,
        .slowfpvmlx,
        .splat_vfp_neon,
        .v8a,
        .wide_stride_vfp,
        .zcz,
    }),
}

Constantexynos_m3[src]

Source Code

Source code
pub const exynos_m3: CpuModel = .{
    .name = "exynos_m3",
    .llvm_name = "exynos-m3",
    .features = featureSet(&[_]Feature{
        .expand_fp_mlx,
        .fuse_aes,
        .fuse_literals,
        .prof_unpr,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slow_vdup32,
        .slow_vgetlni32,
        .slowfpvfmx,
        .slowfpvmlx,
        .splat_vfp_neon,
        .v8a,
        .wide_stride_vfp,
        .zcz,
    }),
}

Constantexynos_m4[src]

Source Code

Source code
pub const exynos_m4: CpuModel = .{
    .name = "exynos_m4",
    .llvm_name = "exynos-m4",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .expand_fp_mlx,
        .fullfp16,
        .fuse_aes,
        .fuse_literals,
        .prof_unpr,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slow_vdup32,
        .slow_vgetlni32,
        .slowfpvfmx,
        .slowfpvmlx,
        .splat_vfp_neon,
        .v8_2a,
        .wide_stride_vfp,
        .zcz,
    }),
}

Constantexynos_m5[src]

Source Code

Source code
pub const exynos_m5: CpuModel = .{
    .name = "exynos_m5",
    .llvm_name = "exynos-m5",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .expand_fp_mlx,
        .fullfp16,
        .fuse_aes,
        .fuse_literals,
        .prof_unpr,
        .ret_addr_stack,
        .slow_fp_brcc,
        .slow_vdup32,
        .slow_vgetlni32,
        .slowfpvfmx,
        .slowfpvmlx,
        .splat_vfp_neon,
        .v8_2a,
        .wide_stride_vfp,
        .zcz,
    }),
}

Constantgeneric[src]

Source Code

Source code
pub const generic: CpuModel = .{
    .name = "generic",
    .llvm_name = "generic",
    .features = featureSet(&[_]Feature{}),
}

Constantiwmmxt[src]

Source Code

Source code
pub const iwmmxt: CpuModel = .{
    .name = "iwmmxt",
    .llvm_name = "iwmmxt",
    .features = featureSet(&[_]Feature{
        .v5te,
    }),
}

Constantkrait[src]

Source Code

Source code
pub const krait: CpuModel = .{
    .name = "krait",
    .llvm_name = "krait",
    .features = featureSet(&[_]Feature{
        .avoid_partial_cpsr,
        .hwdiv,
        .hwdiv_arm,
        .muxed_units,
        .ret_addr_stack,
        .v7a,
        .vfp4,
        .vldn_align,
        .vmlx_forwarding,
    }),
}

Constantkryo[src]

Source Code

Source code
pub const kryo: CpuModel = .{
    .name = "kryo",
    .llvm_name = "kryo",
    .features = featureSet(&[_]Feature{
        .v8a,
    }),
}

Constantmpcore[src]

Source Code

Source code
pub const mpcore: CpuModel = .{
    .name = "mpcore",
    .llvm_name = "mpcore",
    .features = featureSet(&[_]Feature{
        .slowfpvmlx,
        .v6k,
        .vfp2,
    }),
}

Constantmpcorenovfp[src]

Source Code

Source code
pub const mpcorenovfp: CpuModel = .{
    .name = "mpcorenovfp",
    .llvm_name = "mpcorenovfp",
    .features = featureSet(&[_]Feature{
        .v6k,
    }),
}

Constantneoverse_n1[src]

Source Code

Source code
pub const neoverse_n1: CpuModel = .{
    .name = "neoverse_n1",
    .llvm_name = "neoverse-n1",
    .features = featureSet(&[_]Feature{
        .dotprod,
        .v8_2a,
    }),
}

Constantneoverse_n2[src]

Source Code

Source code
pub const neoverse_n2: CpuModel = .{
    .name = "neoverse_n2",
    .llvm_name = "neoverse-n2",
    .features = featureSet(&[_]Feature{
        .bf16,
        .fp16fml,
        .i8mm,
        .v9a,
    }),
}

Constantneoverse_v1[src]

Source Code

Source code
pub const neoverse_v1: CpuModel = .{
    .name = "neoverse_v1",
    .llvm_name = "neoverse-v1",
    .features = featureSet(&[_]Feature{
        .bf16,
        .fullfp16,
        .i8mm,
        .v8_4a,
    }),
}

Constantsc000[src]

Source Code

Source code
pub const sc000: CpuModel = .{
    .name = "sc000",
    .llvm_name = "sc000",
    .features = featureSet(&[_]Feature{
        .no_branch_predictor,
        .v6m,
    }),
}

Constantsc300[src]

Source Code

Source code
pub const sc300: CpuModel = .{
    .name = "sc300",
    .llvm_name = "sc300",
    .features = featureSet(&[_]Feature{
        .no_branch_predictor,
        .use_misched,
        .v7m,
    }),
}

Constantstrongarm[src]

Source Code

Source code
pub const strongarm: CpuModel = .{
    .name = "strongarm",
    .llvm_name = "strongarm",
    .features = featureSet(&[_]Feature{
        .v4,
    }),
}

Constantstrongarm110[src]

Source Code

Source code
pub const strongarm110: CpuModel = .{
    .name = "strongarm110",
    .llvm_name = "strongarm110",
    .features = featureSet(&[_]Feature{
        .v4,
    }),
}

Constantstrongarm1100[src]

Source Code

Source code
pub const strongarm1100: CpuModel = .{
    .name = "strongarm1100",
    .llvm_name = "strongarm1100",
    .features = featureSet(&[_]Feature{
        .v4,
    }),
}

Constantstrongarm1110[src]

Source Code

Source code
pub const strongarm1110: CpuModel = .{
    .name = "strongarm1110",
    .llvm_name = "strongarm1110",
    .features = featureSet(&[_]Feature{
        .v4,
    }),
}

Constantswift[src]

Source Code

Source code
pub const swift: CpuModel = .{
    .name = "swift",
    .llvm_name = "swift",
    .features = featureSet(&[_]Feature{
        .avoid_movs_shop,
        .avoid_partial_cpsr,
        .disable_postra_scheduler,
        .hwdiv,
        .hwdiv_arm,
        .mp,
        .neonfp,
        .prefer_ishst,
        .prof_unpr,
        .ret_addr_stack,
        .slow_load_D_subreg,
        .slow_odd_reg,
        .slow_vdup32,
        .slow_vgetlni32,
        .slowfpvfmx,
        .slowfpvmlx,
        .use_misched,
        .v7a,
        .vfp4,
        .vmlx_hazards,
        .wide_stride_vfp,
    }),
}

Constantxscale[src]

Source Code

Source code
pub const xscale: CpuModel = .{
    .name = "xscale",
    .llvm_name = "xscale",
    .features = featureSet(&[_]Feature{
        .v5te,
    }),
}

Source Code

Source code
pub const cpu = struct {
    pub const arm1020e: CpuModel = .{
        .name = "arm1020e",
        .llvm_name = "arm1020e",
        .features = featureSet(&[_]Feature{
            .v5te,
        }),
    };
    pub const arm1020t: CpuModel = .{
        .name = "arm1020t",
        .llvm_name = "arm1020t",
        .features = featureSet(&[_]Feature{
            .v5t,
        }),
    };
    pub const arm1022e: CpuModel = .{
        .name = "arm1022e",
        .llvm_name = "arm1022e",
        .features = featureSet(&[_]Feature{
            .v5te,
        }),
    };
    pub const arm10e: CpuModel = .{
        .name = "arm10e",
        .llvm_name = "arm10e",
        .features = featureSet(&[_]Feature{
            .v5te,
        }),
    };
    pub const arm10tdmi: CpuModel = .{
        .name = "arm10tdmi",
        .llvm_name = "arm10tdmi",
        .features = featureSet(&[_]Feature{
            .v5t,
        }),
    };
    pub const arm1136j_s: CpuModel = .{
        .name = "arm1136j_s",
        .llvm_name = "arm1136j-s",
        .features = featureSet(&[_]Feature{
            .v6,
        }),
    };
    pub const arm1136jf_s: CpuModel = .{
        .name = "arm1136jf_s",
        .llvm_name = "arm1136jf-s",
        .features = featureSet(&[_]Feature{
            .slowfpvmlx,
            .v6,
            .vfp2,
        }),
    };
    pub const arm1156t2_s: CpuModel = .{
        .name = "arm1156t2_s",
        .llvm_name = "arm1156t2-s",
        .features = featureSet(&[_]Feature{
            .v6t2,
        }),
    };
    pub const arm1156t2f_s: CpuModel = .{
        .name = "arm1156t2f_s",
        .llvm_name = "arm1156t2f-s",
        .features = featureSet(&[_]Feature{
            .slowfpvmlx,
            .v6t2,
            .vfp2,
        }),
    };
    pub const arm1176jz_s: CpuModel = .{
        .name = "arm1176jz_s",
        .llvm_name = "arm1176jz-s",
        .features = featureSet(&[_]Feature{
            .v6kz,
        }),
    };
    pub const arm1176jzf_s: CpuModel = .{
        .name = "arm1176jzf_s",
        .llvm_name = "arm1176jzf-s",
        .features = featureSet(&[_]Feature{
            .slowfpvmlx,
            .v6kz,
            .vfp2,
        }),
    };
    pub const arm710t: CpuModel = .{
        .name = "arm710t",
        .llvm_name = "arm710t",
        .features = featureSet(&[_]Feature{
            .v4t,
        }),
    };
    pub const arm720t: CpuModel = .{
        .name = "arm720t",
        .llvm_name = "arm720t",
        .features = featureSet(&[_]Feature{
            .v4t,
        }),
    };
    pub const arm7tdmi: CpuModel = .{
        .name = "arm7tdmi",
        .llvm_name = "arm7tdmi",
        .features = featureSet(&[_]Feature{
            .v4t,
        }),
    };
    pub const arm7tdmi_s: CpuModel = .{
        .name = "arm7tdmi_s",
        .llvm_name = "arm7tdmi-s",
        .features = featureSet(&[_]Feature{
            .v4t,
        }),
    };
    pub const arm8: CpuModel = .{
        .name = "arm8",
        .llvm_name = "arm8",
        .features = featureSet(&[_]Feature{
            .v4,
        }),
    };
    pub const arm810: CpuModel = .{
        .name = "arm810",
        .llvm_name = "arm810",
        .features = featureSet(&[_]Feature{
            .v4,
        }),
    };
    pub const arm9: CpuModel = .{
        .name = "arm9",
        .llvm_name = "arm9",
        .features = featureSet(&[_]Feature{
            .v4t,
        }),
    };
    pub const arm920: CpuModel = .{
        .name = "arm920",
        .llvm_name = "arm920",
        .features = featureSet(&[_]Feature{
            .v4t,
        }),
    };
    pub const arm920t: CpuModel = .{
        .name = "arm920t",
        .llvm_name = "arm920t",
        .features = featureSet(&[_]Feature{
            .v4t,
        }),
    };
    pub const arm922t: CpuModel = .{
        .name = "arm922t",
        .llvm_name = "arm922t",
        .features = featureSet(&[_]Feature{
            .v4t,
        }),
    };
    pub const arm926ej_s: CpuModel = .{
        .name = "arm926ej_s",
        .llvm_name = "arm926ej-s",
        .features = featureSet(&[_]Feature{
            .v5te,
        }),
    };
    pub const arm940t: CpuModel = .{
        .name = "arm940t",
        .llvm_name = "arm940t",
        .features = featureSet(&[_]Feature{
            .v4t,
        }),
    };
    pub const arm946e_s: CpuModel = .{
        .name = "arm946e_s",
        .llvm_name = "arm946e-s",
        .features = featureSet(&[_]Feature{
            .v5te,
        }),
    };
    pub const arm966e_s: CpuModel = .{
        .name = "arm966e_s",
        .llvm_name = "arm966e-s",
        .features = featureSet(&[_]Feature{
            .v5te,
        }),
    };
    pub const arm968e_s: CpuModel = .{
        .name = "arm968e_s",
        .llvm_name = "arm968e-s",
        .features = featureSet(&[_]Feature{
            .v5te,
        }),
    };
    pub const arm9e: CpuModel = .{
        .name = "arm9e",
        .llvm_name = "arm9e",
        .features = featureSet(&[_]Feature{
            .v5te,
        }),
    };
    pub const arm9tdmi: CpuModel = .{
        .name = "arm9tdmi",
        .llvm_name = "arm9tdmi",
        .features = featureSet(&[_]Feature{
            .v4t,
        }),
    };
    pub const baseline: CpuModel = .{
        .name = "baseline",
        .llvm_name = "generic",
        .features = featureSet(&[_]Feature{
            .v7a,
        }),
    };
    pub const cortex_a12: CpuModel = .{
        .name = "cortex_a12",
        .llvm_name = "cortex-a12",
        .features = featureSet(&[_]Feature{
            .avoid_partial_cpsr,
            .mp,
            .ret_addr_stack,
            .trustzone,
            .v7a,
            .vfp4,
            .virtualization,
            .vmlx_forwarding,
        }),
    };
    pub const cortex_a15: CpuModel = .{
        .name = "cortex_a15",
        .llvm_name = "cortex-a15",
        .features = featureSet(&[_]Feature{
            .avoid_partial_cpsr,
            .mp,
            .muxed_units,
            .ret_addr_stack,
            .splat_vfp_neon,
            .trustzone,
            .v7a,
            .vfp4,
            .virtualization,
            .vldn_align,
        }),
    };
    pub const cortex_a17: CpuModel = .{
        .name = "cortex_a17",
        .llvm_name = "cortex-a17",
        .features = featureSet(&[_]Feature{
            .avoid_partial_cpsr,
            .mp,
            .ret_addr_stack,
            .trustzone,
            .v7a,
            .vfp4,
            .virtualization,
            .vmlx_forwarding,
        }),
    };
    pub const cortex_a32: CpuModel = .{
        .name = "cortex_a32",
        .llvm_name = "cortex-a32",
        .features = featureSet(&[_]Feature{
            .v8a,
        }),
    };
    pub const cortex_a35: CpuModel = .{
        .name = "cortex_a35",
        .llvm_name = "cortex-a35",
        .features = featureSet(&[_]Feature{
            .v8a,
        }),
    };
    pub const cortex_a5: CpuModel = .{
        .name = "cortex_a5",
        .llvm_name = "cortex-a5",
        .features = featureSet(&[_]Feature{
            .mp,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slowfpvfmx,
            .slowfpvmlx,
            .trustzone,
            .v7a,
            .vfp4,
            .vmlx_forwarding,
        }),
    };
    pub const cortex_a53: CpuModel = .{
        .name = "cortex_a53",
        .llvm_name = "cortex-a53",
        .features = featureSet(&[_]Feature{
            .fpao,
            .v8a,
        }),
    };
    pub const cortex_a55: CpuModel = .{
        .name = "cortex_a55",
        .llvm_name = "cortex-a55",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .v8_2a,
        }),
    };
    pub const cortex_a57: CpuModel = .{
        .name = "cortex_a57",
        .llvm_name = "cortex-a57",
        .features = featureSet(&[_]Feature{
            .avoid_partial_cpsr,
            .cheap_predicable_cpsr,
            .fix_cortex_a57_aes_1742098,
            .fpao,
            .v8a,
        }),
    };
    pub const cortex_a7: CpuModel = .{
        .name = "cortex_a7",
        .llvm_name = "cortex-a7",
        .features = featureSet(&[_]Feature{
            .mp,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slowfpvfmx,
            .slowfpvmlx,
            .trustzone,
            .v7a,
            .vfp4,
            .virtualization,
            .vmlx_forwarding,
            .vmlx_hazards,
        }),
    };
    pub const cortex_a710: CpuModel = .{
        .name = "cortex_a710",
        .llvm_name = "cortex-a710",
        .features = featureSet(&[_]Feature{
            .bf16,
            .fp16fml,
            .i8mm,
            .v9a,
        }),
    };
    pub const cortex_a72: CpuModel = .{
        .name = "cortex_a72",
        .llvm_name = "cortex-a72",
        .features = featureSet(&[_]Feature{
            .fix_cortex_a57_aes_1742098,
            .v8a,
        }),
    };
    pub const cortex_a73: CpuModel = .{
        .name = "cortex_a73",
        .llvm_name = "cortex-a73",
        .features = featureSet(&[_]Feature{
            .v8a,
        }),
    };
    pub const cortex_a75: CpuModel = .{
        .name = "cortex_a75",
        .llvm_name = "cortex-a75",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .v8_2a,
        }),
    };
    pub const cortex_a76: CpuModel = .{
        .name = "cortex_a76",
        .llvm_name = "cortex-a76",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .fullfp16,
            .v8_2a,
        }),
    };
    pub const cortex_a76ae: CpuModel = .{
        .name = "cortex_a76ae",
        .llvm_name = "cortex-a76ae",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .fullfp16,
            .v8_2a,
        }),
    };
    pub const cortex_a77: CpuModel = .{
        .name = "cortex_a77",
        .llvm_name = "cortex-a77",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .fullfp16,
            .v8_2a,
        }),
    };
    pub const cortex_a78: CpuModel = .{
        .name = "cortex_a78",
        .llvm_name = "cortex-a78",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .fullfp16,
            .v8_2a,
        }),
    };
    pub const cortex_a78ae: CpuModel = .{
        .name = "cortex_a78ae",
        .llvm_name = "cortex-a78ae",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .fullfp16,
            .v8_2a,
        }),
    };
    pub const cortex_a78c: CpuModel = .{
        .name = "cortex_a78c",
        .llvm_name = "cortex-a78c",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .fullfp16,
            .v8_2a,
        }),
    };
    pub const cortex_a8: CpuModel = .{
        .name = "cortex_a8",
        .llvm_name = "cortex-a8",
        .features = featureSet(&[_]Feature{
            .nonpipelined_vfp,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slowfpvfmx,
            .slowfpvmlx,
            .trustzone,
            .v7a,
            .vmlx_forwarding,
            .vmlx_hazards,
        }),
    };
    pub const cortex_a9: CpuModel = .{
        .name = "cortex_a9",
        .llvm_name = "cortex-a9",
        .features = featureSet(&[_]Feature{
            .avoid_partial_cpsr,
            .expand_fp_mlx,
            .fp16,
            .mp,
            .muxed_units,
            .neon_fpmovs,
            .prefer_vmovsr,
            .ret_addr_stack,
            .trustzone,
            .v7a,
            .vldn_align,
            .vmlx_forwarding,
            .vmlx_hazards,
        }),
    };
    pub const cortex_m0: CpuModel = .{
        .name = "cortex_m0",
        .llvm_name = "cortex-m0",
        .features = featureSet(&[_]Feature{
            .no_branch_predictor,
            .v6m,
        }),
    };
    pub const cortex_m0plus: CpuModel = .{
        .name = "cortex_m0plus",
        .llvm_name = "cortex-m0plus",
        .features = featureSet(&[_]Feature{
            .no_branch_predictor,
            .v6m,
        }),
    };
    pub const cortex_m1: CpuModel = .{
        .name = "cortex_m1",
        .llvm_name = "cortex-m1",
        .features = featureSet(&[_]Feature{
            .no_branch_predictor,
            .v6m,
        }),
    };
    pub const cortex_m23: CpuModel = .{
        .name = "cortex_m23",
        .llvm_name = "cortex-m23",
        .features = featureSet(&[_]Feature{
            .no_branch_predictor,
            .no_movt,
            .v8m,
        }),
    };
    pub const cortex_m3: CpuModel = .{
        .name = "cortex_m3",
        .llvm_name = "cortex-m3",
        .features = featureSet(&[_]Feature{
            .loop_align,
            .no_branch_predictor,
            .use_misched,
            .v7m,
        }),
    };
    pub const cortex_m33: CpuModel = .{
        .name = "cortex_m33",
        .llvm_name = "cortex-m33",
        .features = featureSet(&[_]Feature{
            .fix_cmse_cve_2021_35465,
            .loop_align,
            .no_branch_predictor,
            .slowfpvfmx,
            .slowfpvmlx,
            .use_misched,
            .v8m_main,
        }),
    };
    pub const cortex_m35p: CpuModel = .{
        .name = "cortex_m35p",
        .llvm_name = "cortex-m35p",
        .features = featureSet(&[_]Feature{
            .fix_cmse_cve_2021_35465,
            .loop_align,
            .no_branch_predictor,
            .slowfpvfmx,
            .slowfpvmlx,
            .use_misched,
            .v8m_main,
        }),
    };
    pub const cortex_m4: CpuModel = .{
        .name = "cortex_m4",
        .llvm_name = "cortex-m4",
        .features = featureSet(&[_]Feature{
            .loop_align,
            .no_branch_predictor,
            .slowfpvfmx,
            .slowfpvmlx,
            .use_misched,
            .v7em,
        }),
    };
    pub const cortex_m52: CpuModel = .{
        .name = "cortex_m52",
        .llvm_name = "cortex-m52",
        .features = featureSet(&[_]Feature{
            .fp_armv8d16,
            .loop_align,
            .mve1beat,
            .mve_fp,
            .no_branch_predictor,
            .pacbti,
            .slowfpvmlx,
            .use_misched,
            .v8_1m_main,
        }),
    };
    pub const cortex_m55: CpuModel = .{
        .name = "cortex_m55",
        .llvm_name = "cortex-m55",
        .features = featureSet(&[_]Feature{
            .dsp,
            .fix_cmse_cve_2021_35465,
            .loop_align,
            .no_branch_predictor,
            .slowfpvmlx,
            .use_misched,
            .v8_1m_main,
        }),
    };
    pub const cortex_m7: CpuModel = .{
        .name = "cortex_m7",
        .llvm_name = "cortex-m7",
        .features = featureSet(&[_]Feature{
            .use_mipipeliner,
            .use_misched,
            .v7em,
        }),
    };
    pub const cortex_m85: CpuModel = .{
        .name = "cortex_m85",
        .llvm_name = "cortex-m85",
        .features = featureSet(&[_]Feature{
            .dsp,
            .use_misched,
            .v8_1m_main,
        }),
    };
    pub const cortex_r4: CpuModel = .{
        .name = "cortex_r4",
        .llvm_name = "cortex-r4",
        .features = featureSet(&[_]Feature{
            .avoid_partial_cpsr,
            .ret_addr_stack,
            .v7r,
        }),
    };
    pub const cortex_r4f: CpuModel = .{
        .name = "cortex_r4f",
        .llvm_name = "cortex-r4f",
        .features = featureSet(&[_]Feature{
            .avoid_partial_cpsr,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slowfpvfmx,
            .slowfpvmlx,
            .v7r,
            .vfp3d16,
        }),
    };
    pub const cortex_r5: CpuModel = .{
        .name = "cortex_r5",
        .llvm_name = "cortex-r5",
        .features = featureSet(&[_]Feature{
            .avoid_partial_cpsr,
            .hwdiv_arm,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slowfpvfmx,
            .slowfpvmlx,
            .v7r,
            .vfp3d16,
        }),
    };
    pub const cortex_r52: CpuModel = .{
        .name = "cortex_r52",
        .llvm_name = "cortex-r52",
        .features = featureSet(&[_]Feature{
            .fp_armv8,
            .fpao,
            .neon,
            .use_misched,
            .v8r,
        }),
    };
    pub const cortex_r52plus: CpuModel = .{
        .name = "cortex_r52plus",
        .llvm_name = "cortex-r52plus",
        .features = featureSet(&[_]Feature{
            .fp_armv8,
            .fpao,
            .neon,
            .use_misched,
            .v8r,
        }),
    };
    pub const cortex_r7: CpuModel = .{
        .name = "cortex_r7",
        .llvm_name = "cortex-r7",
        .features = featureSet(&[_]Feature{
            .avoid_partial_cpsr,
            .fp16,
            .hwdiv_arm,
            .mp,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slowfpvfmx,
            .slowfpvmlx,
            .v7r,
            .vfp3d16,
        }),
    };
    pub const cortex_r8: CpuModel = .{
        .name = "cortex_r8",
        .llvm_name = "cortex-r8",
        .features = featureSet(&[_]Feature{
            .avoid_partial_cpsr,
            .fp16,
            .hwdiv_arm,
            .mp,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slowfpvfmx,
            .slowfpvmlx,
            .v7r,
            .vfp3d16,
        }),
    };
    pub const cortex_x1: CpuModel = .{
        .name = "cortex_x1",
        .llvm_name = "cortex-x1",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .fullfp16,
            .v8_2a,
        }),
    };
    pub const cortex_x1c: CpuModel = .{
        .name = "cortex_x1c",
        .llvm_name = "cortex-x1c",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .fullfp16,
            .v8_2a,
        }),
    };
    pub const cyclone: CpuModel = .{
        .name = "cyclone",
        .llvm_name = "cyclone",
        .features = featureSet(&[_]Feature{
            .avoid_movs_shop,
            .avoid_partial_cpsr,
            .disable_postra_scheduler,
            .neonfp,
            .ret_addr_stack,
            .slowfpvfmx,
            .slowfpvmlx,
            .use_misched,
            .v8a,
            .zcz,
        }),
    };
    pub const ep9312: CpuModel = .{
        .name = "ep9312",
        .llvm_name = "ep9312",
        .features = featureSet(&[_]Feature{
            .v4t,
        }),
    };
    pub const exynos_m1: CpuModel = .{
        .name = "exynos_m1",
        .llvm_name = null,
        .features = featureSet(&[_]Feature{
            .expand_fp_mlx,
            .fuse_aes,
            .fuse_literals,
            .prof_unpr,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slow_vdup32,
            .slow_vgetlni32,
            .slowfpvfmx,
            .slowfpvmlx,
            .splat_vfp_neon,
            .v8a,
            .wide_stride_vfp,
            .zcz,
        }),
    };
    pub const exynos_m2: CpuModel = .{
        .name = "exynos_m2",
        .llvm_name = null,
        .features = featureSet(&[_]Feature{
            .expand_fp_mlx,
            .fuse_aes,
            .fuse_literals,
            .prof_unpr,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slow_vdup32,
            .slow_vgetlni32,
            .slowfpvfmx,
            .slowfpvmlx,
            .splat_vfp_neon,
            .v8a,
            .wide_stride_vfp,
            .zcz,
        }),
    };
    pub const exynos_m3: CpuModel = .{
        .name = "exynos_m3",
        .llvm_name = "exynos-m3",
        .features = featureSet(&[_]Feature{
            .expand_fp_mlx,
            .fuse_aes,
            .fuse_literals,
            .prof_unpr,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slow_vdup32,
            .slow_vgetlni32,
            .slowfpvfmx,
            .slowfpvmlx,
            .splat_vfp_neon,
            .v8a,
            .wide_stride_vfp,
            .zcz,
        }),
    };
    pub const exynos_m4: CpuModel = .{
        .name = "exynos_m4",
        .llvm_name = "exynos-m4",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .expand_fp_mlx,
            .fullfp16,
            .fuse_aes,
            .fuse_literals,
            .prof_unpr,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slow_vdup32,
            .slow_vgetlni32,
            .slowfpvfmx,
            .slowfpvmlx,
            .splat_vfp_neon,
            .v8_2a,
            .wide_stride_vfp,
            .zcz,
        }),
    };
    pub const exynos_m5: CpuModel = .{
        .name = "exynos_m5",
        .llvm_name = "exynos-m5",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .expand_fp_mlx,
            .fullfp16,
            .fuse_aes,
            .fuse_literals,
            .prof_unpr,
            .ret_addr_stack,
            .slow_fp_brcc,
            .slow_vdup32,
            .slow_vgetlni32,
            .slowfpvfmx,
            .slowfpvmlx,
            .splat_vfp_neon,
            .v8_2a,
            .wide_stride_vfp,
            .zcz,
        }),
    };
    pub const generic: CpuModel = .{
        .name = "generic",
        .llvm_name = "generic",
        .features = featureSet(&[_]Feature{}),
    };
    pub const iwmmxt: CpuModel = .{
        .name = "iwmmxt",
        .llvm_name = "iwmmxt",
        .features = featureSet(&[_]Feature{
            .v5te,
        }),
    };
    pub const krait: CpuModel = .{
        .name = "krait",
        .llvm_name = "krait",
        .features = featureSet(&[_]Feature{
            .avoid_partial_cpsr,
            .hwdiv,
            .hwdiv_arm,
            .muxed_units,
            .ret_addr_stack,
            .v7a,
            .vfp4,
            .vldn_align,
            .vmlx_forwarding,
        }),
    };
    pub const kryo: CpuModel = .{
        .name = "kryo",
        .llvm_name = "kryo",
        .features = featureSet(&[_]Feature{
            .v8a,
        }),
    };
    pub const mpcore: CpuModel = .{
        .name = "mpcore",
        .llvm_name = "mpcore",
        .features = featureSet(&[_]Feature{
            .slowfpvmlx,
            .v6k,
            .vfp2,
        }),
    };
    pub const mpcorenovfp: CpuModel = .{
        .name = "mpcorenovfp",
        .llvm_name = "mpcorenovfp",
        .features = featureSet(&[_]Feature{
            .v6k,
        }),
    };
    pub const neoverse_n1: CpuModel = .{
        .name = "neoverse_n1",
        .llvm_name = "neoverse-n1",
        .features = featureSet(&[_]Feature{
            .dotprod,
            .v8_2a,
        }),
    };
    pub const neoverse_n2: CpuModel = .{
        .name = "neoverse_n2",
        .llvm_name = "neoverse-n2",
        .features = featureSet(&[_]Feature{
            .bf16,
            .fp16fml,
            .i8mm,
            .v9a,
        }),
    };
    pub const neoverse_v1: CpuModel = .{
        .name = "neoverse_v1",
        .llvm_name = "neoverse-v1",
        .features = featureSet(&[_]Feature{
            .bf16,
            .fullfp16,
            .i8mm,
            .v8_4a,
        }),
    };
    pub const sc000: CpuModel = .{
        .name = "sc000",
        .llvm_name = "sc000",
        .features = featureSet(&[_]Feature{
            .no_branch_predictor,
            .v6m,
        }),
    };
    pub const sc300: CpuModel = .{
        .name = "sc300",
        .llvm_name = "sc300",
        .features = featureSet(&[_]Feature{
            .no_branch_predictor,
            .use_misched,
            .v7m,
        }),
    };
    pub const strongarm: CpuModel = .{
        .name = "strongarm",
        .llvm_name = "strongarm",
        .features = featureSet(&[_]Feature{
            .v4,
        }),
    };
    pub const strongarm110: CpuModel = .{
        .name = "strongarm110",
        .llvm_name = "strongarm110",
        .features = featureSet(&[_]Feature{
            .v4,
        }),
    };
    pub const strongarm1100: CpuModel = .{
        .name = "strongarm1100",
        .llvm_name = "strongarm1100",
        .features = featureSet(&[_]Feature{
            .v4,
        }),
    };
    pub const strongarm1110: CpuModel = .{
        .name = "strongarm1110",
        .llvm_name = "strongarm1110",
        .features = featureSet(&[_]Feature{
            .v4,
        }),
    };
    pub const swift: CpuModel = .{
        .name = "swift",
        .llvm_name = "swift",
        .features = featureSet(&[_]Feature{
            .avoid_movs_shop,
            .avoid_partial_cpsr,
            .disable_postra_scheduler,
            .hwdiv,
            .hwdiv_arm,
            .mp,
            .neonfp,
            .prefer_ishst,
            .prof_unpr,
            .ret_addr_stack,
            .slow_load_D_subreg,
            .slow_odd_reg,
            .slow_vdup32,
            .slow_vgetlni32,
            .slowfpvfmx,
            .slowfpvmlx,
            .use_misched,
            .v7a,
            .vfp4,
            .vmlx_hazards,
            .wide_stride_vfp,
        }),
    };
    pub const xscale: CpuModel = .{
        .name = "xscale",
        .llvm_name = "xscale",
        .features = featureSet(&[_]Feature{
            .v5te,
        }),
    };
}