Skip to content

Instantly share code, notes, and snippets.

@apocalyptech
Last active August 12, 2023 23:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save apocalyptech/34215840f64732940e441045ae3c4746 to your computer and use it in GitHub Desktop.
Save apocalyptech/34215840f64732940e441045ae3c4746 to your computer and use it in GitHub Desktop.
Steam Deck CPU flags
--------------------
fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm
constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni
pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx
f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse
3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext
perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp
vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt
clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc
cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd cppc
arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid
decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl
umip rdpid overflow_recov succor smca sme sev sev_es
native-image -march=list
------------------------
(Annoted list -- "Y" is a preset I think would work for Deck-targetted
builds, "N" is for those that won't. For flags with a slash: first bit
is what native-image says, second bit is what I think they're actually
reported as in /proc/cpuinfo)
On AMD64, the following machine types are available:
Y? 'native' (detected on my desktop CPU)
CPU features: cx8 + cmov + fxsr + mmx + amd_3dnow_prefetch/3dnowprefetch + sse + sse2 + sse3/pni + ssse3 + sse4a + sse4_1 + sse4_2 + popcnt + lzcnt/abm + tsc + tscinv_bit(?) + avx + aes + clmul/pclmulqdq + bmi1 + fma + vzeroupper(?) + flush/clflush
(looks like the Deck might actually have all these, though I have no idea where "tscinv_bit"
and "vzeroupper" come from on my own CPU; nothing like that is listed in my flags below)
Y 'x86-64'
CPU features: cx8 + cmov + fxsr + mmx + sse + sse2
Y 'x86-64-v1'
CPU features: all of 'x86-64'
Y 'x86-64-v2'
CPU features: all of 'x86-64-v1' + sse3/pni + ssse3 + sse4_1 + sse4_2 + popcnt
Y 'x86-64-v3'
CPU features: all of 'x86-64-v2' + lzcnt/abm + avx + avx2 + bmi1 + bmi2 + fma
N 'x86-64-v4'
CPU features: all of 'x86-64-v3' + avx512f + avx512dq + avx512cd + avx512bw + avx512vl
(missing basically all the extras)
Y 'compatibility'
CPU features: all of 'x86-64'
Y 'haswell'
CPU features: all of 'x86-64' + sse3/pni + ssse3 + sse4_1 + sse4_2 + popcnt + lzcnt/abm + avx + avx2 + aes + clmul/pclmulqdq + bmi1 + bmi2 + fma
Y 'skylake'
CPU features: all of 'haswell' + amd_3dnow_prefetch/3dnowprefetch + adx + flushopt/clflushopt
N 'skylake-avx512'
CPU features: all of 'skylake' + avx512f + avx512dq + avx512cd + avx512bw + avx512vl + clwb
(missing all the avx512* ones)
My desktop flags ("native")
---------------------------
fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm
constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl
pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave
avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a
misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core
perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate ssbd ibpb vmmcall
fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt
xsavec xgetbv1 clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save
tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic
v_vmsave_vmload vgif overflow_recov succor smca sev sev_es
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment