1 /* ACLE support for AArch64 SME. 2 Copyright (C) 2023-2024 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_SME_H 21 #define GCC_AARCH64_SVE_BUILTINS_SME_H 22 23 namespace aarch64_sve 24 { 25 namespace functions 26 { 27 extern const function_base *const arm_has_sme; 28 extern const function_base *const arm_in_streaming_mode; 29 extern const function_base *const svadd_za; 30 extern const function_base *const svadd_write_za; 31 extern const function_base *const svaddha_za; 32 extern const function_base *const svaddva_za; 33 extern const function_base *const svbmopa_za; 34 extern const function_base *const svbmops_za; 35 extern const function_base *const svcntsb; 36 extern const function_base *const svcntsd; 37 extern const function_base *const svcntsh; 38 extern const function_base *const svcntsw; 39 extern const function_base *const svdot_za; 40 extern const function_base *const svdot_lane_za; 41 extern const function_base *const svld1_hor_za; 42 extern const function_base *const svld1_ver_za; 43 extern const function_base *const svldr_za; 44 extern const function_base *const svldr_zt; 45 extern const function_base *const svluti2_lane_zt; 46 extern const function_base *const svluti4_lane_zt; 47 extern const function_base *const svmla_za; 48 extern const function_base *const svmla_lane_za; 49 extern const function_base *const svmls_za; 50 extern const function_base *const svmls_lane_za; 51 extern const function_base *const svmopa_za; 52 extern const function_base *const svmops_za; 53 extern const function_base *const svread_za; 54 extern const function_base *const svread_hor_za; 55 extern const function_base *const svread_ver_za; 56 extern const function_base *const svst1_hor_za; 57 extern const function_base *const svst1_ver_za; 58 extern const function_base *const svstr_za; 59 extern const function_base *const svstr_zt; 60 extern const function_base *const svsub_za; 61 extern const function_base *const svsub_write_za; 62 extern const function_base *const svsudot_za; 63 extern const function_base *const svsudot_lane_za; 64 extern const function_base *const svsuvdot_lane_za; 65 extern const function_base *const svsumopa_za; 66 extern const function_base *const svsumops_za; 67 extern const function_base *const svusdot_za; 68 extern const function_base *const svusdot_lane_za; 69 extern const function_base *const svusvdot_lane_za; 70 extern const function_base *const svusmopa_za; 71 extern const function_base *const svusmops_za; 72 extern const function_base *const svwrite_za; 73 extern const function_base *const svwrite_hor_za; 74 extern const function_base *const svwrite_ver_za; 75 extern const function_base *const svundef_za; 76 extern const function_base *const svvdot_lane_za; 77 extern const function_base *const svzero_mask_za; 78 extern const function_base *const svzero_za; 79 extern const function_base *const svzero_zt; 80 } 81 } 82 83 #endif 84