/*
 *
 * AUTO-GENERATED BY ./update
 * DO NOT MODIFY
 *
 * cargo run --manifest-path update/Cargo.toml
 */

#![allow(non_upper_case_globals, non_camel_case_types)]

use super::*;

pub(crate) const RUSTC_VERSION: &str = "1.76.0";

pub const ALL_BUILTINS: &[TargetInfo] = &[
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-darwin"),
        os: Some(Os::macos),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-ios"),
        os: Some(Os::ios),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-ios-macabi"),
        os: Some(Os::ios),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-ios-sim"),
        os: Some(Os::ios),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-tvos"),
        os: Some(Os::tvos),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-tvos-sim"),
        os: Some(Os::tvos),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-watchos"),
        os: Some(Os::watchos),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-watchos-sim"),
        os: Some(Os::watchos),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-fuchsia"),
        os: Some(Os::fuchsia),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-kmc-solid_asp3"),
        os: Some(Os::solid_asp3),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::kmc),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-linux-android"),
        os: Some(Os::android),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-nintendo-switch-freestanding"),
        os: Some(Os::horizon),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-pc-windows-gnullvm"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-pc-windows-msvc"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-freebsd"),
        os: Some(Os::freebsd),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-fuchsia"),
        os: Some(Os::fuchsia),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-hermit"),
        os: Some(Os::hermit),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-linux-gnu_ilp32"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-linux-ohos"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::ohos),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-netbsd"),
        os: Some(Os::netbsd),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-none"),
        os: None,
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-none-softfloat"),
        os: None,
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-nto-qnx710"),
        os: Some(Os::nto),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::nto71),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-openbsd"),
        os: Some(Os::openbsd),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-redox"),
        os: Some(Os::redox),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::relibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-teeos"),
        os: Some(Os::teeos),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-uefi"),
        os: Some(Os::uefi),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-uwp-windows-msvc"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-wrs-vxworks"),
        os: Some(Os::vxworks),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64_be-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64_be-unknown-linux-gnu_ilp32"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64_be-unknown-netbsd"),
        os: Some(Os::netbsd),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("arm-linux-androideabi"),
        os: Some(Os::android),
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("arm-unknown-linux-gnueabi"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("arm-unknown-linux-gnueabihf"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("arm-unknown-linux-musleabi"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("arm-unknown-linux-musleabihf"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("arm64_32-apple-watchos"),
        os: Some(Os::watchos),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("arm64e-apple-darwin"),
        os: Some(Os::macos),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("arm64e-apple-ios"),
        os: Some(Os::ios),
        abi: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armeb-unknown-linux-gnueabi"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armebv7r-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("armebv7r-none-eabihf"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("armv4t-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("armv4t-unknown-linux-gnueabi"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv5te-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("armv5te-unknown-linux-gnueabi"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv5te-unknown-linux-musleabi"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv5te-unknown-linux-uclibceabi"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv6-unknown-freebsd"),
        os: Some(Os::freebsd),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::gnueabihf),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv6-unknown-netbsd-eabihf"),
        os: Some(Os::netbsd),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::eabihf),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv6k-nintendo-3ds"),
        os: Some(Os::horizon),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::newlib),
        vendor: Some(Vendor::nintendo),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-linux-androideabi"),
        os: Some(Os::android),
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-sony-vita-newlibeabihf"),
        os: Some(Os::vita),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::newlib),
        vendor: Some(Vendor::sony),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-freebsd"),
        os: Some(Os::freebsd),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::gnueabihf),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-gnueabi"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-gnueabihf"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-musleabi"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-musleabihf"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-ohos"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::ohos),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-uclibceabi"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-uclibceabihf"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-netbsd-eabihf"),
        os: Some(Os::netbsd),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::eabihf),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-wrs-vxworks-eabihf"),
        os: Some(Os::vxworks),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7a-kmc-solid_asp3-eabi"),
        os: Some(Os::solid_asp3),
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::kmc),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7a-kmc-solid_asp3-eabihf"),
        os: Some(Os::solid_asp3),
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::kmc),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7a-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("armv7a-none-eabihf"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("armv7k-apple-watchos"),
        os: Some(Os::watchos),
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("armv7r-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("armv7r-none-eabihf"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("armv7s-apple-ios"),
        os: Some(Os::ios),
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("avr-unknown-gnu-atmega328"),
        os: None,
        abi: None,
        arch: Arch::avr,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 16,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("bpfeb-unknown-none"),
        os: None,
        abi: None,
        arch: Arch::bpf,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("bpfel-unknown-none"),
        os: None,
        abi: None,
        arch: Arch::bpf,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("csky-unknown-linux-gnuabiv2"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::csky,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("csky-unknown-linux-gnuabiv2hf"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::csky,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("hexagon-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::hexagon,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i386-apple-ios"),
        os: Some(Os::ios),
        abi: None,
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i586-pc-nto-qnx700"),
        os: Some(Os::nto),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::nto70),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i586-pc-windows-msvc"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i586-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i586-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i586-unknown-netbsd"),
        os: Some(Os::netbsd),
        abi: None,
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-apple-darwin"),
        os: Some(Os::macos),
        abi: None,
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-linux-android"),
        os: Some(Os::android),
        abi: None,
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-pc-windows-gnu"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-pc-windows-gnullvm"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-pc-windows-msvc"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-freebsd"),
        os: Some(Os::freebsd),
        abi: None,
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-haiku"),
        os: Some(Os::haiku),
        abi: None,
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-hurd-gnu"),
        os: Some(Os::hurd),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-netbsd"),
        os: Some(Os::netbsd),
        abi: None,
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-openbsd"),
        os: Some(Os::openbsd),
        abi: None,
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-uefi"),
        os: Some(Os::uefi),
        abi: None,
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("i686-uwp-windows-gnu"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-uwp-windows-msvc"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-win7-windows-msvc"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::msvc),
        vendor: Some(Vendor::win7),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("i686-wrs-vxworks"),
        os: Some(Os::vxworks),
        abi: None,
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("loongarch64-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::loongarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("loongarch64-unknown-none"),
        os: None,
        abi: None,
        arch: Arch::loongarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("loongarch64-unknown-none-softfloat"),
        os: None,
        abi: None,
        arch: Arch::loongarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("m68k-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::m68k,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mips-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mips-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mips-unknown-linux-uclibc"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mips64-openwrt-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mips64-unknown-linux-gnuabi64"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mips64-unknown-linux-muslabi64"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mips64el-unknown-linux-gnuabi64"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mips64el-unknown-linux-muslabi64"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-sony-psp"),
        os: Some(Os::psp),
        abi: None,
        arch: Arch::mips,
        env: None,
        vendor: Some(Vendor::sony),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-sony-psx"),
        os: None,
        abi: None,
        arch: Arch::mips,
        env: Some(Env::psx),
        vendor: Some(Vendor::sony),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-unknown-linux-uclibc"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-unknown-netbsd"),
        os: Some(Os::netbsd),
        abi: None,
        arch: Arch::mips,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-unknown-none"),
        os: None,
        abi: None,
        arch: Arch::mips,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("mipsisa32r6-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips32r6,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mipsisa32r6el-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips32r6,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mipsisa64r6-unknown-linux-gnuabi64"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips64r6,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("mipsisa64r6el-unknown-linux-gnuabi64"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::mips64r6,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("msp430-none-elf"),
        os: None,
        abi: None,
        arch: Arch::msp430,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 16,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("nvptx64-nvidia-cuda"),
        os: Some(Os::cuda),
        abi: None,
        arch: Arch::nvptx64,
        env: None,
        vendor: Some(Vendor::nvidia),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-freebsd"),
        os: Some(Os::freebsd),
        abi: None,
        arch: Arch::powerpc,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-linux-gnuspe"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::powerpc,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-netbsd"),
        os: Some(Os::netbsd),
        abi: None,
        arch: Arch::powerpc,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-openbsd"),
        os: Some(Os::openbsd),
        abi: None,
        arch: Arch::powerpc,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-wrs-vxworks"),
        os: Some(Os::vxworks),
        abi: None,
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-wrs-vxworks-spe"),
        os: Some(Os::vxworks),
        abi: None,
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64-ibm-aix"),
        os: Some(Os::aix),
        abi: None,
        arch: Arch::powerpc64,
        env: None,
        vendor: Some(Vendor::ibm),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64-unknown-freebsd"),
        os: Some(Os::freebsd),
        abi: None,
        arch: Arch::powerpc64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::powerpc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::powerpc64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64-unknown-openbsd"),
        os: Some(Os::openbsd),
        abi: None,
        arch: Arch::powerpc64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64-wrs-vxworks"),
        os: Some(Os::vxworks),
        abi: None,
        arch: Arch::powerpc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64le-unknown-freebsd"),
        os: Some(Os::freebsd),
        abi: None,
        arch: Arch::powerpc64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64le-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::powerpc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64le-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::powerpc64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32gc-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::riscv32,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32gc-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::riscv32,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32i-unknown-none-elf"),
        os: None,
        abi: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32im-unknown-none-elf"),
        os: None,
        abi: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32imac-esp-espidf"),
        os: Some(Os::espidf),
        abi: None,
        arch: Arch::riscv32,
        env: Some(Env::newlib),
        vendor: Some(Vendor::espressif),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32imac-unknown-none-elf"),
        os: None,
        abi: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32imac-unknown-xous-elf"),
        os: Some(Os::xous),
        abi: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32imafc-unknown-none-elf"),
        os: None,
        abi: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32imc-esp-espidf"),
        os: Some(Os::espidf),
        abi: None,
        arch: Arch::riscv32,
        env: Some(Env::newlib),
        vendor: Some(Vendor::espressif),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32imc-unknown-none-elf"),
        os: None,
        abi: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64-linux-android"),
        os: Some(Os::android),
        abi: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-freebsd"),
        os: Some(Os::freebsd),
        abi: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-fuchsia"),
        os: Some(Os::fuchsia),
        abi: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-hermit"),
        os: Some(Os::hermit),
        abi: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::riscv64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::riscv64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-netbsd"),
        os: Some(Os::netbsd),
        abi: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-none-elf"),
        os: None,
        abi: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-openbsd"),
        os: Some(Os::openbsd),
        abi: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64imac-unknown-none-elf"),
        os: None,
        abi: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("s390x-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::s390x,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("s390x-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::s390x,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("sparc-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::sparc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("sparc-unknown-none-elf"),
        os: None,
        abi: None,
        arch: Arch::sparc,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("sparc64-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::sparc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("sparc64-unknown-netbsd"),
        os: Some(Os::netbsd),
        abi: None,
        arch: Arch::sparc64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("sparc64-unknown-openbsd"),
        os: Some(Os::openbsd),
        abi: None,
        arch: Arch::sparc64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("sparcv9-sun-solaris"),
        os: Some(Os::solaris),
        abi: None,
        arch: Arch::sparc64,
        env: None,
        vendor: Some(Vendor::sun),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv4t-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv5te-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv6m-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::new_const(&[]),
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7a-pc-windows-msvc"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7a-uwp-windows-msvc"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7em-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7em-none-eabihf"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7m-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7neon-linux-androideabi"),
        os: Some(Os::android),
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7neon-unknown-linux-gnueabihf"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7neon-unknown-linux-musleabihf"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv8m.base-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv8m.main-none-eabi"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv8m.main-none-eabihf"),
        os: None,
        abi: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("wasm32-unknown-emscripten"),
        os: Some(Os::emscripten),
        abi: None,
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix_wasm,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("wasm32-unknown-unknown"),
        os: Some(Os::unknown),
        abi: None,
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::wasm,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("wasm32-wasi"),
        os: Some(Os::wasi),
        abi: None,
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::wasm,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("wasm32-wasi-preview1-threads"),
        os: Some(Os::wasi),
        abi: None,
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::wasm,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("wasm64-unknown-unknown"),
        os: Some(Os::unknown),
        abi: None,
        arch: Arch::wasm64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::wasm,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-apple-darwin"),
        os: Some(Os::macos),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-apple-ios"),
        os: Some(Os::ios),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-apple-ios-macabi"),
        os: Some(Os::ios),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-apple-tvos"),
        os: Some(Os::tvos),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-apple-watchos-sim"),
        os: Some(Os::watchos),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-fortanix-unknown-sgx"),
        os: Some(Os::unknown),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::sgx),
        vendor: Some(Vendor::fortanix),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-fuchsia"),
        os: Some(Os::fuchsia),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-linux-android"),
        os: Some(Os::android),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-pc-nto-qnx710"),
        os: Some(Os::nto),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::nto71),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-pc-solaris"),
        os: Some(Os::solaris),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::pc),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-pc-windows-gnu"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-pc-windows-gnullvm"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-pc-windows-msvc"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unikraft-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unikraft),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-dragonfly"),
        os: Some(Os::dragonfly),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-freebsd"),
        os: Some(Os::freebsd),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-fuchsia"),
        os: Some(Os::fuchsia),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-haiku"),
        os: Some(Os::haiku),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-hermit"),
        os: Some(Os::hermit),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-illumos"),
        os: Some(Os::illumos),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-l4re-uclibc"),
        os: Some(Os::l4re),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-linux-gnu"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-linux-gnux32"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-linux-musl"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-linux-ohos"),
        os: Some(Os::linux),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::ohos),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-netbsd"),
        os: Some(Os::netbsd),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-none"),
        os: None,
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-openbsd"),
        os: Some(Os::openbsd),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-redox"),
        os: Some(Os::redox),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::relibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-uefi"),
        os: Some(Os::uefi),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::abort,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-uwp-windows-gnu"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-uwp-windows-msvc"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-win7-windows-msvc"),
        os: Some(Os::windows),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::win7),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-wrs-vxworks"),
        os: Some(Os::vxworks),
        abi: None,
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
        panic: Panic::unwind,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64h-apple-darwin"),
        os: Some(Os::macos),
        abi: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
        has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
        panic: Panic::unwind,
    },
];

impl super::Abi {}

impl super::Arch {
    pub const aarch64: Arch = Arch::new_const("aarch64");
    pub const arm: Arch = Arch::new_const("arm");
    pub const avr: Arch = Arch::new_const("avr");
    pub const bpf: Arch = Arch::new_const("bpf");
    pub const csky: Arch = Arch::new_const("csky");
    pub const hexagon: Arch = Arch::new_const("hexagon");
    pub const loongarch64: Arch = Arch::new_const("loongarch64");
    pub const m68k: Arch = Arch::new_const("m68k");
    pub const mips: Arch = Arch::new_const("mips");
    pub const mips32r6: Arch = Arch::new_const("mips32r6");
    pub const mips64: Arch = Arch::new_const("mips64");
    pub const mips64r6: Arch = Arch::new_const("mips64r6");
    pub const msp430: Arch = Arch::new_const("msp430");
    pub const nvptx64: Arch = Arch::new_const("nvptx64");
    pub const powerpc: Arch = Arch::new_const("powerpc");
    pub const powerpc64: Arch = Arch::new_const("powerpc64");
    pub const riscv32: Arch = Arch::new_const("riscv32");
    pub const riscv64: Arch = Arch::new_const("riscv64");
    pub const s390x: Arch = Arch::new_const("s390x");
    pub const sparc: Arch = Arch::new_const("sparc");
    pub const sparc64: Arch = Arch::new_const("sparc64");
    pub const wasm32: Arch = Arch::new_const("wasm32");
    pub const wasm64: Arch = Arch::new_const("wasm64");
    pub const x86: Arch = Arch::new_const("x86");
    pub const x86_64: Arch = Arch::new_const("x86_64");
}

impl super::Vendor {
    pub const apple: Vendor = Vendor::new_const("apple");
    pub const espressif: Vendor = Vendor::new_const("espressif");
    pub const fortanix: Vendor = Vendor::new_const("fortanix");
    pub const ibm: Vendor = Vendor::new_const("ibm");
    pub const kmc: Vendor = Vendor::new_const("kmc");
    pub const nintendo: Vendor = Vendor::new_const("nintendo");
    pub const nvidia: Vendor = Vendor::new_const("nvidia");
    pub const pc: Vendor = Vendor::new_const("pc");
    pub const sony: Vendor = Vendor::new_const("sony");
    pub const sun: Vendor = Vendor::new_const("sun");
    pub const unikraft: Vendor = Vendor::new_const("unikraft");
    pub const unknown: Vendor = Vendor::new_const("unknown");
    pub const uwp: Vendor = Vendor::new_const("uwp");
    pub const win7: Vendor = Vendor::new_const("win7");
    pub const wrs: Vendor = Vendor::new_const("wrs");
}

impl super::Os {
    pub const aix: Os = Os::new_const("aix");
    pub const android: Os = Os::new_const("android");
    pub const cuda: Os = Os::new_const("cuda");
    pub const dragonfly: Os = Os::new_const("dragonfly");
    pub const emscripten: Os = Os::new_const("emscripten");
    pub const espidf: Os = Os::new_const("espidf");
    pub const freebsd: Os = Os::new_const("freebsd");
    pub const fuchsia: Os = Os::new_const("fuchsia");
    pub const haiku: Os = Os::new_const("haiku");
    pub const hermit: Os = Os::new_const("hermit");
    pub const horizon: Os = Os::new_const("horizon");
    pub const hurd: Os = Os::new_const("hurd");
    pub const illumos: Os = Os::new_const("illumos");
    pub const ios: Os = Os::new_const("ios");
    pub const l4re: Os = Os::new_const("l4re");
    pub const linux: Os = Os::new_const("linux");
    pub const macos: Os = Os::new_const("macos");
    pub const netbsd: Os = Os::new_const("netbsd");
    pub const nto: Os = Os::new_const("nto");
    pub const openbsd: Os = Os::new_const("openbsd");
    pub const psp: Os = Os::new_const("psp");
    pub const redox: Os = Os::new_const("redox");
    pub const solaris: Os = Os::new_const("solaris");
    pub const solid_asp3: Os = Os::new_const("solid_asp3");
    pub const teeos: Os = Os::new_const("teeos");
    pub const tvos: Os = Os::new_const("tvos");
    pub const uefi: Os = Os::new_const("uefi");
    pub const unknown: Os = Os::new_const("unknown");
    pub const vita: Os = Os::new_const("vita");
    pub const vxworks: Os = Os::new_const("vxworks");
    pub const wasi: Os = Os::new_const("wasi");
    pub const watchos: Os = Os::new_const("watchos");
    pub const windows: Os = Os::new_const("windows");
    pub const xous: Os = Os::new_const("xous");
}

impl super::Family {
    pub const unix: Family = Family::new_const("unix");
    pub const wasm: Family = Family::new_const("wasm");
    pub const windows: Family = Family::new_const("windows");
}

const __families_unix: &[Family] = &[Family::unix];
const __families_unix_wasm: &[Family] = &[Family::unix, Family::wasm];
const __families_wasm: &[Family] = &[Family::wasm];
const __families_windows: &[Family] = &[Family::windows];

impl super::Families {
    pub const unix: Families = Families::new_const(__families_unix);
    pub const unix_wasm: Families = Families::new_const(__families_unix_wasm);
    pub const wasm: Families = Families::new_const(__families_wasm);
    pub const windows: Families = Families::new_const(__families_windows);
}

impl super::Env {
    pub const eabihf: Env = Env::new_const("eabihf");
    pub const gnu: Env = Env::new_const("gnu");
    pub const gnueabihf: Env = Env::new_const("gnueabihf");
    pub const msvc: Env = Env::new_const("msvc");
    pub const musl: Env = Env::new_const("musl");
    pub const newlib: Env = Env::new_const("newlib");
    pub const nto70: Env = Env::new_const("nto70");
    pub const nto71: Env = Env::new_const("nto71");
    pub const ohos: Env = Env::new_const("ohos");
    pub const psx: Env = Env::new_const("psx");
    pub const relibc: Env = Env::new_const("relibc");
    pub const sgx: Env = Env::new_const("sgx");
    pub const uclibc: Env = Env::new_const("uclibc");
}

const __has_atomics_8_16_32_64_128_ptr: &[HasAtomic] = &[
    HasAtomic::IntegerSize(8),
    HasAtomic::IntegerSize(16),
    HasAtomic::IntegerSize(32),
    HasAtomic::IntegerSize(64),
    HasAtomic::IntegerSize(128),
    HasAtomic::Pointer,
];
const __has_atomics_8_16_32_64_ptr: &[HasAtomic] = &[
    HasAtomic::IntegerSize(8),
    HasAtomic::IntegerSize(16),
    HasAtomic::IntegerSize(32),
    HasAtomic::IntegerSize(64),
    HasAtomic::Pointer,
];
const __has_atomics_8_16_32_ptr: &[HasAtomic] = &[
    HasAtomic::IntegerSize(8),
    HasAtomic::IntegerSize(16),
    HasAtomic::IntegerSize(32),
    HasAtomic::Pointer,
];

impl super::HasAtomics {
    pub const atomic_8_16_32_64_128_ptr: HasAtomics =
        HasAtomics::new_const(__has_atomics_8_16_32_64_128_ptr);
    pub const atomic_8_16_32_64_ptr: HasAtomics =
        HasAtomics::new_const(__has_atomics_8_16_32_64_ptr);
    pub const atomic_8_16_32_ptr: HasAtomics = HasAtomics::new_const(__has_atomics_8_16_32_ptr);
}

impl super::Panic {
    pub const abort: Panic = Panic::new_const("abort");
    pub const unwind: Panic = Panic::new_const("unwind");
}
