(root)/
gcc-13.2.0/
gcc/
config/
aarch64/
aarch64-sve-builtins-base.h
       1  /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
       2     Copyright (C) 2018-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_BASE_H
      21  #define GCC_AARCH64_SVE_BUILTINS_BASE_H
      22  
      23  namespace aarch64_sve
      24  {
      25    namespace functions
      26    {
      27      extern const function_base *const svabd;
      28      extern const function_base *const svabs;
      29      extern const function_base *const svacge;
      30      extern const function_base *const svacgt;
      31      extern const function_base *const svacle;
      32      extern const function_base *const svaclt;
      33      extern const function_base *const svadd;
      34      extern const function_base *const svadda;
      35      extern const function_base *const svaddv;
      36      extern const function_base *const svadrb;
      37      extern const function_base *const svadrd;
      38      extern const function_base *const svadrh;
      39      extern const function_base *const svadrw;
      40      extern const function_base *const svand;
      41      extern const function_base *const svandv;
      42      extern const function_base *const svasr;
      43      extern const function_base *const svasr_wide;
      44      extern const function_base *const svasrd;
      45      extern const function_base *const svbfdot;
      46      extern const function_base *const svbfdot_lane;
      47      extern const function_base *const svbfmlalb;
      48      extern const function_base *const svbfmlalb_lane;
      49      extern const function_base *const svbfmlalt;
      50      extern const function_base *const svbfmlalt_lane;
      51      extern const function_base *const svbfmmla;
      52      extern const function_base *const svbic;
      53      extern const function_base *const svbrka;
      54      extern const function_base *const svbrkb;
      55      extern const function_base *const svbrkn;
      56      extern const function_base *const svbrkpa;
      57      extern const function_base *const svbrkpb;
      58      extern const function_base *const svcadd;
      59      extern const function_base *const svclasta;
      60      extern const function_base *const svclastb;
      61      extern const function_base *const svcls;
      62      extern const function_base *const svclz;
      63      extern const function_base *const svcmla;
      64      extern const function_base *const svcmla_lane;
      65      extern const function_base *const svcmpeq;
      66      extern const function_base *const svcmpeq_wide;
      67      extern const function_base *const svcmpge;
      68      extern const function_base *const svcmpge_wide;
      69      extern const function_base *const svcmpgt;
      70      extern const function_base *const svcmpgt_wide;
      71      extern const function_base *const svcmple;
      72      extern const function_base *const svcmple_wide;
      73      extern const function_base *const svcmplt;
      74      extern const function_base *const svcmplt_wide;
      75      extern const function_base *const svcmpne;
      76      extern const function_base *const svcmpne_wide;
      77      extern const function_base *const svcmpuo;
      78      extern const function_base *const svcnot;
      79      extern const function_base *const svcnt;
      80      extern const function_base *const svcntb;
      81      extern const function_base *const svcntb_pat;
      82      extern const function_base *const svcntd;
      83      extern const function_base *const svcntd_pat;
      84      extern const function_base *const svcnth;
      85      extern const function_base *const svcnth_pat;
      86      extern const function_base *const svcntp;
      87      extern const function_base *const svcntw;
      88      extern const function_base *const svcntw_pat;
      89      extern const function_base *const svcompact;
      90      extern const function_base *const svcreate2;
      91      extern const function_base *const svcreate3;
      92      extern const function_base *const svcreate4;
      93      extern const function_base *const svcvt;
      94      extern const function_base *const svcvtnt;
      95      extern const function_base *const svdiv;
      96      extern const function_base *const svdivr;
      97      extern const function_base *const svdot;
      98      extern const function_base *const svdot_lane;
      99      extern const function_base *const svdup;
     100      extern const function_base *const svdup_lane;
     101      extern const function_base *const svdupq;
     102      extern const function_base *const svdupq_lane;
     103      extern const function_base *const sveor;
     104      extern const function_base *const sveorv;
     105      extern const function_base *const svexpa;
     106      extern const function_base *const svext;
     107      extern const function_base *const svextb;
     108      extern const function_base *const svexth;
     109      extern const function_base *const svextw;
     110      extern const function_base *const svget2;
     111      extern const function_base *const svget3;
     112      extern const function_base *const svget4;
     113      extern const function_base *const svindex;
     114      extern const function_base *const svinsr;
     115      extern const function_base *const svlasta;
     116      extern const function_base *const svlastb;
     117      extern const function_base *const svld1;
     118      extern const function_base *const svld1_gather;
     119      extern const function_base *const svld1ro;
     120      extern const function_base *const svld1rq;
     121      extern const function_base *const svld1sb;
     122      extern const function_base *const svld1sb_gather;
     123      extern const function_base *const svld1sh;
     124      extern const function_base *const svld1sh_gather;
     125      extern const function_base *const svld1sw;
     126      extern const function_base *const svld1sw_gather;
     127      extern const function_base *const svld1ub;
     128      extern const function_base *const svld1ub_gather;
     129      extern const function_base *const svld1uh;
     130      extern const function_base *const svld1uh_gather;
     131      extern const function_base *const svld1uw;
     132      extern const function_base *const svld1uw_gather;
     133      extern const function_base *const svld2;
     134      extern const function_base *const svld3;
     135      extern const function_base *const svld4;
     136      extern const function_base *const svldff1;
     137      extern const function_base *const svldff1_gather;
     138      extern const function_base *const svldff1sb;
     139      extern const function_base *const svldff1sb_gather;
     140      extern const function_base *const svldff1sh;
     141      extern const function_base *const svldff1sh_gather;
     142      extern const function_base *const svldff1sw;
     143      extern const function_base *const svldff1sw_gather;
     144      extern const function_base *const svldff1ub;
     145      extern const function_base *const svldff1ub_gather;
     146      extern const function_base *const svldff1uh;
     147      extern const function_base *const svldff1uh_gather;
     148      extern const function_base *const svldff1uw;
     149      extern const function_base *const svldff1uw_gather;
     150      extern const function_base *const svldnf1;
     151      extern const function_base *const svldnf1sb;
     152      extern const function_base *const svldnf1sh;
     153      extern const function_base *const svldnf1sw;
     154      extern const function_base *const svldnf1ub;
     155      extern const function_base *const svldnf1uh;
     156      extern const function_base *const svldnf1uw;
     157      extern const function_base *const svldnt1;
     158      extern const function_base *const svlen;
     159      extern const function_base *const svlsl;
     160      extern const function_base *const svlsl_wide;
     161      extern const function_base *const svlsr;
     162      extern const function_base *const svlsr_wide;
     163      extern const function_base *const svmad;
     164      extern const function_base *const svmax;
     165      extern const function_base *const svmaxnm;
     166      extern const function_base *const svmaxnmv;
     167      extern const function_base *const svmaxv;
     168      extern const function_base *const svmin;
     169      extern const function_base *const svminnm;
     170      extern const function_base *const svminnmv;
     171      extern const function_base *const svminv;
     172      extern const function_base *const svmla;
     173      extern const function_base *const svmla_lane;
     174      extern const function_base *const svmls;
     175      extern const function_base *const svmls_lane;
     176      extern const function_base *const svmmla;
     177      extern const function_base *const svmov;
     178      extern const function_base *const svmsb;
     179      extern const function_base *const svmul;
     180      extern const function_base *const svmul_lane;
     181      extern const function_base *const svmulh;
     182      extern const function_base *const svmulx;
     183      extern const function_base *const svnand;
     184      extern const function_base *const svneg;
     185      extern const function_base *const svnmad;
     186      extern const function_base *const svnmla;
     187      extern const function_base *const svnmls;
     188      extern const function_base *const svnmsb;
     189      extern const function_base *const svnor;
     190      extern const function_base *const svnot;
     191      extern const function_base *const svorn;
     192      extern const function_base *const svorr;
     193      extern const function_base *const svorv;
     194      extern const function_base *const svpfalse;
     195      extern const function_base *const svpfirst;
     196      extern const function_base *const svpnext;
     197      extern const function_base *const svprfb;
     198      extern const function_base *const svprfb_gather;
     199      extern const function_base *const svprfd;
     200      extern const function_base *const svprfd_gather;
     201      extern const function_base *const svprfh;
     202      extern const function_base *const svprfh_gather;
     203      extern const function_base *const svprfw;
     204      extern const function_base *const svprfw_gather;
     205      extern const function_base *const svptest_any;
     206      extern const function_base *const svptest_first;
     207      extern const function_base *const svptest_last;
     208      extern const function_base *const svptrue;
     209      extern const function_base *const svptrue_pat;
     210      extern const function_base *const svqadd;
     211      extern const function_base *const svqdecb;
     212      extern const function_base *const svqdecb_pat;
     213      extern const function_base *const svqdecd;
     214      extern const function_base *const svqdecd_pat;
     215      extern const function_base *const svqdech;
     216      extern const function_base *const svqdech_pat;
     217      extern const function_base *const svqdecp;
     218      extern const function_base *const svqdecw;
     219      extern const function_base *const svqdecw_pat;
     220      extern const function_base *const svqincb;
     221      extern const function_base *const svqincb_pat;
     222      extern const function_base *const svqincd;
     223      extern const function_base *const svqincd_pat;
     224      extern const function_base *const svqinch;
     225      extern const function_base *const svqinch_pat;
     226      extern const function_base *const svqincp;
     227      extern const function_base *const svqincw;
     228      extern const function_base *const svqincw_pat;
     229      extern const function_base *const svqsub;
     230      extern const function_base *const svrbit;
     231      extern const function_base *const svrdffr;
     232      extern const function_base *const svrecpe;
     233      extern const function_base *const svrecps;
     234      extern const function_base *const svrecpx;
     235      extern const function_base *const svreinterpret;
     236      extern const function_base *const svrev;
     237      extern const function_base *const svrevb;
     238      extern const function_base *const svrevh;
     239      extern const function_base *const svrevw;
     240      extern const function_base *const svrinta;
     241      extern const function_base *const svrinti;
     242      extern const function_base *const svrintm;
     243      extern const function_base *const svrintn;
     244      extern const function_base *const svrintp;
     245      extern const function_base *const svrintx;
     246      extern const function_base *const svrintz;
     247      extern const function_base *const svrsqrte;
     248      extern const function_base *const svrsqrts;
     249      extern const function_base *const svscale;
     250      extern const function_base *const svsel;
     251      extern const function_base *const svset2;
     252      extern const function_base *const svset3;
     253      extern const function_base *const svset4;
     254      extern const function_base *const svsetffr;
     255      extern const function_base *const svsplice;
     256      extern const function_base *const svsqrt;
     257      extern const function_base *const svst1;
     258      extern const function_base *const svst1_scatter;
     259      extern const function_base *const svst1b;
     260      extern const function_base *const svst1b_scatter;
     261      extern const function_base *const svst1h;
     262      extern const function_base *const svst1h_scatter;
     263      extern const function_base *const svst1w;
     264      extern const function_base *const svst1w_scatter;
     265      extern const function_base *const svst2;
     266      extern const function_base *const svst3;
     267      extern const function_base *const svst4;
     268      extern const function_base *const svstnt1;
     269      extern const function_base *const svsub;
     270      extern const function_base *const svsubr;
     271      extern const function_base *const svsudot;
     272      extern const function_base *const svsudot_lane;
     273      extern const function_base *const svtbl;
     274      extern const function_base *const svtmad;
     275      extern const function_base *const svtrn1;
     276      extern const function_base *const svtrn1q;
     277      extern const function_base *const svtrn2;
     278      extern const function_base *const svtrn2q;
     279      extern const function_base *const svtsmul;
     280      extern const function_base *const svtssel;
     281      extern const function_base *const svundef;
     282      extern const function_base *const svundef2;
     283      extern const function_base *const svundef3;
     284      extern const function_base *const svundef4;
     285      extern const function_base *const svunpkhi;
     286      extern const function_base *const svunpklo;
     287      extern const function_base *const svusdot;
     288      extern const function_base *const svusdot_lane;
     289      extern const function_base *const svusmmla;
     290      extern const function_base *const svuzp1;
     291      extern const function_base *const svuzp1q;
     292      extern const function_base *const svuzp2;
     293      extern const function_base *const svuzp2q;
     294      extern const function_base *const svwhilele;
     295      extern const function_base *const svwhilelt;
     296      extern const function_base *const svwrffr;
     297      extern const function_base *const svzip1;
     298      extern const function_base *const svzip1q;
     299      extern const function_base *const svzip2;
     300      extern const function_base *const svzip2q;
     301    }
     302  }
     303  
     304  #endif