# X86 features const JL_X86_sse3 = UInt32(0) const JL_X86_pclmul = UInt32(1) const JL_X86_ssse3 = UInt32(9) const JL_X86_fma = UInt32(12) const JL_X86_cx16 = UInt32(13) const JL_X86_sse41 = UInt32(19) const JL_X86_sse42 = UInt32(20) const JL_X86_movbe = UInt32(22) const JL_X86_popcnt = UInt32(23) const JL_X86_aes = UInt32(25) const JL_X86_xsave = UInt32(26) const JL_X86_avx = UInt32(28) const JL_X86_f16c = UInt32(29) const JL_X86_rdrnd = UInt32(30) const JL_X86_fsgsbase = UInt32(32 * 2 + 0) const JL_X86_bmi = UInt32(32 * 2 + 3) const JL_X86_avx2 = UInt32(32 * 2 + 5) const JL_X86_bmi2 = UInt32(32 * 2 + 8) const JL_X86_rtm = UInt32(32 * 2 + 11) const JL_X86_avx512f = UInt32(32 * 2 + 16) const JL_X86_avx512dq = UInt32(32 * 2 + 17) const JL_X86_rdseed = UInt32(32 * 2 + 18) const JL_X86_adx = UInt32(32 * 2 + 19) const JL_X86_avx512ifma = UInt32(32 * 2 + 21) const JL_X86_clflushopt = UInt32(32 * 2 + 23) const JL_X86_clwb = UInt32(32 * 2 + 24) const JL_X86_avx512pf = UInt32(32 * 2 + 26) const JL_X86_avx512er = UInt32(32 * 2 + 27) const JL_X86_avx512cd = UInt32(32 * 2 + 28) const JL_X86_sha = UInt32(32 * 2 + 29) const JL_X86_avx512bw = UInt32(32 * 2 + 30) const JL_X86_avx512vl = UInt32(32 * 2 + 31) const JL_X86_prefetchwt1 = UInt32(32 * 3 + 0) const JL_X86_avx512vbmi = UInt32(32 * 3 + 1) const JL_X86_pku = UInt32(32 * 3 + 4) const JL_X86_waitpkg = UInt32(32 * 3 + 5) const JL_X86_avx512vbmi2 = UInt32(32 * 3 + 6) const JL_X86_shstk = UInt32(32 * 3 + 7) const JL_X86_gfni = UInt32(32 * 3 + 8) const JL_X86_vaes = UInt32(32 * 3 + 9) const JL_X86_vpclmulqdq = UInt32(32 * 3 + 10) const JL_X86_avx512vnni = UInt32(32 * 3 + 11) const JL_X86_avx512bitalg = UInt32(32 * 3 + 12) const JL_X86_avx512vpopcntdq = UInt32(32 * 3 + 14) const JL_X86_rdpid = UInt32(32 * 3 + 22) const JL_X86_cldemote = UInt32(32 * 3 + 25) const JL_X86_movdiri = UInt32(32 * 3 + 27) const JL_X86_movdir64b = UInt32(32 * 3 + 28) const JL_X86_enqcmd = UInt32(32 * 3 + 29) const JL_X86_uintr = UInt32(32 * 4 + 5) const JL_X86_avx512vp2intersect = UInt32(32 * 4 + 8) const JL_X86_serialize = UInt32(32 * 4 + 14) const JL_X86_tsxldtrk = UInt32(32 * 4 + 16) const JL_X86_pconfig = UInt32(32 * 4 + 18) const JL_X86_amx_bf16 = UInt32(32 * 4 + 22) const JL_X86_avx512fp16 = UInt32(32 * 4 + 23) const JL_X86_amx_tile = UInt32(32 * 4 + 24) const JL_X86_amx_int8 = UInt32(32 * 4 + 25) const JL_X86_sahf = UInt32(32 * 5 + 0) const JL_X86_lzcnt = UInt32(32 * 5 + 5) const JL_X86_sse4a = UInt32(32 * 5 + 6) const JL_X86_prfchw = UInt32(32 * 5 + 8) const JL_X86_xop = UInt32(32 * 5 + 11) const JL_X86_fma4 = UInt32(32 * 5 + 16) const JL_X86_tbm = UInt32(32 * 5 + 21) const JL_X86_mwaitx = UInt32(32 * 5 + 29) const JL_X86_xsaveopt = UInt32(32 * 7 + 0) const JL_X86_xsavec = UInt32(32 * 7 + 1) const JL_X86_xsaves = UInt32(32 * 7 + 3) const JL_X86_clzero = UInt32(32 * 8 + 0) const JL_X86_wbnoinvd = UInt32(32 * 8 + 9) const JL_X86_avxvnni = UInt32(32 * 9 + 4) const JL_X86_avx512bf16 = UInt32(32 * 9 + 5) const JL_X86_ptwrite = UInt32(32 * 10 + 4) # AArch32 features const JL_AArch32_neon = UInt32(12) const JL_AArch32_vfp3 = UInt32(13) const JL_AArch32_vfp4 = UInt32(16) const JL_AArch32_hwdiv_arm = UInt32(17) const JL_AArch32_hwdiv = UInt32(18) const JL_AArch32_d32 = UInt32(19) const JL_AArch32_crypto = UInt32(32 + 0) const JL_AArch32_crc = UInt32(32 + 4) const JL_AArch32_aclass = UInt32(32 * 2 + 0) const JL_AArch32_rclass = UInt32(32 * 2 + 1) const JL_AArch32_mclass = UInt32(32 * 2 + 2) const JL_AArch32_v7 = UInt32(32 * 2 + 3) const JL_AArch32_v8 = UInt32(32 * 2 + 4) const JL_AArch32_v8_1a = UInt32(32 * 2 + 5) const JL_AArch32_v8_2a = UInt32(32 * 2 + 6) const JL_AArch32_v8_3a = UInt32(32 * 2 + 7) const JL_AArch32_v8_m_main = UInt32(32 * 2 + 8) const JL_AArch32_v8_4a = UInt32(32 * 2 + 9) const JL_AArch32_v8_5a = UInt32(32 * 2 + 10) const JL_AArch32_v8_6a = UInt32(32 * 2 + 11) # AArch64 features const JL_AArch64_aes = UInt32(4) const JL_AArch64_sha2 = UInt32(6) const JL_AArch64_crc = UInt32(7) const JL_AArch64_lse = UInt32(8) const JL_AArch64_fullfp16 = UInt32(9) const JL_AArch64_rdm = UInt32(12) const JL_AArch64_jsconv = UInt32(13) const JL_AArch64_complxnum = UInt32(14) const JL_AArch64_rcpc = UInt32(15) const JL_AArch64_ccpp = UInt32(16) const JL_AArch64_sha3 = UInt32(17) const JL_AArch64_sm4 = UInt32(19) const JL_AArch64_dotprod = UInt32(20) const JL_AArch64_sve = UInt32(22) const JL_AArch64_fp16fml = UInt32(23) const JL_AArch64_dit = UInt32(24) const JL_AArch64_rcpc_immo = UInt32(26) const JL_AArch64_flagm = UInt32(27) const JL_AArch64_ssbs = UInt32(28) const JL_AArch64_sb = UInt32(29) const JL_AArch64_pauth = UInt32(30) const JL_AArch64_ccdp = UInt32(32 + 0) const JL_AArch64_sve2 = UInt32(32 + 1) const JL_AArch64_sve2_aes = UInt32(32 + 3) const JL_AArch64_sve2_bitperm = UInt32(32 + 4) const JL_AArch64_sve2_sha3 = UInt32(32 + 5) const JL_AArch64_sve2_sm4 = UInt32(32 + 6) const JL_AArch64_altnzcv = UInt32(32 + 7) const JL_AArch64_fptoint = UInt32(32 + 8) const JL_AArch64_f32mm = UInt32(32 + 10) const JL_AArch64_f64mm = UInt32(32 + 11) const JL_AArch64_i8mm = UInt32(32 + 13) const JL_AArch64_bf16 = UInt32(32 + 14) const JL_AArch64_rand = UInt32(32 + 16) const JL_AArch64_bti = UInt32(32 + 17) const JL_AArch64_mte = UInt32(32 + 18) const JL_AArch64_v8_1a = UInt32(32 * 2 + 0) const JL_AArch64_v8_2a = UInt32(32 * 2 + 1) const JL_AArch64_v8_3a = UInt32(32 * 2 + 2) const JL_AArch64_v8_4a = UInt32(32 * 2 + 3) const JL_AArch64_v8_5a = UInt32(32 * 2 + 4) const JL_AArch64_v8_6a = UInt32(32 * 2 + 5)