/*
 *
 * 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.50.0";

pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[
    TargetInfo {
        triple: "aarch64-apple-darwin",
        os: Some(Os::macos),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-apple-ios",
        os: Some(Os::ios),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-apple-ios-macabi",
        os: Some(Os::ios),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-apple-tvos",
        os: Some(Os::tvos),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-fuchsia",
        os: Some(Os::fuchsia),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-linux-android",
        os: Some(Os::android),
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-pc-windows-msvc",
        os: Some(Os::windows),
        arch: Arch::aarch64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        family: Some(Family::windows),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-unknown-freebsd",
        os: Some(Os::freebsd),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-unknown-hermit",
        os: Some(Os::hermit),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-unknown-linux-musl",
        os: Some(Os::linux),
        arch: Arch::aarch64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-unknown-netbsd",
        os: Some(Os::netbsd),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-unknown-none",
        os: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-unknown-none-softfloat",
        os: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-unknown-openbsd",
        os: Some(Os::openbsd),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-unknown-redox",
        os: Some(Os::redox),
        arch: Arch::aarch64,
        env: Some(Env::relibc),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-uwp-windows-msvc",
        os: Some(Os::windows),
        arch: Arch::aarch64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        family: Some(Family::windows),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "aarch64-wrs-vxworks",
        os: Some(Os::vxworks),
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "arm-linux-androideabi",
        os: Some(Os::android),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "arm-unknown-linux-gnueabi",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "arm-unknown-linux-gnueabihf",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "arm-unknown-linux-musleabi",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "arm-unknown-linux-musleabihf",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armebv7r-none-eabi",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "armebv7r-none-eabihf",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "armv4t-unknown-linux-gnueabi",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv5te-unknown-linux-gnueabi",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv5te-unknown-linux-musleabi",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv5te-unknown-linux-uclibceabi",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv6-unknown-freebsd",
        os: Some(Os::freebsd),
        arch: Arch::arm,
        env: Some(Env::gnueabihf),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv6-unknown-netbsd-eabihf",
        os: Some(Os::netbsd),
        arch: Arch::arm,
        env: Some(Env::eabihf),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7-apple-ios",
        os: Some(Os::ios),
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7-linux-androideabi",
        os: Some(Os::android),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7-unknown-freebsd",
        os: Some(Os::freebsd),
        arch: Arch::arm,
        env: Some(Env::gnueabihf),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7-unknown-linux-gnueabi",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7-unknown-linux-gnueabihf",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7-unknown-linux-musleabi",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7-unknown-linux-musleabihf",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7-unknown-netbsd-eabihf",
        os: Some(Os::netbsd),
        arch: Arch::arm,
        env: Some(Env::eabihf),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7-wrs-vxworks-eabihf",
        os: Some(Os::vxworks),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7a-none-eabi",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7a-none-eabihf",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7r-none-eabi",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7r-none-eabihf",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "armv7s-apple-ios",
        os: Some(Os::ios),
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "asmjs-unknown-emscripten",
        os: Some(Os::emscripten),
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "avr-unknown-gnu-atmega328",
        os: None,
        arch: Arch::avr,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 16,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "hexagon-unknown-linux-musl",
        os: Some(Os::linux),
        arch: Arch::hexagon,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i386-apple-ios",
        os: Some(Os::ios),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i586-pc-windows-msvc",
        os: Some(Os::windows),
        arch: Arch::x86,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        family: Some(Family::windows),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i586-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i586-unknown-linux-musl",
        os: Some(Os::linux),
        arch: Arch::x86,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-apple-darwin",
        os: Some(Os::macos),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-linux-android",
        os: Some(Os::android),
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-pc-windows-gnu",
        os: Some(Os::windows),
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::pc),
        family: Some(Family::windows),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-pc-windows-msvc",
        os: Some(Os::windows),
        arch: Arch::x86,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        family: Some(Family::windows),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-unknown-freebsd",
        os: Some(Os::freebsd),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-unknown-haiku",
        os: Some(Os::haiku),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-unknown-linux-musl",
        os: Some(Os::linux),
        arch: Arch::x86,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-unknown-netbsd",
        os: Some(Os::netbsd),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-unknown-openbsd",
        os: Some(Os::openbsd),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-unknown-uefi",
        os: Some(Os::uefi),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-uwp-windows-gnu",
        os: Some(Os::windows),
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::uwp),
        family: Some(Family::windows),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-uwp-windows-msvc",
        os: Some(Os::windows),
        arch: Arch::x86,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        family: Some(Family::windows),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "i686-wrs-vxworks",
        os: Some(Os::vxworks),
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "mips-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "mips-unknown-linux-musl",
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "mips-unknown-linux-uclibc",
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "mips64-unknown-linux-gnuabi64",
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "mips64-unknown-linux-muslabi64",
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "mips64el-unknown-linux-gnuabi64",
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "mips64el-unknown-linux-muslabi64",
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "mipsel-sony-psp",
        os: Some(Os::psp),
        arch: Arch::mips,
        env: None,
        vendor: Some(Vendor::sony),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "mipsel-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "mipsel-unknown-linux-musl",
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "mipsel-unknown-linux-uclibc",
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "mipsel-unknown-none",
        os: None,
        arch: Arch::mips,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "mipsisa32r6-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "mipsisa32r6el-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "mipsisa64r6-unknown-linux-gnuabi64",
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "mipsisa64r6el-unknown-linux-gnuabi64",
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "msp430-none-elf",
        os: None,
        arch: Arch::msp430,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 16,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "nvptx64-nvidia-cuda",
        os: Some(Os::cuda),
        arch: Arch::nvptx64,
        env: None,
        vendor: Some(Vendor::nvidia),
        family: None,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "powerpc-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "powerpc-unknown-linux-gnuspe",
        os: Some(Os::linux),
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "powerpc-unknown-linux-musl",
        os: Some(Os::linux),
        arch: Arch::powerpc,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "powerpc-unknown-netbsd",
        os: Some(Os::netbsd),
        arch: Arch::powerpc,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "powerpc-wrs-vxworks",
        os: Some(Os::vxworks),
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "powerpc-wrs-vxworks-spe",
        os: Some(Os::vxworks),
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "powerpc64-unknown-freebsd",
        os: Some(Os::freebsd),
        arch: Arch::powerpc64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "powerpc64-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::powerpc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "powerpc64-unknown-linux-musl",
        os: Some(Os::linux),
        arch: Arch::powerpc64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "powerpc64-wrs-vxworks",
        os: Some(Os::vxworks),
        arch: Arch::powerpc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "powerpc64le-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::powerpc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "powerpc64le-unknown-linux-musl",
        os: Some(Os::linux),
        arch: Arch::powerpc64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "riscv32gc-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::riscv32,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "riscv32i-unknown-none-elf",
        os: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "riscv32imac-unknown-none-elf",
        os: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "riscv32imc-unknown-none-elf",
        os: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "riscv64gc-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::riscv64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "riscv64gc-unknown-none-elf",
        os: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "riscv64imac-unknown-none-elf",
        os: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "s390x-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::s390x,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "sparc-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::sparc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "sparc64-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::sparc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "sparc64-unknown-netbsd",
        os: Some(Os::netbsd),
        arch: Arch::sparc64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "sparc64-unknown-openbsd",
        os: Some(Os::openbsd),
        arch: Arch::sparc64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "sparcv9-sun-solaris",
        os: Some(Os::solaris),
        arch: Arch::sparc64,
        env: None,
        vendor: Some(Vendor::sun),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: "thumbv4t-none-eabi",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv6m-none-eabi",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv7a-pc-windows-msvc",
        os: Some(Os::windows),
        arch: Arch::arm,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        family: Some(Family::windows),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv7a-uwp-windows-msvc",
        os: Some(Os::windows),
        arch: Arch::arm,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        family: Some(Family::windows),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv7em-none-eabi",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv7em-none-eabihf",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv7m-none-eabi",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv7neon-linux-androideabi",
        os: Some(Os::android),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv7neon-unknown-linux-gnueabihf",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv7neon-unknown-linux-musleabihf",
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv8m.base-none-eabi",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv8m.main-none-eabi",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "thumbv8m.main-none-eabihf",
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "wasm32-unknown-emscripten",
        os: Some(Os::emscripten),
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "wasm32-unknown-unknown",
        os: Some(Os::unknown),
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "wasm32-wasi",
        os: Some(Os::wasi),
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-apple-darwin",
        os: Some(Os::macos),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-apple-ios",
        os: Some(Os::ios),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-apple-ios-macabi",
        os: Some(Os::ios),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-apple-tvos",
        os: Some(Os::tvos),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-fortanix-unknown-sgx",
        os: Some(Os::unknown),
        arch: Arch::x86_64,
        env: Some(Env::sgx),
        vendor: Some(Vendor::fortanix),
        family: None,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-fuchsia",
        os: Some(Os::fuchsia),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-linux-android",
        os: Some(Os::android),
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-linux-kernel",
        os: None,
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-pc-solaris",
        os: Some(Os::solaris),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::sun),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-pc-windows-gnu",
        os: Some(Os::windows),
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::pc),
        family: Some(Family::windows),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-pc-windows-msvc",
        os: Some(Os::windows),
        arch: Arch::x86_64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        family: Some(Family::windows),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-rumprun-netbsd",
        os: Some(Os::netbsd),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::rumprun),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-sun-solaris",
        os: Some(Os::solaris),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::sun),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-dragonfly",
        os: Some(Os::dragonfly),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-freebsd",
        os: Some(Os::freebsd),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-haiku",
        os: Some(Os::haiku),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-hermit",
        os: Some(Os::hermit),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-hermit-kernel",
        os: Some(Os::hermit),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-illumos",
        os: Some(Os::illumos),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-l4re-uclibc",
        os: Some(Os::l4re),
        arch: Arch::x86_64,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-linux-gnu",
        os: Some(Os::linux),
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-linux-gnux32",
        os: Some(Os::linux),
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-linux-musl",
        os: Some(Os::linux),
        arch: Arch::x86_64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-netbsd",
        os: Some(Os::netbsd),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-openbsd",
        os: Some(Os::openbsd),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-redox",
        os: Some(Os::redox),
        arch: Arch::x86_64,
        env: Some(Env::relibc),
        vendor: Some(Vendor::unknown),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-unknown-uefi",
        os: Some(Os::uefi),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        family: None,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-uwp-windows-gnu",
        os: Some(Os::windows),
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::uwp),
        family: Some(Family::windows),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-uwp-windows-msvc",
        os: Some(Os::windows),
        arch: Arch::x86_64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        family: Some(Family::windows),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: "x86_64-wrs-vxworks",
        os: Some(Os::vxworks),
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        family: Some(Family::unix),
        pointer_width: 64,
        endian: Endian::little,
    },
];

impl<'a> super::Arch<'a> {
    pub const aarch64: Arch<'static> = Arch("aarch64");
    pub const arm: Arch<'static> = Arch("arm");
    pub const avr: Arch<'static> = Arch("avr");
    pub const hexagon: Arch<'static> = Arch("hexagon");
    pub const mips: Arch<'static> = Arch("mips");
    pub const mips64: Arch<'static> = Arch("mips64");
    pub const msp430: Arch<'static> = Arch("msp430");
    pub const nvptx64: Arch<'static> = Arch("nvptx64");
    pub const powerpc: Arch<'static> = Arch("powerpc");
    pub const powerpc64: Arch<'static> = Arch("powerpc64");
    pub const riscv32: Arch<'static> = Arch("riscv32");
    pub const riscv64: Arch<'static> = Arch("riscv64");
    pub const s390x: Arch<'static> = Arch("s390x");
    pub const sparc: Arch<'static> = Arch("sparc");
    pub const sparc64: Arch<'static> = Arch("sparc64");
    pub const wasm32: Arch<'static> = Arch("wasm32");
    pub const x86: Arch<'static> = Arch("x86");
    pub const x86_64: Arch<'static> = Arch("x86_64");
}

impl<'a> super::Vendor<'a> {
    pub const apple: Vendor<'static> = Vendor("apple");
    pub const fortanix: Vendor<'static> = Vendor("fortanix");
    pub const nvidia: Vendor<'static> = Vendor("nvidia");
    pub const pc: Vendor<'static> = Vendor("pc");
    pub const rumprun: Vendor<'static> = Vendor("rumprun");
    pub const sony: Vendor<'static> = Vendor("sony");
    pub const sun: Vendor<'static> = Vendor("sun");
    pub const unknown: Vendor<'static> = Vendor("unknown");
    pub const uwp: Vendor<'static> = Vendor("uwp");
    pub const wrs: Vendor<'static> = Vendor("wrs");
}

impl<'a> super::Os<'a> {
    pub const android: Os<'static> = Os("android");
    pub const cuda: Os<'static> = Os("cuda");
    pub const dragonfly: Os<'static> = Os("dragonfly");
    pub const emscripten: Os<'static> = Os("emscripten");
    pub const freebsd: Os<'static> = Os("freebsd");
    pub const fuchsia: Os<'static> = Os("fuchsia");
    pub const haiku: Os<'static> = Os("haiku");
    pub const hermit: Os<'static> = Os("hermit");
    pub const illumos: Os<'static> = Os("illumos");
    pub const ios: Os<'static> = Os("ios");
    pub const l4re: Os<'static> = Os("l4re");
    pub const linux: Os<'static> = Os("linux");
    pub const macos: Os<'static> = Os("macos");
    pub const netbsd: Os<'static> = Os("netbsd");
    pub const openbsd: Os<'static> = Os("openbsd");
    pub const psp: Os<'static> = Os("psp");
    pub const redox: Os<'static> = Os("redox");
    pub const solaris: Os<'static> = Os("solaris");
    pub const tvos: Os<'static> = Os("tvos");
    pub const uefi: Os<'static> = Os("uefi");
    pub const unknown: Os<'static> = Os("unknown");
    pub const vxworks: Os<'static> = Os("vxworks");
    pub const wasi: Os<'static> = Os("wasi");
    pub const windows: Os<'static> = Os("windows");
}

impl<'a> super::Env<'a> {
    pub const eabihf: Env<'static> = Env("eabihf");
    pub const gnu: Env<'static> = Env("gnu");
    pub const gnueabihf: Env<'static> = Env("gnueabihf");
    pub const msvc: Env<'static> = Env("msvc");
    pub const musl: Env<'static> = Env("musl");
    pub const relibc: Env<'static> = Env("relibc");
    pub const sgx: Env<'static> = Env("sgx");
    pub const uclibc: Env<'static> = Env("uclibc");
}
