>zig run cpu_identify.zig zig.system.NativeTargetInfo{ .target = target.Target{ .cpu = target.Target.Cpu{ .arch = target.Target.Cpu.Arch.x86_64, .model = target.Target.Cpu.Model{ ... }, .features = target.Target.Cpu.Feature.Set{ ... } }, .os = target.Target.Os{ .tag = target.Target.Os.Tag.windows, .version_range = target.Target.Os.VersionRange{ ... } }, .abi = target.Target.Abi.gnu, .ofmt = target.Target.ObjectFormat.coff }, .dynamic_linker = target.Target.DynamicLinker{ .buffer = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, .max_byte = null } } target = target.Target{ .cpu = target.Target.Cpu{ .arch = target.Target.Cpu.Arch.x86_64, .model = target.Target.Cpu.Model{ .name = { ... }, .llvm_name = { ... }, .features = target.Target.Cpu.Feature.Set{ ... } }, .features = target.Target.Cpu.Feature.Set{ .ints = { ... } } }, .os = target.Target.Os{ .tag = target.Target.Os.Tag.windows, .version_range = target.Target.Os.VersionRange@f99d3fea08 }, .abi = target.Target.Abi.gnu, .ofmt = target.Target.ObjectFormat.coff } target.cpu = target.Target.Cpu{ .arch = target.Target.Cpu.Arch.x86_64, .model = target.Target.Cpu.Model{ .name = { 120, 56, 54, 95, 54, 52 }, .llvm_name = { 120, 56, 54, 45, 54, 52 }, .features = target.Target.Cpu.Feature.Set{ .ints = { ... } } }, .features = target.Target.Cpu.Feature.Set{ .ints = { 337326731440240, 17330792743462902400, 16437518080, 0, 0 } } } target.cpu.model = target.Target.Cpu.Model{ .name = { 120, 56, 54, 95, 54, 52 }, .llvm_name = { 120, 56, 54, 45, 54, 52 }, .features = target.Target.Cpu.Feature.Set{ .ints = { 37383395344400, 13835058059778590720, 285213184, 0, 0 } } } target.cpu.model.name = x86_64 target.cpu.model.llvm_name = x86-64 target.cpu.model.features = target.Target.Cpu.Feature.Set{ .ints = { 37383395344400, 13835058059778590720, 285213184, 0, 0 } } false +-----+---------------------------------+-----+ | Idx | Feature | | +-----+---------------------------------+-----+ | 0 | 16bit_mode | no | | 1 | 32bit_mode | no | | 2 | 3dnow | no | | 3 | 3dnowa | no | | 4 | 64bit | YES | | 5 | adx | YES | | 6 | aes | YES | | 7 | allow_light_256_bit | no | | 8 | amx_bf16 | no | | 9 | amx_fp16 | no | | 10 | amx_int8 | no | | 11 | amx_tile | no | | 12 | avx | YES | | 13 | avx2 | YES | | 14 | avx512bf16 | no | | 15 | avx512bitalg | no | | 16 | avx512bw | no | | 17 | avx512cd | no | | 18 | avx512dq | no | | 19 | avx512er | no | | 20 | avx512f | no | | 21 | avx512fp16 | no | | 22 | avx512ifma | no | | 23 | avx512pf | no | | 24 | avx512vbmi | no | | 25 | avx512vbmi2 | no | | 26 | avx512vl | no | | 27 | avx512vnni | no | | 28 | avx512vp2intersect | no | | 29 | avx512vpopcntdq | no | | 30 | avxifma | no | | 31 | avxneconvert | no | | 32 | avxvnni | no | | 33 | avxvnniint8 | no | | 34 | bmi | YES | | 35 | bmi2 | YES | | 36 | branchfusion | no | | 37 | cldemote | no | | 38 | clflushopt | YES | | 39 | clwb | YES | | 40 | clzero | no | | 41 | cmov | YES | | 42 | cmpccxadd | no | | 43 | crc32 | no | | 44 | cx16 | YES | | 45 | cx8 | YES | | 46 | enqcmd | no | | 47 | ermsb | no | | 48 | f16c | YES | | 49 | false_deps_getmant | no | | 50 | false_deps_lzcnt_tzcnt | no | | 51 | false_deps_mulc | no | | 52 | false_deps_mullq | no | | 53 | false_deps_perm | no | | 54 | false_deps_popcnt | no | | 55 | false_deps_range | no | | 56 | fast_11bytenop | no | | 57 | fast_15bytenop | no | | 58 | fast_7bytenop | no | | 59 | fast_bextr | no | | 60 | fast_gather | no | | 61 | fast_hops | no | | 62 | fast_lzcnt | no | | 63 | fast_movbe | no | | 64 | fast_scalar_fsqrt | no | | 65 | fast_scalar_shift_masks | no | | 66 | fast_shld_rotate | no | | 67 | fast_variable_crosslane_shuffle | no | | 68 | fast_variable_perlane_shuffle | no | | 69 | fast_vector_fsqrt | no | | 70 | fast_vector_shift_masks | no | | 71 | fma | YES | | 72 | fma4 | no | | 73 | fsgsbase | YES | | 74 | fsrm | no | | 75 | fxsr | YES | | 76 | gfni | YES | | 77 | harden_sls_ijmp | no | | 78 | harden_sls_ret | no | | 79 | hreset | no | | 80 | idivl_to_divb | no | | 81 | idivq_to_divl | YES | | 82 | invpcid | YES | | 83 | kl | no | | 84 | lea_sp | no | | 85 | lea_uses_ag | no | | 86 | lvi_cfi | no | | 87 | lvi_load_hardening | no | | 88 | lwp | no | | 89 | lzcnt | YES | | 90 | macrofusion | YES | | 91 | mmx | YES | | 92 | movbe | YES | | 93 | movdir64b | YES | | 94 | movdiri | YES | | 95 | mwaitx | no | | 96 | nopl | YES | | 97 | pad_short_functions | no | | 98 | pclmul | YES | | 99 | pconfig | YES | | 100 | pku | no | | 101 | popcnt | YES | | 102 | prefer_128_bit | no | | 103 | prefer_256_bit | no | | 104 | prefer_mask_registers | no | | 105 | prefetchi | no | | 106 | prefetchwt1 | no | | 107 | prfchw | YES | | 108 | ptwrite | YES | | 109 | raoint | no | | 110 | rdpid | YES | | 111 | rdpru | no | | 112 | rdrnd | YES | | 113 | rdseed | YES | | 114 | retpoline | no | | 115 | retpoline_external_thunk | no | | 116 | retpoline_indirect_branches | no | | 117 | retpoline_indirect_calls | no | | 118 | rtm | no | | 119 | sahf | YES | | 120 | sbb_dep_breaking | no | | 121 | serialize | no | | 122 | seses | no | | 123 | sgx | no | | 124 | sha | YES | | 125 | shstk | YES | | 126 | slow_3ops_lea | YES | | 127 | slow_incdec | YES | | 128 | slow_lea | no | | 129 | slow_pmaddwd | no | | 130 | slow_pmulld | no | | 131 | slow_shld | no | | 132 | slow_two_mem_ops | no | | 133 | slow_unaligned_mem_16 | no | | 134 | slow_unaligned_mem_32 | no | | 135 | soft_float | no | | 136 | sse | YES | | 137 | sse2 | YES | | 138 | sse3 | YES | | 139 | sse4_1 | YES | | 140 | sse4_2 | YES | | 141 | sse4a | no | | 142 | sse_unaligned_mem | no | | 143 | ssse3 | YES | | 144 | tagged_globals | no | | 145 | tbm | no | | 146 | tsxldtrk | no | | 147 | uintr | no | | 148 | use_glm_div_sqrt_costs | no | | 149 | use_slm_arith_costs | no | | 150 | vaes | YES | | 151 | vpclmulqdq | YES | | 152 | vzeroupper | YES | | 153 | waitpkg | YES | | 154 | wbnoinvd | no | | 155 | widekl | no | | 156 | x87 | YES | | 157 | xop | no | | 158 | xsave | YES | | 159 | xsavec | YES | | 160 | xsaveopt | YES | | 161 | xsaves | YES | +-----+---------------------------------+-----+