1  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
       2     Copyright (C) 2020-2023 Free Software Foundation, Inc.
       3  
       4     This file is part of GCC.
       5  
       6     GCC is free software; you can redistribute it and/or modify it
       7     under the terms of the GNU General Public License as published by
       8     the Free Software Foundation; either version 3, or (at your option)
       9     any later version.
      10  
      11     GCC is distributed in the hope that it will be useful, but
      12     WITHOUT ANY WARRANTY; without even the implied warranty of
      13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      14     General Public License for more details.
      15  
      16     You should have received a copy of the GNU General Public License
      17     along with GCC; see the file COPYING3.  If not see
      18     <http://www.gnu.org/licenses/>.  */
      19  
      20  #ifndef GCC_AARCH64_SVE_BUILTINS_SVE2_H
      21  #define GCC_AARCH64_SVE_BUILTINS_SVE2_H
      22  
      23  namespace aarch64_sve
      24  {
      25    namespace functions
      26    {
      27      extern const function_base *const svaba;
      28      extern const function_base *const svabalb;
      29      extern const function_base *const svabalt;
      30      extern const function_base *const svabdlb;
      31      extern const function_base *const svabdlt;
      32      extern const function_base *const svadalp;
      33      extern const function_base *const svadclb;
      34      extern const function_base *const svadclt;
      35      extern const function_base *const svaddhnb;
      36      extern const function_base *const svaddhnt;
      37      extern const function_base *const svaddlb;
      38      extern const function_base *const svaddlbt;
      39      extern const function_base *const svaddlt;
      40      extern const function_base *const svaddp;
      41      extern const function_base *const svaddwb;
      42      extern const function_base *const svaddwt;
      43      extern const function_base *const svaesd;
      44      extern const function_base *const svaese;
      45      extern const function_base *const svaesimc;
      46      extern const function_base *const svaesmc;
      47      extern const function_base *const svbcax;
      48      extern const function_base *const svbdep;
      49      extern const function_base *const svbext;
      50      extern const function_base *const svbgrp;
      51      extern const function_base *const svbsl;
      52      extern const function_base *const svbsl1n;
      53      extern const function_base *const svbsl2n;
      54      extern const function_base *const svcdot;
      55      extern const function_base *const svcdot_lane;
      56      extern const function_base *const svcvtlt;
      57      extern const function_base *const svcvtx;
      58      extern const function_base *const svcvtxnt;
      59      extern const function_base *const sveor3;
      60      extern const function_base *const sveorbt;
      61      extern const function_base *const sveortb;
      62      extern const function_base *const svhadd;
      63      extern const function_base *const svhistcnt;
      64      extern const function_base *const svhistseg;
      65      extern const function_base *const svhsub;
      66      extern const function_base *const svhsubr;
      67      extern const function_base *const svldnt1_gather;
      68      extern const function_base *const svldnt1sb_gather;
      69      extern const function_base *const svldnt1sh_gather;
      70      extern const function_base *const svldnt1sw_gather;
      71      extern const function_base *const svldnt1ub_gather;
      72      extern const function_base *const svldnt1uh_gather;
      73      extern const function_base *const svldnt1uw_gather;
      74      extern const function_base *const svlogb;
      75      extern const function_base *const svmatch;
      76      extern const function_base *const svmaxp;
      77      extern const function_base *const svmaxnmp;
      78      extern const function_base *const svmlalb;
      79      extern const function_base *const svmlalb_lane;
      80      extern const function_base *const svmlalt;
      81      extern const function_base *const svmlalt_lane;
      82      extern const function_base *const svmlslb;
      83      extern const function_base *const svmlslb_lane;
      84      extern const function_base *const svmlslt;
      85      extern const function_base *const svmlslt_lane;
      86      extern const function_base *const svminp;
      87      extern const function_base *const svminnmp;
      88      extern const function_base *const svmovlb;
      89      extern const function_base *const svmovlt;
      90      extern const function_base *const svmullb;
      91      extern const function_base *const svmullb_lane;
      92      extern const function_base *const svmullt;
      93      extern const function_base *const svmullt_lane;
      94      extern const function_base *const svnbsl;
      95      extern const function_base *const svnmatch;
      96      extern const function_base *const svpmul;
      97      extern const function_base *const svpmullb;
      98      extern const function_base *const svpmullb_pair;
      99      extern const function_base *const svpmullt;
     100      extern const function_base *const svpmullt_pair;
     101      extern const function_base *const svqabs;
     102      extern const function_base *const svqcadd;
     103      extern const function_base *const svqdmlalb;
     104      extern const function_base *const svqdmlalb_lane;
     105      extern const function_base *const svqdmlalbt;
     106      extern const function_base *const svqdmlalt;
     107      extern const function_base *const svqdmlalt_lane;
     108      extern const function_base *const svqdmlslb;
     109      extern const function_base *const svqdmlslb_lane;
     110      extern const function_base *const svqdmlslbt;
     111      extern const function_base *const svqdmlslt;
     112      extern const function_base *const svqdmlslt_lane;
     113      extern const function_base *const svqdmulh;
     114      extern const function_base *const svqdmulh_lane;
     115      extern const function_base *const svqdmullb;
     116      extern const function_base *const svqdmullb_lane;
     117      extern const function_base *const svqdmullt;
     118      extern const function_base *const svqdmullt_lane;
     119      extern const function_base *const svqneg;
     120      extern const function_base *const svqrdcmlah;
     121      extern const function_base *const svqrdcmlah_lane;
     122      extern const function_base *const svqrdmulh;
     123      extern const function_base *const svqrdmulh_lane;
     124      extern const function_base *const svqrdmlah;
     125      extern const function_base *const svqrdmlah_lane;
     126      extern const function_base *const svqrdmlsh;
     127      extern const function_base *const svqrdmlsh_lane;
     128      extern const function_base *const svqrshl;
     129      extern const function_base *const svqrshrnb;
     130      extern const function_base *const svqrshrnt;
     131      extern const function_base *const svqrshrunb;
     132      extern const function_base *const svqrshrunt;
     133      extern const function_base *const svqshl;
     134      extern const function_base *const svqshlu;
     135      extern const function_base *const svqshrnb;
     136      extern const function_base *const svqshrnt;
     137      extern const function_base *const svqshrunb;
     138      extern const function_base *const svqshrunt;
     139      extern const function_base *const svqsubr;
     140      extern const function_base *const svqxtnb;
     141      extern const function_base *const svqxtnt;
     142      extern const function_base *const svqxtunb;
     143      extern const function_base *const svqxtunt;
     144      extern const function_base *const svraddhnb;
     145      extern const function_base *const svraddhnt;
     146      extern const function_base *const svrax1;
     147      extern const function_base *const svrhadd;
     148      extern const function_base *const svrshl;
     149      extern const function_base *const svrshr;
     150      extern const function_base *const svrshrnb;
     151      extern const function_base *const svrshrnt;
     152      extern const function_base *const svrsra;
     153      extern const function_base *const svrsubhnb;
     154      extern const function_base *const svrsubhnt;
     155      extern const function_base *const svsbclb;
     156      extern const function_base *const svsbclt;
     157      extern const function_base *const svshllb;
     158      extern const function_base *const svshllt;
     159      extern const function_base *const svshrnb;
     160      extern const function_base *const svshrnt;
     161      extern const function_base *const svsli;
     162      extern const function_base *const svsm4e;
     163      extern const function_base *const svsm4ekey;
     164      extern const function_base *const svsqadd;
     165      extern const function_base *const svsra;
     166      extern const function_base *const svsri;
     167      extern const function_base *const svstnt1_scatter;
     168      extern const function_base *const svstnt1b_scatter;
     169      extern const function_base *const svstnt1h_scatter;
     170      extern const function_base *const svstnt1w_scatter;
     171      extern const function_base *const svsubhnb;
     172      extern const function_base *const svsubhnt;
     173      extern const function_base *const svsublb;
     174      extern const function_base *const svsublbt;
     175      extern const function_base *const svsublt;
     176      extern const function_base *const svsubltb;
     177      extern const function_base *const svsubwb;
     178      extern const function_base *const svsubwt;
     179      extern const function_base *const svtbl2;
     180      extern const function_base *const svtbx;
     181      extern const function_base *const svuqadd;
     182      extern const function_base *const svwhilege;
     183      extern const function_base *const svwhilegt;
     184      extern const function_base *const svwhilerw;
     185      extern const function_base *const svwhilewr;
     186      extern const function_base *const svxar;
     187    }
     188  }
     189  
     190  #endif