x86_64-unknown-hermit

Arch x86_64
Family hermit
OS hermit

CFGs:

  • debug_assertions
  • panic="abort"
  • target_abi=""
  • target_arch="x86_64"
  • target_endian="little"
  • target_env=""
  • target_feature="fxsr"
  • target_feature="llvm14-builtins-abi"
  • target_feature="rdrand"
  • target_feature="rdseed"
  • target_feature="sse"
  • target_feature="sse2"
  • target_has_atomic="16"
  • target_has_atomic="32"
  • target_has_atomic="64"
  • target_has_atomic="8"
  • target_has_atomic="ptr"
  • target_has_atomic_equal_alignment="16"
  • target_has_atomic_equal_alignment="32"
  • target_has_atomic_equal_alignment="64"
  • target_has_atomic_equal_alignment="8"
  • target_has_atomic_equal_alignment="ptr"
  • target_has_atomic_load_store="16"
  • target_has_atomic_load_store="32"
  • target_has_atomic_load_store="64"
  • target_has_atomic_load_store="8"
  • target_has_atomic_load_store="ptr"
  • target_os="hermit"
  • target_pointer_width="64"
  • target_thread_local
  • target_vendor="unknown"
Feature Name Feature Explanation LLVM
adx Support ADX instructions. ⛔️
aes Enable AES instructions. ⛔️
avx Enable AVX instructions. ⛔️
avx2 Enable AVX2 instructions. ⛔️
avx512bf16 Support bfloat16 floating point. ⛔️
avx512bitalg Enable AVX-512 Bit Algorithms. ⛔️
avx512bw Enable AVX-512 Byte and Word Instructions. ⛔️
avx512cd Enable AVX-512 Conflict Detection Instructions. ⛔️
avx512dq Enable AVX-512 Doubleword and Quadword Instructions. ⛔️
avx512er Enable AVX-512 Exponential and Reciprocal Instructions. ⛔️
avx512f Enable AVX-512 instructions. ⛔️
avx512gfni Enable Galois Field Arithmetic Instructions. ⛔️
avx512ifma Enable AVX-512 Integer Fused Multiple-Add. ⛔️
avx512pf Enable AVX-512 PreFetch Instructions. ⛔️
avx512vaes Promote selected AES instructions to AVX512/AVX registers. ⛔️
avx512vbmi Enable AVX-512 Vector Byte Manipulation Instructions. ⛔️
avx512vbmi2 Enable AVX-512 further Vector Byte Manipulation Instructions. ⛔️
avx512vl Enable AVX-512 Vector Length eXtensions. ⛔️
avx512vnni Enable AVX-512 Vector Neural Network Instructions. ⛔️
avx512vp2intersect Enable AVX-512 vp2intersect. ⛔️
avx512vpclmulqdq Enable vpclmulqdq instructions. ⛔️
avx512vpopcntdq Enable AVX-512 Population Count Instructions. ⛔️
bmi1 Support BMI instructions. ⛔️
bmi2 Support BMI2 instructions. ⛔️
cmpxchg16b 64-bit with cmpxchg16b (this is true for most x86-64 chips, but not the first AMD chips). ⛔️
ermsb REP MOVS/STOS are fast. ⛔️
f16c Support 16-bit floating point conversion instructions. ⛔️
fma Enable three-operand fused multiple-add. ⛔️
fxsr Support fxsave/fxrestore instructions. ⛔️
lzcnt Support LZCNT instruction. ⛔️
movbe Support MOVBE instruction. ⛔️
pclmulqdq Enable packed carry-less multiplication instructions. ⛔️
popcnt Support POPCNT instruction. ⛔️
rdrand Support RDRAND instruction. ⛔️
rdseed Support RDSEED instruction. ⛔️
rtm Support RTM instructions. ⛔️
sha Enable SHA instructions. ⛔️
sse Enable SSE instructions. ⛔️
sse2 Enable SSE2 instructions. ⛔️
sse3 Enable SSE3 instructions. ⛔️
sse4.1 Enable SSE 4.1 instructions. ⛔️
sse4.2 Enable SSE 4.2 instructions. ⛔️
sse4a Support SSE 4a instructions. ⛔️
ssse3 Enable SSSE3 instructions. ⛔️
tbm Enable TBM instructions. ⛔️
xsave Support xsave instructions. ⛔️
xsavec Support xsavec instructions. ⛔️
xsaveopt Support xsaveopt instructions. ⛔️
xsaves Support xsaves instructions. ⛔️
crt-static Enables C Run-time Libraries to be statically linked. ⛔️
16bit-mode 16-bit mode (i8086).
32bit-mode 32-bit mode (80386).
3dnow Enable 3DNow! instructions.
3dnowa Enable 3DNow! Athlon instructions.
64bit Support 64-bit instructions.
64bit-mode 64-bit mode (x86_64).
amx-bf16 Support AMX-BF16 instructions.
amx-int8 Support AMX-INT8 instructions.
amx-tile Support AMX-TILE instructions.
avx512fp16 Support 16-bit floating point.
avxvnni Support AVX_VNNI encoding.
branchfusion CMP/TEST can be fused with conditional branches.
cldemote Enable Cache Line Demote.
clflushopt Flush A Cache Line Optimized.
clwb Cache Line Write Back.
clzero Enable Cache Line Zero.
cmov Enable conditional move instructions.
crc32 Enable SSE 4.2 CRC32 instruction (used when SSE4.2 is supported but function is GPR only).
cx8 Support CMPXCHG8B instructions.
enqcmd Has ENQCMD instructions.
false-deps-getmant VGETMANTSS/SD/SH and VGETMANDPS/PD(memory version) has a false dependency on dest register.
false-deps-lzcnt-tzcnt LZCNT/TZCNT have a false dependency on dest register.
false-deps-mulc VF[C]MULCPH/SH has a false dependency on dest register.
false-deps-mullq VPMULLQ has a false dependency on dest register.
false-deps-perm VPERMD/Q/PS/PD has a false dependency on dest register.
false-deps-popcnt POPCNT has a false dependency on dest register.
false-deps-range VRANGEPD/PS/SD/SS has a false dependency on dest register.
fast-11bytenop Target can quickly decode up to 11 byte NOPs.
fast-15bytenop Target can quickly decode up to 15 byte NOPs.
fast-7bytenop Target can quickly decode up to 7 byte NOPs.
fast-bextr Indicates that the BEXTR instruction is implemented as a single uop with good throughput.
fast-gather Indicates if gather is reasonably fast (this is true for Skylake client and all AVX-512 CPUs).
fast-hops Prefer horizontal vector math instructions (haddp, phsub, etc.) over normal vector instructions with shuffles.
fast-lzcnt LZCNT instructions are as fast as most simple integer ops.
fast-movbe Prefer a movbe over a single-use load + bswap / single-use bswap + store.
fast-scalar-fsqrt Scalar SQRT is fast (disable Newton-Raphson).
fast-scalar-shift-masks Prefer a left/right scalar logical shift pair over a shift+and pair.
fast-shld-rotate SHLD can be used as a faster rotate.
fast-variable-crosslane-shuffle Cross-lane shuffles with variable masks are fast.
fast-variable-perlane-shuffle Per-lane shuffles with variable masks are fast.
fast-vector-fsqrt Vector SQRT is fast (disable Newton-Raphson).
fast-vector-shift-masks Prefer a left/right vector logical shift pair over a shift+and pair.
fma4 Enable four-operand fused multiple-add.
fsgsbase Support FS/GS Base instructions.
fsrm REP MOVSB of short lengths is faster.
harden-sls-ijmp Harden against straight line speculation across indirect JMP instructions..
harden-sls-ret Harden against straight line speculation across RET instructions..
hreset Has hreset instruction.
idivl-to-divb Use 8-bit divide for positive values less than 256.
idivq-to-divl Use 32-bit divide for positive values less than 2^32.
invpcid Invalidate Process-Context Identifier.
kl Support Key Locker kl Instructions.
lea-sp Use LEA for adjusting the stack pointer (this is an optimization for Intel Atom processors).
lea-uses-ag LEA instruction needs inputs at AG stage.
lvi-cfi Prevent indirect calls/branches from using a memory operand, and precede all indirect calls/branches from a register with an LFENCE instruction to serialize control flow. Also decompose RET instructions into a POP+LFENCE+JMP sequence..
lvi-load-hardening Insert LFENCE instructions to prevent data speculatively injected into loads from being used maliciously..
lwp Enable LWP instructions.
macrofusion Various instructions can be fused with conditional branches.
mmx Enable MMX instructions.
movdir64b Support movdir64b instruction (direct store 64 bytes).
movdiri Support movdiri instruction (direct store integer).
mwaitx Enable MONITORX/MWAITX timer functionality.
nopl Enable NOPL instruction (generally pentium pro+).
pad-short-functions Pad short functions (to prevent a stall when returning too early).
pconfig platform configuration instruction.
pku Enable protection keys.
prefer-128-bit Prefer 128-bit AVX instructions.
prefer-256-bit Prefer 256-bit AVX instructions.
prefer-mask-registers Prefer AVX512 mask registers over PTEST/MOVMSK.
prefetchwt1 Prefetch with Intent to Write and T1 Hint.
prfchw Support PRFCHW instructions.
ptwrite Support ptwrite instruction.
rdpid Support RDPID instructions.
rdpru Support RDPRU instructions.
retpoline Remove speculation of indirect branches from the generated code, either by avoiding them entirely or lowering them with a speculation blocking construct.
retpoline-external-thunk When lowering an indirect call or branch using a `retpoline`, rely on the specified user provided thunk rather than emitting one ourselves. Only has effect when combined with some other retpoline feature.
retpoline-indirect-branches Remove speculation of indirect branches from the generated code.
retpoline-indirect-calls Remove speculation of indirect calls from the generated code.
sahf Support LAHF and SAHF instructions in 64-bit mode.
sbb-dep-breaking SBB with same register has no source dependency.
serialize Has serialize instruction.
seses Prevent speculative execution side channel timing attacks by inserting a speculation barrier before memory reads, memory writes, and conditional branches. Implies LVI Control Flow integrity..
sgx Enable Software Guard Extensions.
shstk Support CET Shadow-Stack instructions.
slow-3ops-lea LEA instruction with 3 ops or certain registers is slow.
slow-incdec INC and DEC instructions are slower than ADD and SUB.
slow-lea LEA instruction with certain arguments is slow.
slow-pmaddwd PMADDWD is slower than PMULLD.
slow-pmulld PMULLD instruction is slow (compared to PMULLW/PMULHW and PMULUDQ).
slow-shld SHLD instruction is slow.
slow-two-mem-ops Two memory operand instructions are slow.
slow-unaligned-mem-16 Slow unaligned 16-byte memory access.
slow-unaligned-mem-32 Slow unaligned 32-byte memory access.
soft-float Use software floating point features.
sse-unaligned-mem Allow unaligned memory operands with SSE instructions (this may require setting a configuration bit in the processor).
tagged-globals Use an instruction sequence for taking the address of a global that allows a memory tag in the upper address bits..
tsxldtrk Support TSXLDTRK instructions.
uintr Has UINTR Instructions.
use-glm-div-sqrt-costs Use Goldmont specific floating point div/sqrt costs.
use-slm-arith-costs Use Silvermont specific arithmetic costs.
vzeroupper Should insert vzeroupper instructions.
waitpkg Wait and pause enhancements.
wbnoinvd Write Back No Invalidate.
widekl Support Key Locker wide Instructions.
x87 Enable X87 float instructions.
xop Enable XOP instructions.