CPU Architectures
architectures (44)
x86_64
- aliases:
amd64, x86-64, x64
- description: 64-bit x86 (EM64T / AMD64)
- pointer_width: 64
- endian: little
- vendors:
pc, unknown, apple
- common_os:
linux, windows, darwin, freebsd, netbsd, openbsd, dragonfly, solaris, haiku
- common_triples:
x86_64-pc-linux-gnu, x86_64-pc-linux-musl, x86_64-unknown-linux-gnu, x86_64-unknown-linux-musl, x86_64-pc-windows-msvc, x86_64-pc-windows-gnu, x86_64-apple-darwin, x86_64-apple-macosx, x86_64-unknown-freebsd, x86_64-unknown-netbsd, x86_64-unknown-openbsd
i686
- aliases:
i386, i486, i586, x86, ia32
- description: 32-bit x86 (Pentium Pro and above)
- pointer_width: 32
- endian: little
- vendors:
pc, unknown, apple
- common_os:
linux, windows, freebsd
- common_triples:
i686-pc-linux-gnu, i686-pc-linux-musl, i686-unknown-linux-gnu, i686-pc-windows-msvc, i686-pc-windows-gnu, i686-apple-darwin, i686-unknown-freebsd
aarch64
- aliases:
arm64
- description: 64-bit ARM (ARMv8-A and later, little endian)
- pointer_width: 64
- endian: little
- vendors:
unknown, apple, pc, linux
- common_os:
linux, darwin, windows, ios, android, freebsd, fuchsia
- common_triples:
aarch64-unknown-linux-gnu, aarch64-unknown-linux-musl, aarch64-linux-gnu, aarch64-linux-android, aarch64-apple-darwin, aarch64-apple-ios, aarch64-apple-macosx, aarch64-pc-windows-msvc, aarch64-unknown-freebsd, aarch64-unknown-fuchsia, aarch64-none-elf
aarch64_be
- aliases:
arm64_be
- description: 64-bit ARM (ARMv8-A, big endian)
- pointer_width: 64
- endian: big
- vendors:
unknown
- common_os:
linux
- common_triples:
aarch64_be-unknown-linux-gnu
aarch64_32
- aliases:
arm64_32
- description: 64-bit ARM with ILP32 ABI (used on watchOS)
- pointer_width: 32
- endian: little
- vendors:
apple
- common_os:
watchos
- common_triples:
aarch64_32-apple-watchos, arm64_32-apple-watchos
armv7
- aliases:
arm, armv7a, armv7-a
- description: 32-bit ARM (ARMv7-A, little endian)
- pointer_width: 32
- endian: little
- vendors:
unknown, none, linux
- common_os:
linux, android, none
- common_triples:
armv7-unknown-linux-gnueabihf, armv7-unknown-linux-gnueabi, armv7-unknown-linux-musleabihf, armv7-linux-androideabi, armv7a-linux-androideabi, armv7-none-eabi, armv7-none-eabihf, armv7a-none-eabi
armv7eb
- aliases:
armeb, armv7-aeb
- description: 32-bit ARM (ARMv7-A, big endian)
- pointer_width: 32
- endian: big
- vendors:
unknown
- common_os:
linux
- common_triples:
armeb-unknown-linux-gnueabi, armeb-unknown-linux-gnueabihf
armv6
- aliases:
armv6k, armv6kz
- description: 32-bit ARM (ARMv6, e.g. Raspberry Pi 1 / Zero)
- pointer_width: 32
- endian: little
- vendors:
unknown
- common_os:
linux, none
- common_triples:
arm-unknown-linux-gnueabihf, arm-unknown-linux-gnueabi, arm-unknown-linux-musleabihf, arm-none-eabi
armv5te
- aliases:
armv5, armv5tej
- description: 32-bit ARM (ARMv5TE, legacy embedded)
- pointer_width: 32
- endian: little
- vendors:
unknown
- common_os:
linux, none
- common_triples:
armv5te-unknown-linux-gnueabi, armv5te-none-eabi
armv4t
- aliases:
armv4
- description: 32-bit ARM (ARMv4T, legacy)
- pointer_width: 32
- endian: little
- vendors:
unknown
- common_os:
linux, none
- common_triples:
armv4t-unknown-linux-gnueabi, armv4t-none-eabi
thumb
- aliases:
thumbv7m, thumbv7em, thumbv6m, thumbv8m.main, thumbv8m.base
- description: ARM Thumb instruction set (Cortex-M microcontrollers)
- pointer_width: 32
- endian: little
- vendors:
none
- common_os:
none
- common_triples:
thumbv6m-none-eabi, thumbv7m-none-eabi, thumbv7em-none-eabi, thumbv7em-none-eabihf, thumbv8m.main-none-eabi, thumbv8m.main-none-eabihf, thumbv8m.base-none-eabi
thumbeb
- aliases: —
- description: ARM Thumb instruction set (big endian)
- pointer_width: 32
- endian: big
- vendors:
none
- common_os:
none
- common_triples:
thumbeb-none-eabi
riscv32
- aliases:
riscv32gc, riscv32imac, riscv32imc
- description: 32-bit RISC-V
- pointer_width: 32
- endian: little
- vendors:
unknown, sifive
- common_os:
linux, none
- common_triples:
riscv32-unknown-linux-gnu, riscv32-unknown-elf, riscv32gc-unknown-linux-gnu, riscv32imac-unknown-none-elf, riscv32imc-unknown-none-elf, riscv32imc-esp-espidf
riscv64
- aliases:
riscv64gc, riscv64imac
- description: 64-bit RISC-V
- pointer_width: 64
- endian: little
- vendors:
unknown, sifive
- common_os:
linux, none
- common_triples:
riscv64-unknown-linux-gnu, riscv64-unknown-linux-musl, riscv64gc-unknown-linux-gnu, riscv64gc-unknown-linux-musl, riscv64gc-unknown-none-elf, riscv64-unknown-elf
mips
- aliases:
mips32, mipsbe
- description: 32-bit MIPS (big endian)
- pointer_width: 32
- endian: big
- vendors:
unknown, mti, img
- common_os:
linux, none
- common_triples:
mips-unknown-linux-gnu, mips-unknown-linux-musl
mipsel
- aliases:
mips32el
- description: 32-bit MIPS (little endian)
- pointer_width: 32
- endian: little
- vendors:
unknown, mti, img
- common_os:
linux, none
- common_triples:
mipsel-unknown-linux-gnu, mipsel-unknown-linux-musl, mipsel-linux-android
mips64
- aliases:
mips64be
- description: 64-bit MIPS (big endian)
- pointer_width: 64
- endian: big
- vendors:
unknown, mti, img
- common_os:
linux
- common_triples:
mips64-unknown-linux-gnuabi64, mips64-unknown-linux-muslabi64
mips64el
- aliases: —
- description: 64-bit MIPS (little endian)
- pointer_width: 64
- endian: little
- vendors:
unknown, mti, img
- common_os:
linux
- common_triples:
mips64el-unknown-linux-gnuabi64, mips64el-unknown-linux-muslabi64
powerpc
- aliases:
ppc, ppc32
- description: 32-bit PowerPC (big endian)
- pointer_width: 32
- endian: big
- vendors:
unknown, ibm
- common_os:
linux, aix
- common_triples:
powerpc-unknown-linux-gnu, powerpc-unknown-linux-musl
powerpc64
- aliases:
ppc64
- description: 64-bit PowerPC (big endian)
- pointer_width: 64
- endian: big
- vendors:
unknown, ibm
- common_os:
linux, aix, freebsd
- common_triples:
powerpc64-unknown-linux-gnu, powerpc64-unknown-linux-musl, powerpc64-ibm-aix, powerpc64-unknown-freebsd
powerpc64le
- aliases:
ppc64le, ppc64el
- description: 64-bit PowerPC (little endian)
- pointer_width: 64
- endian: little
- vendors:
unknown, ibm
- common_os:
linux
- common_triples:
powerpc64le-unknown-linux-gnu, powerpc64le-unknown-linux-musl
ppc32le
- aliases:
powerpce
- description: 32-bit PowerPC (little endian)
- pointer_width: 32
- endian: little
- vendors:
unknown
- common_os:
linux
- common_triples:
powerpcle-unknown-linux-gnu
s390x
- aliases:
systemz, z/Architecture
- description: IBM System z / s390x (64-bit, big endian)
- pointer_width: 64
- endian: big
- vendors:
unknown, ibm
- common_os:
linux
- common_triples:
s390x-unknown-linux-gnu, s390x-unknown-linux-musl, s390x-ibm-linux-gnu
wasm32
- aliases: —
- description: WebAssembly 32-bit
- pointer_width: 32
- endian: little
- vendors:
unknown, wasi
- common_os:
wasi, emscripten, unknown
- common_triples:
wasm32-unknown-unknown, wasm32-wasi, wasm32-wasip1, wasm32-wasip2, wasm32-unknown-emscripten, wasm32-wasi-pthread
wasm64
- aliases: —
- description: WebAssembly 64-bit (memory64 proposal)
- pointer_width: 64
- endian: little
- vendors:
unknown, wasi
- common_os:
wasi, emscripten, unknown
- common_triples:
wasm64-unknown-unknown, wasm64-wasi, wasm64-unknown-emscripten
sparc
- aliases:
sparcel, sparcv8
- description: 32-bit SPARC
- pointer_width: 32
- endian: big
- vendors:
unknown, sun
- common_os:
linux, solaris
- common_triples:
sparc-unknown-linux-gnu, sparc-sun-solaris2.11
sparcv9
- aliases:
sparc64, ultrasparc
- description: 64-bit SPARC V9
- pointer_width: 64
- endian: big
- vendors:
unknown, sun
- common_os:
linux, solaris
- common_triples:
sparcv9-unknown-linux-gnu, sparcv9-sun-solaris2.11
loongarch64
- aliases:
la64
- description: 64-bit LoongArch
- pointer_width: 64
- endian: little
- vendors:
unknown, loongson
- common_os:
linux
- common_triples:
loongarch64-unknown-linux-gnu, loongarch64-unknown-linux-musl
loongarch32
- aliases:
la32
- description: 32-bit LoongArch
- pointer_width: 32
- endian: little
- vendors:
unknown, loongson
- common_os:
linux, none
- common_triples:
loongarch32-unknown-linux-gnu, loongarch32-unknown-none-elf
hexagon
- aliases:
qdsp6
- description: Qualcomm Hexagon DSP
- pointer_width: 32
- endian: little
- vendors:
unknown, qualcomm
- common_os:
linux, none
- common_triples:
hexagon-unknown-linux-musl, hexagon-unknown-none-elf
m68k
- aliases:
motorola68k, 68000
- description: Motorola 68000 family
- pointer_width: 32
- endian: big
- vendors:
unknown
- common_os:
linux
- common_triples:
m68k-unknown-linux-gnu
avr
- aliases:
atmega, attiny
- description: Atmel AVR 8-bit microcontroller
- pointer_width: 16
- endian: little
- vendors:
unknown, atmel
- common_os:
none
- common_triples:
avr-unknown-none, avr-atmel-none
msp430
- aliases: —
- description: Texas Instruments MSP430 16-bit microcontroller (experimental)
- pointer_width: 16
- endian: little
- vendors:
unknown, ti
- common_os:
none
- common_triples:
msp430-unknown-none-elf
bpf
- aliases:
bpfel, bpfeb, ebpf
- description: Berkeley Packet Filter (eBPF)
- pointer_width: 64
- endian: little
- vendors:
unknown
- common_os:
none
- common_triples:
bpfel-unknown-none, bpfeb-unknown-none, bpf-unknown-none
nvptx64
- aliases:
nvptx
- description: NVIDIA PTX 64-bit (GPU compute)
- pointer_width: 64
- endian: little
- vendors:
nvidia
- common_os:
cuda
- common_triples:
nvptx64-nvidia-cuda
nvptx
- aliases: —
- description: NVIDIA PTX 32-bit (GPU compute, legacy)
- pointer_width: 32
- endian: little
- vendors:
nvidia
- common_os:
cuda
- common_triples:
nvptx-nvidia-cuda
amdgcn
- aliases:
amdgpu
- description: AMD GCN/RDNA GPUs
- pointer_width: 64
- endian: little
- vendors:
amd
- common_os:
amdhsa, amdpal, mesa3d
- common_triples:
amdgcn-amd-amdhsa, amdgcn-amd-amdpal, amdgcn-amd-mesa3d
spirv64
- aliases:
spirv
- description: SPIR-V 64-bit (GPU intermediate representation)
- pointer_width: 64
- endian: little
- vendors:
unknown
- common_os:
unknown, vulkan, opencl
- common_triples:
spirv64-unknown-unknown
spirv32
- aliases: —
- description: SPIR-V 32-bit
- pointer_width: 32
- endian: little
- vendors:
unknown
- common_os:
unknown
- common_triples:
spirv32-unknown-unknown
ve
- aliases:
sx-aurora
- description: NEC SX-Aurora TSUBASA Vector Engine
- pointer_width: 64
- endian: little
- vendors:
nec
- common_os:
linux
- common_triples:
ve-unknown-linux-gnu
lanai
- aliases: —
- description: Lanai processor (Google TPU-related)
- pointer_width: 32
- endian: big
- vendors:
unknown
- common_os:
none
- common_triples:
lanai-unknown-unknown
xcore
- aliases:
xmos
- description: XMOS XCore multicore microcontroller
- pointer_width: 32
- endian: little
- vendors:
xmos
- common_os:
none
- common_triples:
xcore-xmos-elf
xtensa
- aliases:
esp32, esp8266
- description: Xtensa 32-bit (Espressif ESP32 family)
- pointer_width: 32
- endian: little
- vendors:
unknown, espressif
- common_os:
none, espidf
- common_triples:
xtensa-esp32-none-elf, xtensa-esp32s2-none-elf, xtensa-esp32s3-none-elf, xtensa-esp32-espidf
r600
- aliases: —
- description: AMD GPUs HD2XXX-HD6XXX (legacy)
- pointer_width: 32
- endian: little
- vendors:
amd
- common_os:
mesa3d
- common_triples:
r600-amd-mesa3d