use crate::aarch64::features::*;
use crate::declare_is_compatible;
declare_is_compatible!("apple_a7", "aes", "neon", "sha2");
declare_is_compatible!("apple_a10", "aes", "crc", "neon", "rdm", "sha2");
declare_is_compatible!(
"apple_a11",
"aes",
"crc",
"dpb",
"fp16",
"lse",
"neon",
"rdm",
"sha2"
);
declare_is_compatible!(
"apple_a12",
"aes",
"crc",
"dpb",
"fcma",
"fp16",
"jsconv",
"lse",
"neon",
"paca",
"pacg",
"rcpc",
"rdm",
"sha2"
);
declare_is_compatible!(
"apple_a13",
"aes",
"crc",
"dit",
"dotprod",
"dpb",
"fcma",
"fhm",
"flagm",
"fp16",
"jsconv",
"lse",
"neon",
"paca",
"pacg",
"rcpc",
"rcpc2",
"rdm",
"sha2",
"sha3"
);
declare_is_compatible!(
"apple_a14",
"aes",
"crc",
"dit",
"dotprod",
"dpb",
"dpb2",
"fcma",
"fhm",
"flagm",
"fp16",
"frintts",
"jsconv",
"lse",
"neon",
"paca",
"pacg",
"rcpc",
"rcpc2",
"rdm",
"sb",
"sha2",
"sha3",
"ssbs"
);
declare_is_compatible!(
"apple_a15",
"aes",
"bf16",
"bti",
"crc",
"dit",
"dotprod",
"dpb",
"dpb2",
"fcma",
"fhm",
"flagm",
"fp16",
"frintts",
"i8mm",
"jsconv",
"lse",
"neon",
"paca",
"pacg",
"rcpc",
"rcpc2",
"rdm",
"sb",
"sha2",
"sha3",
"ssbs"
);
declare_is_compatible!(
"apple_a16",
"aes",
"bf16",
"bti",
"crc",
"dit",
"dotprod",
"dpb",
"dpb2",
"fcma",
"fhm",
"flagm",
"fp16",
"frintts",
"i8mm",
"jsconv",
"lse",
"neon",
"paca",
"pacg",
"rcpc",
"rcpc2",
"rdm",
"sb",
"sha2",
"sha3",
"ssbs"
);
declare_is_compatible!(
"apple_a17",
"aes",
"bf16",
"bti",
"crc",
"dit",
"dotprod",
"dpb",
"dpb2",
"fcma",
"fhm",
"flagm",
"fp16",
"frintts",
"i8mm",
"jsconv",
"lse",
"neon",
"paca",
"pacg",
"rcpc",
"rcpc2",
"rdm",
"sb",
"sha2",
"sha3",
"ssbs"
);
declare_is_compatible!(
"apple_m1", "aes", "crc", "dit", "dotprod", "dpb", "dpb2", "fcma", "fhm", "flagm", "fp16",
"frintts", "jsconv", "lse", "neon", "paca", "pacg", "rcpc", "rcpc2", "rdm", "sb", "sha2",
"sha3", "ssbs"
);
declare_is_compatible!(
"apple_m2", "aes", "bf16", "bti", "crc", "dit", "dotprod", "dpb", "dpb2", "fcma", "fhm",
"flagm", "fp16", "frintts", "i8mm", "jsconv", "lse", "neon", "paca", "pacg", "rcpc", "rcpc2",
"rdm", "sb", "sha2", "sha3", "ssbs"
);
declare_is_compatible!(
"apple_m3", "aes", "bf16", "bti", "crc", "dit", "dotprod", "dpb", "dpb2", "fcma", "fhm",
"flagm", "fp16", "frintts", "i8mm", "jsconv", "lse", "neon", "paca", "pacg", "rcpc", "rcpc2",
"rdm", "sb", "sha2", "sha3", "ssbs"
);
declare_is_compatible!(
"apple_m4", "aes", "bf16", "bti", "crc", "dit", "dotprod", "dpb", "dpb2", "fcma", "fhm",
"flagm", "fp16", "frintts", "i8mm", "jsconv", "lse", "neon", "paca", "pacg", "rcpc", "rcpc2",
"rdm", "sb", "sha2", "sha3", "ssbs"
);
declare_is_compatible!(
"apple_m5", "aes", "bf16", "bti", "crc", "dit", "dotprod", "dpb", "dpb2", "fcma", "fhm",
"flagm", "fp16", "frintts", "i8mm", "jsconv", "lse", "mte", "neon", "paca", "pacg", "rcpc",
"rcpc2", "rdm", "sb", "sha2", "sha3", "ssbs"
);