GCN back-end code
[official-gcc.git] / gcc / config / gcn / gcn-modes.def
blob6d73100c4f4f59019dc080d70ef29d15f5820c7f
1 /* Copyright (C) 2016-2019 Free Software Foundation, Inc.
3 This file is free software; you can redistribute it and/or modify it under
4 the terms of the GNU General Public License as published by the Free
5 Software Foundation; either version 3 of the License, or (at your option)
6 any later version.
8 This file is distributed in the hope that it will be useful, but WITHOUT
9 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
11 for more details.
13 You should have received a copy of the GNU General Public License
14 along with GCC; see the file COPYING3. If not see
15 <http://www.gnu.org/licenses/>. */
17 /* Half-precision floating point */
18 FLOAT_MODE (HF, 2, 0);
19 /* FIXME: No idea what format it is. */
20 ADJUST_FLOAT_FORMAT (HF, &ieee_half_format);
22 /* Native vector modes. */
23 VECTOR_MODE (INT, QI, 64); /* V64QI */
24 VECTOR_MODE (INT, HI, 64); /* V64HI */
25 VECTOR_MODE (INT, SI, 64); /* V64SI */
26 VECTOR_MODE (INT, DI, 64); /* V64DI */
27 VECTOR_MODE (INT, TI, 64); /* V64TI */
28 VECTOR_MODE (FLOAT, HF, 64); /* V64HF */
29 VECTOR_MODE (FLOAT, SF, 64); /* V64SF */
30 VECTOR_MODE (FLOAT, DF, 64); /* V64DF */
32 /* Vector units handle reads independently and thus no large alignment
33 needed. */
34 ADJUST_ALIGNMENT (V64QI, 1);
35 ADJUST_ALIGNMENT (V64HI, 2);
36 ADJUST_ALIGNMENT (V64SI, 4);
37 ADJUST_ALIGNMENT (V64DI, 8);
38 ADJUST_ALIGNMENT (V64TI, 16);
39 ADJUST_ALIGNMENT (V64HF, 2);
40 ADJUST_ALIGNMENT (V64SF, 4);
41 ADJUST_ALIGNMENT (V64DF, 8);