1/* Builtin lists for AArch64 SVE 2 Copyright (C) 2018-2021 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 DEF_SVE_MODE 21#define DEF_SVE_MODE(A, B, C, D) 22#endif 23 24#ifndef DEF_SVE_TYPE 25#define DEF_SVE_TYPE(A, B, C, D) 26#endif 27 28#ifndef DEF_SVE_TYPE_SUFFIX 29#define DEF_SVE_TYPE_SUFFIX(A, B, C, D, E) 30#endif 31 32#ifndef DEF_SVE_FUNCTION 33#define DEF_SVE_FUNCTION(A, B, C, D) 34#endif 35 36DEF_SVE_MODE (n, none, none, none) 37DEF_SVE_MODE (index, none, none, elements) 38DEF_SVE_MODE (offset, none, none, bytes) 39DEF_SVE_MODE (s32index, none, svint32_t, elements) 40DEF_SVE_MODE (s32offset, none, svint32_t, bytes) 41DEF_SVE_MODE (s64index, none, svint64_t, elements) 42DEF_SVE_MODE (s64offset, none, svint64_t, bytes) 43DEF_SVE_MODE (u32base, svuint32_t, none, none) 44DEF_SVE_MODE (u32base_index, svuint32_t, none, elements) 45DEF_SVE_MODE (u32base_offset, svuint32_t, none, bytes) 46DEF_SVE_MODE (u32base_s32index, svuint32_t, svint32_t, elements) 47DEF_SVE_MODE (u32base_s32offset, svuint32_t, svint32_t, bytes) 48DEF_SVE_MODE (u32base_u32index, svuint32_t, svuint32_t, elements) 49DEF_SVE_MODE (u32base_u32offset, svuint32_t, svuint32_t, bytes) 50DEF_SVE_MODE (u32index, none, svuint32_t, elements) 51DEF_SVE_MODE (u32offset, none, svuint32_t, bytes) 52DEF_SVE_MODE (u64base, svuint64_t, none, none) 53DEF_SVE_MODE (u64base_index, svuint64_t, none, elements) 54DEF_SVE_MODE (u64base_offset, svuint64_t, none, bytes) 55DEF_SVE_MODE (u64base_s64index, svuint64_t, svint64_t, elements) 56DEF_SVE_MODE (u64base_s64offset, svuint64_t, svint64_t, bytes) 57DEF_SVE_MODE (u64base_u64index, svuint64_t, svuint64_t, elements) 58DEF_SVE_MODE (u64base_u64offset, svuint64_t, svuint64_t, bytes) 59DEF_SVE_MODE (u64index, none, svuint64_t, elements) 60DEF_SVE_MODE (u64offset, none, svuint64_t, bytes) 61DEF_SVE_MODE (vnum, none, none, vectors) 62 63DEF_SVE_TYPE (svbool_t, 10, __SVBool_t, boolean_type_node) 64DEF_SVE_TYPE (svbfloat16_t, 14, __SVBfloat16_t, aarch64_bf16_type_node) 65DEF_SVE_TYPE (svfloat16_t, 13, __SVFloat16_t, aarch64_fp16_type_node) 66DEF_SVE_TYPE (svfloat32_t, 13, __SVFloat32_t, float_type_node) 67DEF_SVE_TYPE (svfloat64_t, 13, __SVFloat64_t, double_type_node) 68DEF_SVE_TYPE (svint8_t, 10, __SVInt8_t, get_typenode_from_name (INT8_TYPE)) 69DEF_SVE_TYPE (svint16_t, 11, __SVInt16_t, get_typenode_from_name (INT16_TYPE)) 70DEF_SVE_TYPE (svint32_t, 11, __SVInt32_t, get_typenode_from_name (INT32_TYPE)) 71DEF_SVE_TYPE (svint64_t, 11, __SVInt64_t, get_typenode_from_name (INT64_TYPE)) 72DEF_SVE_TYPE (svuint8_t, 11, __SVUint8_t, get_typenode_from_name (UINT8_TYPE)) 73DEF_SVE_TYPE (svuint16_t, 12, __SVUint16_t, 74 get_typenode_from_name (UINT16_TYPE)) 75DEF_SVE_TYPE (svuint32_t, 12, __SVUint32_t, 76 get_typenode_from_name (UINT32_TYPE)) 77DEF_SVE_TYPE (svuint64_t, 12, __SVUint64_t, 78 get_typenode_from_name (UINT64_TYPE)) 79 80DEF_SVE_TYPE_SUFFIX (b, svbool_t, bool, 8, VNx16BImode) 81DEF_SVE_TYPE_SUFFIX (b8, svbool_t, bool, 8, VNx16BImode) 82DEF_SVE_TYPE_SUFFIX (b16, svbool_t, bool, 16, VNx8BImode) 83DEF_SVE_TYPE_SUFFIX (b32, svbool_t, bool, 32, VNx4BImode) 84DEF_SVE_TYPE_SUFFIX (b64, svbool_t, bool, 64, VNx2BImode) 85DEF_SVE_TYPE_SUFFIX (bf16, svbfloat16_t, bfloat, 16, VNx8BFmode) 86DEF_SVE_TYPE_SUFFIX (f16, svfloat16_t, float, 16, VNx8HFmode) 87DEF_SVE_TYPE_SUFFIX (f32, svfloat32_t, float, 32, VNx4SFmode) 88DEF_SVE_TYPE_SUFFIX (f64, svfloat64_t, float, 64, VNx2DFmode) 89DEF_SVE_TYPE_SUFFIX (s8, svint8_t, signed, 8, VNx16QImode) 90DEF_SVE_TYPE_SUFFIX (s16, svint16_t, signed, 16, VNx8HImode) 91DEF_SVE_TYPE_SUFFIX (s32, svint32_t, signed, 32, VNx4SImode) 92DEF_SVE_TYPE_SUFFIX (s64, svint64_t, signed, 64, VNx2DImode) 93DEF_SVE_TYPE_SUFFIX (u8, svuint8_t, unsigned, 8, VNx16QImode) 94DEF_SVE_TYPE_SUFFIX (u16, svuint16_t, unsigned, 16, VNx8HImode) 95DEF_SVE_TYPE_SUFFIX (u32, svuint32_t, unsigned, 32, VNx4SImode) 96DEF_SVE_TYPE_SUFFIX (u64, svuint64_t, unsigned, 64, VNx2DImode) 97 98#include "aarch64-sve-builtins-base.def" 99#include "aarch64-sve-builtins-sve2.def" 100 101#undef DEF_SVE_FUNCTION 102#undef DEF_SVE_TYPE_SUFFIX 103#undef DEF_SVE_TYPE 104#undef DEF_SVE_MODE 105