xref: /freebsd/contrib/llvm-project/clang/include/clang/Basic/PPCTypes.def (revision e8d8bef961a50d4dc22501cde4fb9fb0be1b2532)
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
33PPC_VECTOR_MMA_TYPE(__vector_quad, VectorQuad, 512)
34PPC_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