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