1/* Definitions of prototypes for MIPS built-in functions. -*- C -*- 2 Copyright (C) 2007-2022 Free Software Foundation, Inc. 3 4This file is part of GCC. 5 6GCC is free software; you can redistribute it and/or modify 7it under the terms of the GNU General Public License as published by 8the Free Software Foundation; either version 3, or (at your option) 9any later version. 10 11GCC is distributed in the hope that it will be useful, 12but WITHOUT ANY WARRANTY; without even the implied warranty of 13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14GNU General Public License for more details. 15 16You should have received a copy of the GNU General Public License 17along with GCC; see the file COPYING3. If not see 18<http://www.gnu.org/licenses/>. */ 19 20/* Invoke DEF_MIPS_FTYPE (NARGS, LIST) for each prototype used by 21 MIPS built-in functions, where: 22 23 NARGS is the number of arguments. 24 LIST contains the return-type code followed by the codes for each 25 argument type. 26 27 Argument- and return-type codes are either modes or one of the following: 28 29 VOID for void_type_node 30 INT for integer_type_node 31 POINTER for ptr_type_node 32 33 (we don't use PTR because that's a ANSI-compatibillity macro). 34 35 Please keep this list lexicographically sorted by the LIST argument. */ 36DEF_MIPS_FTYPE (1, (DF, DF)) 37DEF_MIPS_FTYPE (2, (DF, DF, DF)) 38DEF_MIPS_FTYPE (1, (DF, V2DF)) 39 40DEF_MIPS_FTYPE (2, (DI, DI, DI)) 41DEF_MIPS_FTYPE (2, (DI, DI, SI)) 42DEF_MIPS_FTYPE (3, (DI, DI, SI, SI)) 43DEF_MIPS_FTYPE (3, (DI, DI, USI, USI)) 44DEF_MIPS_FTYPE (3, (DI, DI, V2HI, V2HI)) 45DEF_MIPS_FTYPE (3, (DI, DI, V4QI, V4QI)) 46DEF_MIPS_FTYPE (2, (DI, POINTER, SI)) 47DEF_MIPS_FTYPE (2, (DI, SI, SI)) 48DEF_MIPS_FTYPE (2, (DI, USI, USI)) 49DEF_MIPS_FTYPE (2, (DI, V2DI, UQI)) 50 51DEF_MIPS_FTYPE (2, (INT, DF, DF)) 52DEF_MIPS_FTYPE (2, (INT, SF, SF)) 53DEF_MIPS_FTYPE (2, (INT, V2SF, V2SF)) 54DEF_MIPS_FTYPE (4, (INT, V2SF, V2SF, V2SF, V2SF)) 55 56DEF_MIPS_FTYPE (1, (SF, SF)) 57DEF_MIPS_FTYPE (2, (SF, SF, SF)) 58DEF_MIPS_FTYPE (1, (SF, V2SF)) 59DEF_MIPS_FTYPE (1, (SF, V4SF)) 60 61DEF_MIPS_FTYPE (2, (SI, DI, SI)) 62DEF_MIPS_FTYPE (2, (SI, POINTER, SI)) 63DEF_MIPS_FTYPE (1, (SI, SI)) 64DEF_MIPS_FTYPE (2, (SI, SI, SI)) 65DEF_MIPS_FTYPE (3, (SI, SI, SI, SI)) 66DEF_MIPS_FTYPE (1, (SI, UQI)) 67DEF_MIPS_FTYPE (1, (SI, UV16QI)) 68DEF_MIPS_FTYPE (1, (SI, UV2DI)) 69DEF_MIPS_FTYPE (1, (SI, UV4SI)) 70DEF_MIPS_FTYPE (1, (SI, UV8HI)) 71DEF_MIPS_FTYPE (2, (SI, V16QI, UQI)) 72DEF_MIPS_FTYPE (1, (SI, V2HI)) 73DEF_MIPS_FTYPE (2, (SI, V2HI, V2HI)) 74DEF_MIPS_FTYPE (1, (SI, V4QI)) 75DEF_MIPS_FTYPE (2, (SI, V4QI, V4QI)) 76DEF_MIPS_FTYPE (2, (SI, V4SI, UQI)) 77DEF_MIPS_FTYPE (2, (SI, V8HI, UQI)) 78DEF_MIPS_FTYPE (1, (SI, VOID)) 79 80DEF_MIPS_FTYPE (2, (UDI, UDI, UDI)) 81DEF_MIPS_FTYPE (2, (UDI, UV2SI, UV2SI)) 82DEF_MIPS_FTYPE (2, (UDI, V2DI, UQI)) 83 84DEF_MIPS_FTYPE (2, (USI, V16QI, UQI)) 85DEF_MIPS_FTYPE (2, (USI, V4SI, UQI)) 86DEF_MIPS_FTYPE (2, (USI, V8HI, UQI)) 87DEF_MIPS_FTYPE (1, (USI, VOID)) 88 89DEF_MIPS_FTYPE (2, (UV16QI, UV16QI, UQI)) 90DEF_MIPS_FTYPE (2, (UV16QI, UV16QI, UV16QI)) 91DEF_MIPS_FTYPE (3, (UV16QI, UV16QI, UV16QI, UQI)) 92DEF_MIPS_FTYPE (3, (UV16QI, UV16QI, UV16QI, UV16QI)) 93DEF_MIPS_FTYPE (2, (UV16QI, UV16QI, V16QI)) 94 95DEF_MIPS_FTYPE (2, (UV2DI, UV2DI, UQI)) 96DEF_MIPS_FTYPE (2, (UV2DI, UV2DI, UV2DI)) 97DEF_MIPS_FTYPE (3, (UV2DI, UV2DI, UV2DI, UQI)) 98DEF_MIPS_FTYPE (3, (UV2DI, UV2DI, UV2DI, UV2DI)) 99DEF_MIPS_FTYPE (3, (UV2DI, UV2DI, UV4SI, UV4SI)) 100DEF_MIPS_FTYPE (2, (UV2DI, UV2DI, V2DI)) 101DEF_MIPS_FTYPE (2, (UV2DI, UV4SI, UV4SI)) 102DEF_MIPS_FTYPE (1, (UV2DI, V2DF)) 103 104DEF_MIPS_FTYPE (2, (UV2SI, UV2SI, UQI)) 105DEF_MIPS_FTYPE (2, (UV2SI, UV2SI, UV2SI)) 106 107DEF_MIPS_FTYPE (2, (UV4HI, UV4HI, UQI)) 108DEF_MIPS_FTYPE (2, (UV4HI, UV4HI, USI)) 109DEF_MIPS_FTYPE (2, (UV4HI, UV4HI, UV4HI)) 110DEF_MIPS_FTYPE (3, (UV4HI, UV4HI, UV4HI, UQI)) 111DEF_MIPS_FTYPE (3, (UV4HI, UV4HI, UV4HI, USI)) 112DEF_MIPS_FTYPE (1, (UV4HI, UV8QI)) 113DEF_MIPS_FTYPE (2, (UV4HI, UV8QI, UV8QI)) 114 115DEF_MIPS_FTYPE (2, (UV4SI, UV4SI, UQI)) 116DEF_MIPS_FTYPE (2, (UV4SI, UV4SI, UV4SI)) 117DEF_MIPS_FTYPE (3, (UV4SI, UV4SI, UV4SI, UQI)) 118DEF_MIPS_FTYPE (3, (UV4SI, UV4SI, UV4SI, UV4SI)) 119DEF_MIPS_FTYPE (3, (UV4SI, UV4SI, UV8HI, UV8HI)) 120DEF_MIPS_FTYPE (2, (UV4SI, UV4SI, V4SI)) 121DEF_MIPS_FTYPE (2, (UV4SI, UV8HI, UV8HI)) 122DEF_MIPS_FTYPE (1, (UV4SI, V4SF)) 123 124DEF_MIPS_FTYPE (2, (UV8HI, UV16QI, UV16QI)) 125DEF_MIPS_FTYPE (2, (UV8HI, UV8HI, UQI)) 126DEF_MIPS_FTYPE (3, (UV8HI, UV8HI, UV16QI, UV16QI)) 127DEF_MIPS_FTYPE (2, (UV8HI, UV8HI, UV8HI)) 128DEF_MIPS_FTYPE (3, (UV8HI, UV8HI, UV8HI, UQI)) 129DEF_MIPS_FTYPE (3, (UV8HI, UV8HI, UV8HI, UV8HI)) 130DEF_MIPS_FTYPE (2, (UV8HI, UV8HI, V8HI)) 131 132DEF_MIPS_FTYPE (2, (UV8QI, UV4HI, UV4HI)) 133DEF_MIPS_FTYPE (1, (UV8QI, UV8QI)) 134DEF_MIPS_FTYPE (2, (UV8QI, UV8QI, UV8QI)) 135 136DEF_MIPS_FTYPE (2, (V16QI, CVPOINTER, SI)) 137DEF_MIPS_FTYPE (1, (V16QI, HI)) 138DEF_MIPS_FTYPE (1, (V16QI, SI)) 139DEF_MIPS_FTYPE (2, (V16QI, UV16QI, UQI)) 140DEF_MIPS_FTYPE (2, (V16QI, UV16QI, UV16QI)) 141DEF_MIPS_FTYPE (1, (V16QI, V16QI)) 142DEF_MIPS_FTYPE (2, (V16QI, V16QI, QI)) 143DEF_MIPS_FTYPE (2, (V16QI, V16QI, SI)) 144DEF_MIPS_FTYPE (2, (V16QI, V16QI, UQI)) 145DEF_MIPS_FTYPE (3, (V16QI, V16QI, UQI, SI)) 146DEF_MIPS_FTYPE (3, (V16QI, V16QI, UQI, V16QI)) 147DEF_MIPS_FTYPE (2, (V16QI, V16QI, V16QI)) 148DEF_MIPS_FTYPE (3, (V16QI, V16QI, V16QI, SI)) 149DEF_MIPS_FTYPE (3, (V16QI, V16QI, V16QI, UQI)) 150DEF_MIPS_FTYPE (3, (V16QI, V16QI, V16QI, V16QI)) 151 152DEF_MIPS_FTYPE (1, (V2DF, DF)) 153DEF_MIPS_FTYPE (1, (V2DF, UV2DI)) 154DEF_MIPS_FTYPE (1, (V2DF, V2DF)) 155DEF_MIPS_FTYPE (2, (V2DF, V2DF, V2DF)) 156DEF_MIPS_FTYPE (3, (V2DF, V2DF, V2DF, V2DF)) 157DEF_MIPS_FTYPE (2, (V2DF, V2DF, V2DI)) 158DEF_MIPS_FTYPE (1, (V2DF, V2DI)) 159DEF_MIPS_FTYPE (1, (V2DF, V4SF)) 160DEF_MIPS_FTYPE (1, (V2DF, V4SI)) 161 162DEF_MIPS_FTYPE (2, (V2DI, CVPOINTER, SI)) 163DEF_MIPS_FTYPE (1, (V2DI, DI)) 164DEF_MIPS_FTYPE (1, (V2DI, HI)) 165DEF_MIPS_FTYPE (2, (V2DI, UV2DI, UQI)) 166DEF_MIPS_FTYPE (2, (V2DI, UV2DI, UV2DI)) 167DEF_MIPS_FTYPE (2, (V2DI, UV4SI, UV4SI)) 168DEF_MIPS_FTYPE (1, (V2DI, V2DF)) 169DEF_MIPS_FTYPE (2, (V2DI, V2DF, V2DF)) 170DEF_MIPS_FTYPE (1, (V2DI, V2DI)) 171DEF_MIPS_FTYPE (2, (V2DI, V2DI, QI)) 172DEF_MIPS_FTYPE (2, (V2DI, V2DI, SI)) 173DEF_MIPS_FTYPE (2, (V2DI, V2DI, UQI)) 174DEF_MIPS_FTYPE (3, (V2DI, V2DI, UQI, DI)) 175DEF_MIPS_FTYPE (3, (V2DI, V2DI, UQI, V2DI)) 176DEF_MIPS_FTYPE (3, (V2DI, V2DI, UV4SI, UV4SI)) 177DEF_MIPS_FTYPE (2, (V2DI, V2DI, V2DI)) 178DEF_MIPS_FTYPE (3, (V2DI, V2DI, V2DI, SI)) 179DEF_MIPS_FTYPE (3, (V2DI, V2DI, V2DI, UQI)) 180DEF_MIPS_FTYPE (3, (V2DI, V2DI, V2DI, V2DI)) 181DEF_MIPS_FTYPE (3, (V2DI, V2DI, V4SI, V4SI)) 182DEF_MIPS_FTYPE (2, (V2DI, V4SI, V4SI)) 183 184DEF_MIPS_FTYPE (1, (V2HI, SI)) 185DEF_MIPS_FTYPE (2, (V2HI, SI, SI)) 186DEF_MIPS_FTYPE (3, (V2HI, SI, SI, SI)) 187DEF_MIPS_FTYPE (1, (V2HI, V2HI)) 188DEF_MIPS_FTYPE (2, (V2HI, V2HI, SI)) 189DEF_MIPS_FTYPE (2, (V2HI, V2HI, V2HI)) 190DEF_MIPS_FTYPE (1, (V2HI, V4QI)) 191DEF_MIPS_FTYPE (2, (V2HI, V4QI, V2HI)) 192 193DEF_MIPS_FTYPE (2, (V2SF, SF, SF)) 194DEF_MIPS_FTYPE (1, (V2SF, V2SF)) 195DEF_MIPS_FTYPE (2, (V2SF, V2SF, V2SF)) 196DEF_MIPS_FTYPE (3, (V2SF, V2SF, V2SF, INT)) 197DEF_MIPS_FTYPE (4, (V2SF, V2SF, V2SF, V2SF, V2SF)) 198 199DEF_MIPS_FTYPE (2, (V2SI, V2SI, UQI)) 200DEF_MIPS_FTYPE (2, (V2SI, V2SI, V2SI)) 201DEF_MIPS_FTYPE (2, (V2SI, V4HI, V4HI)) 202 203DEF_MIPS_FTYPE (2, (V4HI, V2SI, V2SI)) 204DEF_MIPS_FTYPE (2, (V4HI, V4HI, UQI)) 205DEF_MIPS_FTYPE (2, (V4HI, V4HI, USI)) 206DEF_MIPS_FTYPE (2, (V4HI, V4HI, V4HI)) 207DEF_MIPS_FTYPE (3, (V4HI, V4HI, V4HI, UQI)) 208DEF_MIPS_FTYPE (3, (V4HI, V4HI, V4HI, USI)) 209 210DEF_MIPS_FTYPE (1, (V4QI, SI)) 211DEF_MIPS_FTYPE (2, (V4QI, V2HI, V2HI)) 212DEF_MIPS_FTYPE (1, (V4QI, V4QI)) 213DEF_MIPS_FTYPE (2, (V4QI, V4QI, SI)) 214DEF_MIPS_FTYPE (2, (V4QI, V4QI, V4QI)) 215 216DEF_MIPS_FTYPE (1, (V4SF, SF)) 217DEF_MIPS_FTYPE (1, (V4SF, UV4SI)) 218DEF_MIPS_FTYPE (2, (V4SF, V2DF, V2DF)) 219DEF_MIPS_FTYPE (1, (V4SF, V4SF)) 220DEF_MIPS_FTYPE (2, (V4SF, V4SF, V4SF)) 221DEF_MIPS_FTYPE (3, (V4SF, V4SF, V4SF, V4SF)) 222DEF_MIPS_FTYPE (2, (V4SF, V4SF, V4SI)) 223DEF_MIPS_FTYPE (1, (V4SF, V4SI)) 224DEF_MIPS_FTYPE (1, (V4SF, V8HI)) 225 226DEF_MIPS_FTYPE (2, (V4SI, CVPOINTER, SI)) 227DEF_MIPS_FTYPE (1, (V4SI, HI)) 228DEF_MIPS_FTYPE (1, (V4SI, SI)) 229DEF_MIPS_FTYPE (2, (V4SI, UV4SI, UQI)) 230DEF_MIPS_FTYPE (2, (V4SI, UV4SI, UV4SI)) 231DEF_MIPS_FTYPE (2, (V4SI, UV8HI, UV8HI)) 232DEF_MIPS_FTYPE (2, (V4SI, V2DF, V2DF)) 233DEF_MIPS_FTYPE (1, (V4SI, V4SF)) 234DEF_MIPS_FTYPE (2, (V4SI, V4SF, V4SF)) 235DEF_MIPS_FTYPE (1, (V4SI, V4SI)) 236DEF_MIPS_FTYPE (2, (V4SI, V4SI, QI)) 237DEF_MIPS_FTYPE (2, (V4SI, V4SI, SI)) 238DEF_MIPS_FTYPE (2, (V4SI, V4SI, UQI)) 239DEF_MIPS_FTYPE (3, (V4SI, V4SI, UQI, SI)) 240DEF_MIPS_FTYPE (3, (V4SI, V4SI, UQI, V4SI)) 241DEF_MIPS_FTYPE (3, (V4SI, V4SI, UV8HI, UV8HI)) 242DEF_MIPS_FTYPE (2, (V4SI, V4SI, V4SI)) 243DEF_MIPS_FTYPE (3, (V4SI, V4SI, V4SI, SI)) 244DEF_MIPS_FTYPE (3, (V4SI, V4SI, V4SI, UQI)) 245DEF_MIPS_FTYPE (3, (V4SI, V4SI, V4SI, V4SI)) 246DEF_MIPS_FTYPE (3, (V4SI, V4SI, V8HI, V8HI)) 247DEF_MIPS_FTYPE (2, (V4SI, V8HI, V8HI)) 248 249DEF_MIPS_FTYPE (2, (V8HI, CVPOINTER, SI)) 250DEF_MIPS_FTYPE (1, (V8HI, HI)) 251DEF_MIPS_FTYPE (1, (V8HI, SI)) 252DEF_MIPS_FTYPE (2, (V8HI, UV16QI, UV16QI)) 253DEF_MIPS_FTYPE (2, (V8HI, UV8HI, UQI)) 254DEF_MIPS_FTYPE (2, (V8HI, UV8HI, UV8HI)) 255DEF_MIPS_FTYPE (2, (V8HI, V16QI, V16QI)) 256DEF_MIPS_FTYPE (2, (V8HI, V4SF, V4SF)) 257DEF_MIPS_FTYPE (1, (V8HI, V8HI)) 258DEF_MIPS_FTYPE (2, (V8HI, V8HI, QI)) 259DEF_MIPS_FTYPE (2, (V8HI, V8HI, SI)) 260DEF_MIPS_FTYPE (3, (V8HI, V8HI, SI, UQI)) 261DEF_MIPS_FTYPE (2, (V8HI, V8HI, UQI)) 262DEF_MIPS_FTYPE (3, (V8HI, V8HI, UQI, SI)) 263DEF_MIPS_FTYPE (3, (V8HI, V8HI, UQI, V8HI)) 264DEF_MIPS_FTYPE (3, (V8HI, V8HI, UV16QI, UV16QI)) 265DEF_MIPS_FTYPE (3, (V8HI, V8HI, V16QI, V16QI)) 266DEF_MIPS_FTYPE (2, (V8HI, V8HI, V8HI)) 267DEF_MIPS_FTYPE (3, (V8HI, V8HI, V8HI, SI)) 268DEF_MIPS_FTYPE (3, (V8HI, V8HI, V8HI, UQI)) 269DEF_MIPS_FTYPE (3, (V8HI, V8HI, V8HI, V8HI)) 270 271DEF_MIPS_FTYPE (2, (V8QI, V4HI, V4HI)) 272DEF_MIPS_FTYPE (1, (V8QI, V8QI)) 273DEF_MIPS_FTYPE (2, (V8QI, V8QI, V8QI)) 274 275DEF_MIPS_FTYPE (2, (VOID, SI, CVPOINTER)) 276DEF_MIPS_FTYPE (2, (VOID, SI, SI)) 277DEF_MIPS_FTYPE (2, (VOID, UQI, SI)) 278DEF_MIPS_FTYPE (1, (VOID, USI)) 279DEF_MIPS_FTYPE (3, (VOID, V16QI, CVPOINTER, SI)) 280DEF_MIPS_FTYPE (3, (VOID, V2DF, POINTER, SI)) 281DEF_MIPS_FTYPE (3, (VOID, V2DI, CVPOINTER, SI)) 282DEF_MIPS_FTYPE (2, (VOID, V2HI, V2HI)) 283DEF_MIPS_FTYPE (2, (VOID, V4QI, V4QI)) 284DEF_MIPS_FTYPE (3, (VOID, V4SF, POINTER, SI)) 285DEF_MIPS_FTYPE (3, (VOID, V4SI, CVPOINTER, SI)) 286DEF_MIPS_FTYPE (3, (VOID, V8HI, CVPOINTER, SI)) 287