/* Copyright (C) 2012-2021 Free Software Foundation, Inc.
   Contributed by ARM Ltd.

   This file is part of GCC.

   GCC is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3, or (at your option)
   any later version.

   GCC is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with GCC; see the file COPYING3.  If not see
   <http://www.gnu.org/licenses/>.  */

/* This is a list of ISA extentsions in AArch64.

   Before using #include to read this file, define a macro:

      AARCH64_OPT_EXTENSION(EXT_NAME, FLAG_CANONICAL, FLAGS_ON, FLAGS_OFF,
			    SYNTHETIC, FEATURE_STRING)

   - EXT_NAME is the name of the extension, represented as a string constant.
   - FLAGS_CANONICAL is the canonical internal name for this flag.
   - FLAGS_ON are the bitwise-or of the features that enabling the extension
     adds, or zero if enabling this extension has no effect on other features.
   - FLAGS_OFF are the bitwise-or of the features that disabling the extension
     removes, or zero if disabling this extension has no effect on other
     features.
   - SYNTHETIC is a boolean to indicate whether the option is a purely synthetic
     grouping of options and that the option itself has no feature bit (e.g.
     crypto).  This is used to determine when sum of the individual options in
     FLAGS_ON can be replaced by FLAG_CANONICAL in options minimization.  If the
     group is synthetic then they can be replaced when all options in FLAGS_ON
     are enabled, otherwise they can only be replaced when
     FLAGS_ON | FLAG_CANONICAL are enabled.
   - FEAT_STRING is a string containing the entries in the 'Features' field of
     /proc/cpuinfo on a GNU/Linux system that correspond to this architecture
     extension being available.  Sometimes multiple entries are needed to enable
     the extension (for example, the 'crypto' extension depends on four
     entries: aes, pmull, sha1, sha2 being present).  In that case this field
     should contain a space (" ") separated list of the strings in 'Features'
     that are required.  Their order is not important.  An empty string means
     do not detect this feature during auto detection.

     NOTE: Any changes to the AARCH64_OPT_EXTENSION macro need to be mirrored in
     config.gcc.  */

/* Enabling "fp" just enables "fp".
   Disabling "fp" also disables "simd", "crypto", "fp16", "aes", "sha2",
   "sha3", sm3/sm4, "sve", "sve2", "sve2-aes", "sve2-sha3", "sve2-sm4",
   "sve2-bitperm", "i8mm", "f32mm", "f64mm", and "bf16".  */
AARCH64_OPT_EXTENSION("fp", AARCH64_FL_FP, 0, AARCH64_FL_SIMD | \
		      AARCH64_FL_CRYPTO | AARCH64_FL_F16 | AARCH64_FL_AES | \
		      AARCH64_FL_SHA2 | AARCH64_FL_SHA3 | AARCH64_FL_SM4 | \
		      AARCH64_FL_SVE | AARCH64_FL_SVE2 | AARCH64_FL_SVE2_AES | \
		      AARCH64_FL_SVE2_SHA3 | AARCH64_FL_SVE2_SM4 | \
		      AARCH64_FL_SVE2_BITPERM | AARCH64_FL_I8MM | \
		      AARCH64_FL_F32MM | AARCH64_FL_F64MM | AARCH64_FL_BF16,
		       false, "fp")

/* Enabling "simd" also enables "fp".
   Disabling "simd" also disables "crypto", "dotprod", "aes", "sha2", "sha3",
   "sm3/sm4", "sve", "sve2", "sve2-aes", "sve2-sha3", "sve2-sm4",
   "sve2-bitperm", "i8mm", "f32mm" and "f64mm".  */
AARCH64_OPT_EXTENSION("simd", AARCH64_FL_SIMD, AARCH64_FL_FP, \
		      AARCH64_FL_CRYPTO | AARCH64_FL_DOTPROD | \
		      AARCH64_FL_AES | AARCH64_FL_SHA2 | AARCH64_FL_SHA3 | \
		      AARCH64_FL_SM4 | AARCH64_FL_SVE | AARCH64_FL_SVE2 | \
		      AARCH64_FL_SVE2_AES | AARCH64_FL_SVE2_SHA3 | \
		      AARCH64_FL_SVE2_SM4 | AARCH64_FL_SVE2_BITPERM | \
		      AARCH64_FL_I8MM | AARCH64_FL_F32MM | AARCH64_FL_F64MM, \
		      false, "asimd")

/* Enabling "crypto" also enables "fp", "simd", "aes" and "sha2".
   Disabling "crypto" disables "crypto", "aes", "sha2", "sha3" and "sm3/sm4",
   "sve2-aes", "sve2-sha3", "sve2-sm4".  */
AARCH64_OPT_EXTENSION("crypto", AARCH64_FL_CRYPTO, AARCH64_FL_FP | \
		      AARCH64_FL_SIMD | AARCH64_FL_AES | AARCH64_FL_SHA2, \
		      AARCH64_FL_AES | AARCH64_FL_SHA2 | AARCH64_FL_SHA3 | \
		      AARCH64_FL_SM4 | AARCH64_FL_SVE2_AES | \
		      AARCH64_FL_SVE2_SHA3 | AARCH64_FL_SVE2_SM4, true, \
		      "aes pmull sha1 sha2")

/* Enabling or disabling "crc" only changes "crc".  */
AARCH64_OPT_EXTENSION("crc", AARCH64_FL_CRC, 0, 0, false, "crc32")

/* Enabling or disabling "lse" only changes "lse".  */
AARCH64_OPT_EXTENSION("lse", AARCH64_FL_LSE, 0, 0, false, "atomics")

/* Enabling "fp16" also enables "fp".
   Disabling "fp16" disables "fp16", "fp16fml", "sve", "sve2",
   "sve2-aes", "sve2-sha3", "sve2-sm4", "sve2-bitperm", "f32mm" and
    "f64mm".  */
AARCH64_OPT_EXTENSION("fp16", AARCH64_FL_F16, AARCH64_FL_FP, \
		      AARCH64_FL_F16FML | AARCH64_FL_SVE | AARCH64_FL_F32MM | \
		      AARCH64_FL_F64MM | AARCH64_FL_SVE2 | \
		      AARCH64_FL_SVE2_AES | AARCH64_FL_SVE2_SHA3 | \
		      AARCH64_FL_SVE2_SM4 | AARCH64_FL_SVE2_BITPERM, false, \
		      "fphp asimdhp")

/* Enabling or disabling "rcpc" only changes "rcpc".  */
AARCH64_OPT_EXTENSION("rcpc", AARCH64_FL_RCPC, 0, 0, false, "lrcpc")

/* Enabling "rdma" also enables "fp", "simd".
   Disabling "rdma" just disables "rdma".  */
AARCH64_OPT_EXTENSION("rdma", AARCH64_FL_RDMA, \
		      AARCH64_FL_FP | AARCH64_FL_SIMD, 0, false, "asimdrdm")

/* Enabling "dotprod" also enables "simd".
   Disabling "dotprod" only disables "dotprod".  */
AARCH64_OPT_EXTENSION("dotprod", AARCH64_FL_DOTPROD, AARCH64_FL_SIMD, 0, \
		      false, "asimddp")

/* Enabling "aes" also enables "simd".
   Disabling "aes" disables "aes" and "sve2-aes'.  */
AARCH64_OPT_EXTENSION("aes", AARCH64_FL_AES, AARCH64_FL_SIMD, \
		      AARCH64_FL_SVE2_AES, false, "aes")

/* Enabling "sha2" also enables "simd".
   Disabling "sha2" just disables "sha2".  */
AARCH64_OPT_EXTENSION("sha2", AARCH64_FL_SHA2, AARCH64_FL_SIMD, 0, false, \
		      "sha1 sha2")

/* Enabling "sha3" enables "simd" and "sha2".
   Disabling "sha3" disables "sha3" and "sve2-sha3".  */
AARCH64_OPT_EXTENSION("sha3", AARCH64_FL_SHA3, AARCH64_FL_SIMD | \
		      AARCH64_FL_SHA2, AARCH64_FL_SVE2_SHA3, false, \
		      "sha3 sha512")

/* Enabling "sm4" also enables "simd".
   Disabling "sm4" disables "sm4" and "sve2-sm4".  */
AARCH64_OPT_EXTENSION("sm4", AARCH64_FL_SM4, AARCH64_FL_SIMD, \
		      AARCH64_FL_SVE2_SM4, false, "sm3 sm4")

/* Enabling "fp16fml" also enables "fp" and "fp16".
   Disabling "fp16fml" just disables "fp16fml".  */
AARCH64_OPT_EXTENSION("fp16fml", AARCH64_FL_F16FML, \
		      AARCH64_FL_FP | AARCH64_FL_F16, 0, false, "asimdfhm")

/* Enabling "sve" also enables "fp16", "fp" and "simd".
   Disabling "sve" disables "sve", "f32mm", "f64mm", "sve2", "sve2-aes",
   "sve2-sha3", "sve2-sm4" and "sve2-bitperm".  */
AARCH64_OPT_EXTENSION("sve", AARCH64_FL_SVE, AARCH64_FL_FP | AARCH64_FL_SIMD | \
		      AARCH64_FL_F16, AARCH64_FL_F32MM | AARCH64_FL_F64MM | \
		      AARCH64_FL_SVE2 | AARCH64_FL_SVE2_AES | \
		      AARCH64_FL_SVE2_SHA3 | AARCH64_FL_SVE2_SM4 | \
		      AARCH64_FL_SVE2_BITPERM, false, "sve")

/* Enabling/Disabling "profile" does not enable/disable any other feature.  */
AARCH64_OPT_EXTENSION("profile", AARCH64_FL_PROFILE, 0, 0, false, "")

/* Enabling/Disabling "rng" only changes "rng".  */
AARCH64_OPT_EXTENSION("rng", AARCH64_FL_RNG, 0, 0, false, "rng")

/* Enabling/Disabling "memtag" only changes "memtag".  */
AARCH64_OPT_EXTENSION("memtag", AARCH64_FL_MEMTAG, 0, 0, false, "")

/* Enabling/Disabling "sb" only changes "sb".  */
AARCH64_OPT_EXTENSION("sb", AARCH64_FL_SB, 0, 0, false, "sb")

/* Enabling/Disabling "ssbs" only changes "ssbs".  */
AARCH64_OPT_EXTENSION("ssbs", AARCH64_FL_SSBS, 0, 0, false, "ssbs")

/* Enabling/Disabling "predres" only changes "predres".  */
AARCH64_OPT_EXTENSION("predres", AARCH64_FL_PREDRES, 0, 0, false, "")

/* Enabling "sve2" also enables "sve", "fp16", "fp", and "simd".
   Disabling "sve2" disables "sve2", "sve2-aes", "sve2-sha3", "sve2-sm4", and
   "sve2-bitperm".  */
AARCH64_OPT_EXTENSION("sve2", AARCH64_FL_SVE2, AARCH64_FL_SVE | \
		      AARCH64_FL_FP | AARCH64_FL_SIMD | AARCH64_FL_F16, \
		      AARCH64_FL_SVE2_AES | AARCH64_FL_SVE2_SHA3 | \
		      AARCH64_FL_SVE2_SM4 | AARCH64_FL_SVE2_BITPERM, false, "sve2")

/* Enabling "sve2-sm4" also enables "sm4", "simd", "fp16", "fp", "sve", and
   "sve2". Disabling "sve2-sm4" just disables "sve2-sm4".  */
AARCH64_OPT_EXTENSION("sve2-sm4", AARCH64_FL_SVE2_SM4, AARCH64_FL_SM4 | \
		      AARCH64_FL_SIMD | AARCH64_FL_F16 | AARCH64_FL_FP | \
		      AARCH64_FL_SVE | AARCH64_FL_SVE2, 0, false, "svesm4")

/* Enabling "sve2-aes" also enables "aes", "simd", "fp16", "fp", "sve", and
   "sve2". Disabling "sve2-aes" just disables "sve2-aes".  */
AARCH64_OPT_EXTENSION("sve2-aes", AARCH64_FL_SVE2_AES, AARCH64_FL_AES | \
		      AARCH64_FL_SIMD | AARCH64_FL_F16 | AARCH64_FL_FP | \
		      AARCH64_FL_SVE | AARCH64_FL_SVE2, 0, false, "sveaes")

/* Enabling "sve2-sha3" also enables "sha3", "simd", "fp16", "fp", "sve", and
   "sve2". Disabling "sve2-sha3" just disables "sve2-sha3".  */
AARCH64_OPT_EXTENSION("sve2-sha3", AARCH64_FL_SVE2_SHA3, AARCH64_FL_SHA3 | \
		      AARCH64_FL_SIMD | AARCH64_FL_F16 | AARCH64_FL_FP | \
		      AARCH64_FL_SVE | AARCH64_FL_SVE2, 0, false, "svesha3")

/* Enabling "sve2-bitperm" also enables "simd", "fp16", "fp", "sve", and
   "sve2".  Disabling "sve2-bitperm" just disables "sve2-bitperm".  */
AARCH64_OPT_EXTENSION("sve2-bitperm", AARCH64_FL_SVE2_BITPERM, AARCH64_FL_SIMD | \
		      AARCH64_FL_F16 | AARCH64_FL_FP | AARCH64_FL_SVE | \
		      AARCH64_FL_SVE2, 0, false, "svebitperm")

/* Enabling or disabling "tme" only changes "tme".  */
AARCH64_OPT_EXTENSION("tme", AARCH64_FL_TME, 0, 0, false, "")

/* Enabling "i8mm" also enables "simd" and "fp".
   Disabling "i8mm" only disables "i8mm".  */
AARCH64_OPT_EXTENSION("i8mm", AARCH64_FL_I8MM, \
		      AARCH64_FL_SIMD | AARCH64_FL_FP, 0, false, "i8mm")

/* Enabling "f32mm" also enables "sve", "fp16", "fp", and "simd".
   Disabling "f32mm" only disables "f32mm".  */
AARCH64_OPT_EXTENSION("f32mm", AARCH64_FL_F32MM, \
		      AARCH64_FL_SVE | AARCH64_FL_F16 | AARCH64_FL_FP | \
		      AARCH64_FL_SIMD, 0, false, "f32mm")

/* Enabling "f64mm" also enables "sve", "fp16", "fp", and "simd".
   Disabling "f64mm" only disables "f64mm".  */
AARCH64_OPT_EXTENSION("f64mm", AARCH64_FL_F64MM, \
		      AARCH64_FL_SVE | AARCH64_FL_F16 | AARCH64_FL_FP | \
		      AARCH64_FL_SIMD, 0, false, "f64mm")

/* Enabling "bf16" also enables "simd" and "fp".
   Disabling "bf16" only disables "bf16".  */
AARCH64_OPT_EXTENSION("bf16", AARCH64_FL_BF16, \
		      AARCH64_FL_SIMD | AARCH64_FL_FP, 0, false, "bf16")

/* Enabling/Disabling "flagm" only changes "flagm".  */
AARCH64_OPT_EXTENSION("flagm", AARCH64_FL_FLAGM, 0, 0, false, "flagm")

/* Enabling/Disabling "pauth" only changes "pauth".  */
AARCH64_OPT_EXTENSION("pauth", AARCH64_FL_PAUTH, 0, 0, false, "paca pacg")

/* Enabling/Disabling "ls64" only changes "ls64".  */
AARCH64_OPT_EXTENSION("ls64", AARCH64_FL_LS64, 0, 0, false, "")

#undef AARCH64_OPT_EXTENSION
