1 | //===-- PPCTypes.def - Metadata about PPC types -----------------*- C++ -*-===// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | // |
9 | // This file defines PPC types. |
10 | // Custom code should define one of these macros: |
11 | // |
12 | // PPC_VECTOR_TYPE(Name, Id, Size) - A PPC vector type of a given size |
13 | // (in bits). |
14 | // |
15 | // PPC_VECTOR_MMA_TYPE(Name, Id, Size) - A PPC MMA vector type of a given |
16 | // size (in bits). |
17 | // |
18 | // PPC_VECTOR_VSX_TYPE(Name, Id, Size) - A PPC VSX vector type of a given |
19 | // size (in bits). |
20 | // |
21 | //===----------------------------------------------------------------------===// |
22 | |
23 | #if defined(PPC_VECTOR_TYPE) |
24 | #define PPC_VECTOR_MMA_TYPE(Name, Id, Size) PPC_VECTOR_TYPE(Name, Id, Size) |
25 | #define PPC_VECTOR_VSX_TYPE(Name, Id, Size) PPC_VECTOR_TYPE(Name, Id, Size) |
26 | #elif defined(PPC_VECTOR_MMA_TYPE) |
27 | #define PPC_VECTOR_VSX_TYPE(Name, Id, Size) |
28 | #elif defined(PPC_VECTOR_VSX_TYPE) |
29 | #define PPC_VECTOR_MMA_TYPE(Name, Id, Size) |
30 | #endif |
31 | |
32 | |
33 | PPC_VECTOR_MMA_TYPE(__vector_quad, VectorQuad, 512) |
34 | PPC_VECTOR_VSX_TYPE(__vector_pair, VectorPair, 256) |
35 | |
36 | #undef PPC_VECTOR_MMA_TYPE |
37 | #undef PPC_VECTOR_VSX_TYPE |
38 | #undef PPC_VECTOR_TYPE |
39 | |