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

#ifndef GCC_AARCH64_SVE_BUILTINS_SVE2_H
#define GCC_AARCH64_SVE_BUILTINS_SVE2_H

namespace aarch64_sve
{
  namespace functions
  {
    extern const function_base *const svaba;
    extern const function_base *const svabalb;
    extern const function_base *const svabalt;
    extern const function_base *const svabdlb;
    extern const function_base *const svabdlt;
    extern const function_base *const svadalp;
    extern const function_base *const svadclb;
    extern const function_base *const svadclt;
    extern const function_base *const svaddhnb;
    extern const function_base *const svaddhnt;
    extern const function_base *const svaddlb;
    extern const function_base *const svaddlbt;
    extern const function_base *const svaddlt;
    extern const function_base *const svaddp;
    extern const function_base *const svaddwb;
    extern const function_base *const svaddwt;
    extern const function_base *const svaesd;
    extern const function_base *const svaese;
    extern const function_base *const svaesimc;
    extern const function_base *const svaesmc;
    extern const function_base *const svbcax;
    extern const function_base *const svbdep;
    extern const function_base *const svbext;
    extern const function_base *const svbgrp;
    extern const function_base *const svbsl;
    extern const function_base *const svbsl1n;
    extern const function_base *const svbsl2n;
    extern const function_base *const svcdot;
    extern const function_base *const svcdot_lane;
    extern const function_base *const svcvtlt;
    extern const function_base *const svcvtx;
    extern const function_base *const svcvtxnt;
    extern const function_base *const sveor3;
    extern const function_base *const sveorbt;
    extern const function_base *const sveortb;
    extern const function_base *const svhadd;
    extern const function_base *const svhistcnt;
    extern const function_base *const svhistseg;
    extern const function_base *const svhsub;
    extern const function_base *const svhsubr;
    extern const function_base *const svldnt1_gather;
    extern const function_base *const svldnt1sb_gather;
    extern const function_base *const svldnt1sh_gather;
    extern const function_base *const svldnt1sw_gather;
    extern const function_base *const svldnt1ub_gather;
    extern const function_base *const svldnt1uh_gather;
    extern const function_base *const svldnt1uw_gather;
    extern const function_base *const svlogb;
    extern const function_base *const svmatch;
    extern const function_base *const svmaxp;
    extern const function_base *const svmaxnmp;
    extern const function_base *const svmlalb;
    extern const function_base *const svmlalb_lane;
    extern const function_base *const svmlalt;
    extern const function_base *const svmlalt_lane;
    extern const function_base *const svmlslb;
    extern const function_base *const svmlslb_lane;
    extern const function_base *const svmlslt;
    extern const function_base *const svmlslt_lane;
    extern const function_base *const svminp;
    extern const function_base *const svminnmp;
    extern const function_base *const svmovlb;
    extern const function_base *const svmovlt;
    extern const function_base *const svmullb;
    extern const function_base *const svmullb_lane;
    extern const function_base *const svmullt;
    extern const function_base *const svmullt_lane;
    extern const function_base *const svnbsl;
    extern const function_base *const svnmatch;
    extern const function_base *const svpmul;
    extern const function_base *const svpmullb;
    extern const function_base *const svpmullb_pair;
    extern const function_base *const svpmullt;
    extern const function_base *const svpmullt_pair;
    extern const function_base *const svqabs;
    extern const function_base *const svqcadd;
    extern const function_base *const svqdmlalb;
    extern const function_base *const svqdmlalb_lane;
    extern const function_base *const svqdmlalbt;
    extern const function_base *const svqdmlalt;
    extern const function_base *const svqdmlalt_lane;
    extern const function_base *const svqdmlslb;
    extern const function_base *const svqdmlslb_lane;
    extern const function_base *const svqdmlslbt;
    extern const function_base *const svqdmlslt;
    extern const function_base *const svqdmlslt_lane;
    extern const function_base *const svqdmulh;
    extern const function_base *const svqdmulh_lane;
    extern const function_base *const svqdmullb;
    extern const function_base *const svqdmullb_lane;
    extern const function_base *const svqdmullt;
    extern const function_base *const svqdmullt_lane;
    extern const function_base *const svqneg;
    extern const function_base *const svqrdcmlah;
    extern const function_base *const svqrdcmlah_lane;
    extern const function_base *const svqrdmulh;
    extern const function_base *const svqrdmulh_lane;
    extern const function_base *const svqrdmlah;
    extern const function_base *const svqrdmlah_lane;
    extern const function_base *const svqrdmlsh;
    extern const function_base *const svqrdmlsh_lane;
    extern const function_base *const svqrshl;
    extern const function_base *const svqrshrnb;
    extern const function_base *const svqrshrnt;
    extern const function_base *const svqrshrunb;
    extern const function_base *const svqrshrunt;
    extern const function_base *const svqshl;
    extern const function_base *const svqshlu;
    extern const function_base *const svqshrnb;
    extern const function_base *const svqshrnt;
    extern const function_base *const svqshrunb;
    extern const function_base *const svqshrunt;
    extern const function_base *const svqsubr;
    extern const function_base *const svqxtnb;
    extern const function_base *const svqxtnt;
    extern const function_base *const svqxtunb;
    extern const function_base *const svqxtunt;
    extern const function_base *const svraddhnb;
    extern const function_base *const svraddhnt;
    extern const function_base *const svrax1;
    extern const function_base *const svrhadd;
    extern const function_base *const svrshl;
    extern const function_base *const svrshr;
    extern const function_base *const svrshrnb;
    extern const function_base *const svrshrnt;
    extern const function_base *const svrsra;
    extern const function_base *const svrsubhnb;
    extern const function_base *const svrsubhnt;
    extern const function_base *const svsbclb;
    extern const function_base *const svsbclt;
    extern const function_base *const svshllb;
    extern const function_base *const svshllt;
    extern const function_base *const svshrnb;
    extern const function_base *const svshrnt;
    extern const function_base *const svsli;
    extern const function_base *const svsm4e;
    extern const function_base *const svsm4ekey;
    extern const function_base *const svsqadd;
    extern const function_base *const svsra;
    extern const function_base *const svsri;
    extern const function_base *const svstnt1_scatter;
    extern const function_base *const svstnt1b_scatter;
    extern const function_base *const svstnt1h_scatter;
    extern const function_base *const svstnt1w_scatter;
    extern const function_base *const svsubhnb;
    extern const function_base *const svsubhnt;
    extern const function_base *const svsublb;
    extern const function_base *const svsublbt;
    extern const function_base *const svsublt;
    extern const function_base *const svsubltb;
    extern const function_base *const svsubwb;
    extern const function_base *const svsubwt;
    extern const function_base *const svtbl2;
    extern const function_base *const svtbx;
    extern const function_base *const svuqadd;
    extern const function_base *const svwhilege;
    extern const function_base *const svwhilegt;
    extern const function_base *const svwhilerw;
    extern const function_base *const svwhilewr;
    extern const function_base *const svxar;
  }
}

#endif
