Home | History | Annotate | Line # | Download | only in aarch64
      1 /* ACLE support for AArch64 SVE (__ARM_FEATURE_SVE intrinsics)
      2    Copyright (C) 2020-2022 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
    191