/* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
   Copyright (C) 2020-2021 Free Software Foundation, Inc.

   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/>.  */

#define REQUIRED_EXTENSIONS AARCH64_FL_SVE2
DEF_SVE_FUNCTION (svaba, ternary_opt_n, all_integer, none)
DEF_SVE_FUNCTION (svabalb, ternary_long_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svabalt, ternary_long_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svadalp, binary_wide, hsd_integer, mxz)
DEF_SVE_FUNCTION (svadclb, ternary_opt_n, sd_unsigned, none)
DEF_SVE_FUNCTION (svadclt, ternary_opt_n, sd_unsigned, none)
DEF_SVE_FUNCTION (svaddhnb, binary_narrowb_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svaddhnt, binary_narrowt_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svabdlb, binary_long_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svabdlt, binary_long_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svaddlb, binary_long_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svaddlbt, binary_long_opt_n, hsd_signed, none)
DEF_SVE_FUNCTION (svaddlt, binary_long_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svaddp, binary, all_arith, mx)
DEF_SVE_FUNCTION (svaddwb, binary_wide_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svaddwt, binary_wide_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svbcax, ternary_opt_n, all_integer, none)
DEF_SVE_FUNCTION (svbsl, ternary_opt_n, all_integer, none)
DEF_SVE_FUNCTION (svbsl1n, ternary_opt_n, all_integer, none)
DEF_SVE_FUNCTION (svbsl2n, ternary_opt_n, all_integer, none)
DEF_SVE_FUNCTION (svcadd, binary_rotate, all_integer, none)
DEF_SVE_FUNCTION (svcdot, ternary_qq_rotate, sd_signed, none)
DEF_SVE_FUNCTION (svcdot_lane, ternary_qq_lane_rotate, sd_signed, none)
DEF_SVE_FUNCTION (svcmla, ternary_rotate, all_integer, none)
DEF_SVE_FUNCTION (svcmla_lane, ternary_lane_rotate, hs_integer, none)
DEF_SVE_FUNCTION (svcvtlt, unary_convert, cvt_long, mx)
DEF_SVE_FUNCTION (svcvtnt, unary_convert_narrowt, cvt_narrow, mx)
DEF_SVE_FUNCTION (svcvtx, unary_convert, cvt_narrow_s, mxz)
DEF_SVE_FUNCTION (svcvtxnt, unary_convert_narrowt, cvt_narrow_s, mx)
DEF_SVE_FUNCTION (sveor3, ternary_opt_n, all_integer, none)
DEF_SVE_FUNCTION (sveorbt, ternary_opt_n, all_integer, none)
DEF_SVE_FUNCTION (sveortb, ternary_opt_n, all_integer, none)
DEF_SVE_FUNCTION (svhadd, binary_opt_n, all_integer, mxz)
DEF_SVE_FUNCTION (svhistcnt, binary_to_uint, sd_integer, z)
DEF_SVE_FUNCTION (svhistseg, binary_to_uint, b_integer, none)
DEF_SVE_FUNCTION (svhsub, binary_opt_n, all_integer, mxz)
DEF_SVE_FUNCTION (svhsubr, binary_opt_n, all_integer, mxz)
DEF_SVE_FUNCTION (svldnt1_gather, load_gather_sv_restricted, sd_data, implicit)
DEF_SVE_FUNCTION (svldnt1_gather, load_gather_vs, sd_data, implicit)
DEF_SVE_FUNCTION (svldnt1sb_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
DEF_SVE_FUNCTION (svldnt1sh_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
DEF_SVE_FUNCTION (svldnt1sh_gather, load_ext_gather_index_restricted, sd_integer, implicit)
DEF_SVE_FUNCTION (svldnt1sw_gather, load_ext_gather_offset_restricted, d_integer, implicit)
DEF_SVE_FUNCTION (svldnt1sw_gather, load_ext_gather_index_restricted, d_integer, implicit)
DEF_SVE_FUNCTION (svldnt1ub_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
DEF_SVE_FUNCTION (svldnt1uh_gather, load_ext_gather_offset_restricted, sd_integer, implicit)
DEF_SVE_FUNCTION (svldnt1uh_gather, load_ext_gather_index_restricted, sd_integer, implicit)
DEF_SVE_FUNCTION (svldnt1uw_gather, load_ext_gather_offset_restricted, d_integer, implicit)
DEF_SVE_FUNCTION (svldnt1uw_gather, load_ext_gather_index_restricted, d_integer, implicit)
DEF_SVE_FUNCTION (svlogb, unary_to_int, all_float, mxz)
DEF_SVE_FUNCTION (svmatch, compare, bh_integer, implicit)
DEF_SVE_FUNCTION (svmaxp, binary, all_arith, mx)
DEF_SVE_FUNCTION (svmaxnmp, binary, all_float, mx)
DEF_SVE_FUNCTION (svmla_lane, ternary_lane, hsd_integer, none)
DEF_SVE_FUNCTION (svmlalb, ternary_long_opt_n, s_float_hsd_integer, none)
DEF_SVE_FUNCTION (svmlalb_lane, ternary_long_lane, s_float_sd_integer, none)
DEF_SVE_FUNCTION (svmlalt, ternary_long_opt_n, s_float_hsd_integer, none)
DEF_SVE_FUNCTION (svmlalt_lane, ternary_long_lane, s_float_sd_integer, none)
DEF_SVE_FUNCTION (svmls_lane, ternary_lane, hsd_integer, none)
DEF_SVE_FUNCTION (svmlslb, ternary_long_opt_n, s_float_hsd_integer, none)
DEF_SVE_FUNCTION (svmlslb_lane, ternary_long_lane, s_float_sd_integer, none)
DEF_SVE_FUNCTION (svmlslt, ternary_long_opt_n, s_float_hsd_integer, none)
DEF_SVE_FUNCTION (svmlslt_lane, ternary_long_lane, s_float_sd_integer, none)
DEF_SVE_FUNCTION (svminp, binary, all_arith, mx)
DEF_SVE_FUNCTION (svminnmp, binary, all_float, mx)
DEF_SVE_FUNCTION (svmovlb, unary_long, hsd_integer, none)
DEF_SVE_FUNCTION (svmovlt, unary_long, hsd_integer, none)
DEF_SVE_FUNCTION (svmul_lane, binary_lane, hsd_integer, none)
DEF_SVE_FUNCTION (svmullb, binary_long_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svmullb_lane, binary_long_lane, sd_integer, none)
DEF_SVE_FUNCTION (svmullt, binary_long_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svmullt_lane, binary_long_lane, sd_integer, none)
DEF_SVE_FUNCTION (svnbsl, ternary_opt_n, all_integer, none)
DEF_SVE_FUNCTION (svnmatch, compare, bh_integer, implicit)
DEF_SVE_FUNCTION (svpmul, binary_opt_n, b_unsigned, none)
DEF_SVE_FUNCTION (svpmullb, binary_long_opt_n, hd_unsigned, none)
DEF_SVE_FUNCTION (svpmullb_pair, binary_opt_n, bs_unsigned, none)
DEF_SVE_FUNCTION (svpmullt, binary_long_opt_n, hd_unsigned, none)
DEF_SVE_FUNCTION (svpmullt_pair, binary_opt_n, bs_unsigned, none)
DEF_SVE_FUNCTION (svqabs, unary, all_signed, mxz)
DEF_SVE_FUNCTION (svqadd, binary_opt_n, all_integer, mxz)
DEF_SVE_FUNCTION (svqcadd, binary_rotate, all_signed, none)
DEF_SVE_FUNCTION (svqdmlalb, ternary_long_opt_n, hsd_signed, none)
DEF_SVE_FUNCTION (svqdmlalb_lane, ternary_long_lane, sd_signed, none)
DEF_SVE_FUNCTION (svqdmlalbt, ternary_long_opt_n, hsd_signed, none)
DEF_SVE_FUNCTION (svqdmlalt, ternary_long_opt_n, hsd_signed, none)
DEF_SVE_FUNCTION (svqdmlalt_lane, ternary_long_lane, sd_signed, none)
DEF_SVE_FUNCTION (svqdmlslb, ternary_long_opt_n, hsd_signed, none)
DEF_SVE_FUNCTION (svqdmlslb_lane, ternary_long_lane, sd_signed, none)
DEF_SVE_FUNCTION (svqdmlslbt, ternary_long_opt_n, hsd_signed, none)
DEF_SVE_FUNCTION (svqdmlslt, ternary_long_opt_n, hsd_signed, none)
DEF_SVE_FUNCTION (svqdmlslt_lane, ternary_long_lane, sd_signed, none)
DEF_SVE_FUNCTION (svqdmulh, binary_opt_n, all_signed, none)
DEF_SVE_FUNCTION (svqdmulh_lane, binary_lane, hsd_signed, none)
DEF_SVE_FUNCTION (svqdmullb, binary_long_opt_n, hsd_signed, none)
DEF_SVE_FUNCTION (svqdmullb_lane, binary_long_lane, sd_signed, none)
DEF_SVE_FUNCTION (svqdmullt, binary_long_opt_n, hsd_signed, none)
DEF_SVE_FUNCTION (svqdmullt_lane, binary_long_lane, sd_signed, none)
DEF_SVE_FUNCTION (svqneg, unary, all_signed, mxz)
DEF_SVE_FUNCTION (svqrdmulh, binary_opt_n, all_signed, none)
DEF_SVE_FUNCTION (svqrdmulh_lane, binary_lane, hsd_signed, none)
DEF_SVE_FUNCTION (svqrdmlah, ternary_opt_n, all_signed, none)
DEF_SVE_FUNCTION (svqrdmlah_lane, ternary_lane, hsd_signed, none)
DEF_SVE_FUNCTION (svqrdmlsh, ternary_opt_n, all_signed, none)
DEF_SVE_FUNCTION (svqrdmlsh_lane, ternary_lane, hsd_signed, none)
DEF_SVE_FUNCTION (svqrdcmlah, ternary_rotate, all_signed, none)
DEF_SVE_FUNCTION (svqrdcmlah_lane, ternary_lane_rotate, hs_signed, none)
DEF_SVE_FUNCTION (svqrshrnb, shift_right_imm_narrowb, hsd_integer, none)
DEF_SVE_FUNCTION (svqrshrnt, shift_right_imm_narrowt, hsd_integer, none)
DEF_SVE_FUNCTION (svqrshrunb, shift_right_imm_narrowb_to_uint, hsd_signed, none)
DEF_SVE_FUNCTION (svqrshrunt, shift_right_imm_narrowt_to_uint, hsd_signed, none)
DEF_SVE_FUNCTION (svqshl, binary_int_opt_n, all_integer, mxz)
DEF_SVE_FUNCTION (svqshlu, shift_left_imm_to_uint, all_signed, mxz)
DEF_SVE_FUNCTION (svqshrnb, shift_right_imm_narrowb, hsd_integer, none)
DEF_SVE_FUNCTION (svqshrnt, shift_right_imm_narrowt, hsd_integer, none)
DEF_SVE_FUNCTION (svqshrunb, shift_right_imm_narrowb_to_uint, hsd_signed, none)
DEF_SVE_FUNCTION (svqshrunt, shift_right_imm_narrowt_to_uint, hsd_signed, none)
DEF_SVE_FUNCTION (svqrshl, binary_int_opt_n, all_integer, mxz)
DEF_SVE_FUNCTION (svqsub, binary_opt_n, all_integer, mxz)
DEF_SVE_FUNCTION (svqsubr, binary_opt_n, all_integer, mxz)
DEF_SVE_FUNCTION (svqxtnb, unary_narrowb, hsd_integer, none)
DEF_SVE_FUNCTION (svqxtnt, unary_narrowt, hsd_integer, none)
DEF_SVE_FUNCTION (svqxtunb, unary_narrowb_to_uint, hsd_signed, none)
DEF_SVE_FUNCTION (svqxtunt, unary_narrowt_to_uint, hsd_signed, none)
DEF_SVE_FUNCTION (svraddhnb, binary_narrowb_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svraddhnt, binary_narrowt_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svrecpe, unary, s_unsigned, mxz)
DEF_SVE_FUNCTION (svrhadd, binary_opt_n, all_integer, mxz)
DEF_SVE_FUNCTION (svrsqrte, unary, s_unsigned, mxz)
DEF_SVE_FUNCTION (svrshl, binary_int_opt_n, all_integer, mxz)
DEF_SVE_FUNCTION (svrshr, shift_right_imm, all_integer, mxz)
DEF_SVE_FUNCTION (svrshrnb, shift_right_imm_narrowb, hsd_integer, none)
DEF_SVE_FUNCTION (svrshrnt, shift_right_imm_narrowt, hsd_integer, none)
DEF_SVE_FUNCTION (svrsra, ternary_shift_right_imm, all_integer, none)
DEF_SVE_FUNCTION (svrsubhnb, binary_narrowb_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svrsubhnt, binary_narrowt_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svsbclb, ternary_opt_n, sd_unsigned, none)
DEF_SVE_FUNCTION (svsbclt, ternary_opt_n, sd_unsigned, none)
DEF_SVE_FUNCTION (svshllb, shift_left_imm_long, hsd_integer, none)
DEF_SVE_FUNCTION (svshllt, shift_left_imm_long, hsd_integer, none)
DEF_SVE_FUNCTION (svshrnb, shift_right_imm_narrowb, hsd_integer, none)
DEF_SVE_FUNCTION (svshrnt, shift_right_imm_narrowt, hsd_integer, none)
DEF_SVE_FUNCTION (svsli, ternary_shift_left_imm, all_integer, none)
DEF_SVE_FUNCTION (svsqadd, binary_int_opt_n, all_unsigned, mxz)
DEF_SVE_FUNCTION (svsra, ternary_shift_right_imm, all_integer, none)
DEF_SVE_FUNCTION (svsri, ternary_shift_right_imm, all_integer, none)
DEF_SVE_FUNCTION (svstnt1_scatter, store_scatter_index_restricted, sd_data, implicit)
DEF_SVE_FUNCTION (svstnt1_scatter, store_scatter_offset_restricted, sd_data, implicit)
DEF_SVE_FUNCTION (svstnt1b_scatter, store_scatter_offset_restricted, sd_integer, implicit)
DEF_SVE_FUNCTION (svstnt1h_scatter, store_scatter_index_restricted, sd_integer, implicit)
DEF_SVE_FUNCTION (svstnt1h_scatter, store_scatter_offset_restricted, sd_integer, implicit)
DEF_SVE_FUNCTION (svstnt1w_scatter, store_scatter_index_restricted, d_integer, implicit)
DEF_SVE_FUNCTION (svstnt1w_scatter, store_scatter_offset_restricted, d_integer, implicit)
DEF_SVE_FUNCTION (svsubhnb, binary_narrowb_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svsubhnt, binary_narrowt_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svsublb, binary_long_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svsublbt, binary_long_opt_n, hsd_signed, none)
DEF_SVE_FUNCTION (svsublt, binary_long_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svsubltb, binary_long_opt_n, hsd_signed, none)
DEF_SVE_FUNCTION (svsubwb, binary_wide_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svsubwt, binary_wide_opt_n, hsd_integer, none)
DEF_SVE_FUNCTION (svtbl2, tbl_tuple, all_data, none)
DEF_SVE_FUNCTION (svtbx, ternary_uint, all_data, none)
DEF_SVE_FUNCTION (svuqadd, binary_uint_opt_n, all_signed, mxz)
DEF_SVE_FUNCTION (svwhilege, compare_scalar, while, none)
DEF_SVE_FUNCTION (svwhilegt, compare_scalar, while, none)
DEF_SVE_FUNCTION (svwhilerw, compare_ptr, all_data, none)
DEF_SVE_FUNCTION (svwhilewr, compare_ptr, all_data, none)
DEF_SVE_FUNCTION (svxar, ternary_shift_right_imm, all_integer, none)
#undef REQUIRED_EXTENSIONS

#define REQUIRED_EXTENSIONS (AARCH64_FL_SVE2 | AARCH64_FL_SVE2_AES)
DEF_SVE_FUNCTION (svaesd, binary, b_unsigned, none)
DEF_SVE_FUNCTION (svaese, binary, b_unsigned, none)
DEF_SVE_FUNCTION (svaesmc, unary, b_unsigned, none)
DEF_SVE_FUNCTION (svaesimc, unary, b_unsigned, none)
DEF_SVE_FUNCTION (svpmullb_pair, binary_opt_n, d_unsigned, none)
DEF_SVE_FUNCTION (svpmullt_pair, binary_opt_n, d_unsigned, none)
#undef REQUIRED_EXTENSIONS

#define REQUIRED_EXTENSIONS (AARCH64_FL_SVE2 | AARCH64_FL_SVE2_BITPERM)
DEF_SVE_FUNCTION (svbdep, binary_opt_n, all_unsigned, none)
DEF_SVE_FUNCTION (svbext, binary_opt_n, all_unsigned, none)
DEF_SVE_FUNCTION (svbgrp, binary_opt_n, all_unsigned, none)
#undef REQUIRED_EXTENSIONS

#define REQUIRED_EXTENSIONS (AARCH64_FL_SVE2 | AARCH64_FL_SVE2_SHA3)
DEF_SVE_FUNCTION (svrax1, binary, d_integer, none)
#undef REQUIRED_EXTENSIONS

#define REQUIRED_EXTENSIONS (AARCH64_FL_SVE2 | AARCH64_FL_SVE2_SM4)
DEF_SVE_FUNCTION (svsm4e, binary, s_unsigned, none)
DEF_SVE_FUNCTION (svsm4ekey, binary, s_unsigned, none)
#undef REQUIRED_EXTENSIONS
