[AArch64] Properly handle mvn-register and add EON+shift pattern and cost appropriately
[official-gcc.git] / gcc / mode-classes.def
blobeaf5fb04bce24f24b146d5ba22cc4ad2800fd088
1 /* Machine mode class definitions for GCC.
2 Copyright (C) 2003-2015 Free Software Foundation, Inc.
4 This file is part of GCC.
6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free
8 Software Foundation; either version 3, or (at your option) any later
9 version.
11 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 for more details.
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/>. */
20 #define MODE_CLASSES \
21 DEF_MODE_CLASS (MODE_RANDOM), /* other */ \
22 DEF_MODE_CLASS (MODE_CC), /* condition code in a register */ \
23 DEF_MODE_CLASS (MODE_INT), /* integer */ \
24 DEF_MODE_CLASS (MODE_PARTIAL_INT), /* integer with padding bits */ \
25 DEF_MODE_CLASS (MODE_POINTER_BOUNDS), /* bounds */ \
26 DEF_MODE_CLASS (MODE_FRACT), /* signed fractional number */ \
27 DEF_MODE_CLASS (MODE_UFRACT), /* unsigned fractional number */ \
28 DEF_MODE_CLASS (MODE_ACCUM), /* signed accumulator */ \
29 DEF_MODE_CLASS (MODE_UACCUM), /* unsigned accumulator */ \
30 DEF_MODE_CLASS (MODE_FLOAT), /* floating point */ \
31 DEF_MODE_CLASS (MODE_DECIMAL_FLOAT), /* decimal floating point */ \
32 DEF_MODE_CLASS (MODE_COMPLEX_INT), /* complex numbers */ \
33 DEF_MODE_CLASS (MODE_COMPLEX_FLOAT), \
34 DEF_MODE_CLASS (MODE_VECTOR_INT), /* SIMD vectors */ \
35 DEF_MODE_CLASS (MODE_VECTOR_FRACT), /* SIMD vectors */ \
36 DEF_MODE_CLASS (MODE_VECTOR_UFRACT), /* SIMD vectors */ \
37 DEF_MODE_CLASS (MODE_VECTOR_ACCUM), /* SIMD vectors */ \
38 DEF_MODE_CLASS (MODE_VECTOR_UACCUM), /* SIMD vectors */ \
39 DEF_MODE_CLASS (MODE_VECTOR_FLOAT)