1 | // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv5 %s | FileCheck %s -check-prefix CHECK-V5 |
2 | // CHECK-V5: #define __HEXAGON_ARCH__ 5 |
3 | // CHECK-V5: #define __HEXAGON_V5__ 1 |
4 | // CHECK-V5-NOT: #define __HVX_LENGTH__ |
5 | // CHECK-V5-NOT: #define __HVX__ 1 |
6 | // CHECK-V5: #define __hexagon__ 1 |
7 | |
8 | // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv55 %s | FileCheck %s -check-prefix CHECK-V55 |
9 | // CHECK-V55: #define __HEXAGON_ARCH__ 55 |
10 | // CHECK-V55: #define __HEXAGON_V55__ 1 |
11 | // CHECK-V55-NOT: #define __HVX_LENGTH__ |
12 | // CHECK-V55-NOT: #define __HVX__ 1 |
13 | // CHECK-V55: #define __hexagon__ 1 |
14 | |
15 | // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv60 %s | FileCheck %s -check-prefix CHECK-V60 |
16 | // CHECK-V60: #define __HEXAGON_ARCH__ 60 |
17 | // CHECK-V60: #define __HEXAGON_V60__ 1 |
18 | // CHECK-V60-NOT: #define __HVX_LENGTH__ |
19 | // CHECK-V60-NOT: #define __HVX__ 1 |
20 | // CHECK-V60: #define __hexagon__ 1 |
21 | |
22 | // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv62 %s | FileCheck %s -check-prefix CHECK-V62 |
23 | // CHECK-V62: #define __HEXAGON_ARCH__ 62 |
24 | // CHECK-V62: #define __HEXAGON_V62__ 1 |
25 | // CHECK-V62-NOT: #define __HVX_LENGTH__ |
26 | // CHECK-V62-NOT: #define __HVX__ 1 |
27 | // CHECK-V62: #define __hexagon__ 1 |
28 | |
29 | // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv65 %s | FileCheck %s -check-prefix CHECK-V65 |
30 | // CHECK-V65: #define __HEXAGON_ARCH__ 65 |
31 | // CHECK-V65: #define __HEXAGON_V65__ 1 |
32 | // CHECK-V65-NOT: #define __HVX_LENGTH__ |
33 | // CHECK-V65-NOT: #define __HVX__ 1 |
34 | // CHECK-V65: #define __hexagon__ 1 |
35 | |
36 | // The HVX flags are explicitly defined by the driver. |
37 | // For v60,v62,v65 - 64B mode is default |
38 | // For v66 and future archs - 128B is default |
39 | // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv60 \ |
40 | // RUN: -target-feature +hvxv60 -target-feature +hvx-length64b %s | FileCheck \ |
41 | // RUN: %s -check-prefix CHECK-V60HVX-64B |
42 | // CHECK-V60HVX-64B: #define __HEXAGON_ARCH__ 60 |
43 | // CHECK-V60HVX-64B: #define __HEXAGON_V60__ 1 |
44 | // CHECK-V60HVX-64B-NOT: #define __HVXDBL__ 1 |
45 | // CHECK-V60HVX-64B: #define __HVX_ARCH__ 60 |
46 | // CHECK-V60HVX-64B: #define __HVX_LENGTH__ 64 |
47 | // CHECK-V60HVX-64B: #define __HVX__ 1 |
48 | // CHECK-V60HVX-64B: #define __hexagon__ 1 |
49 | |
50 | // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv60 \ |
51 | // RUN: -target-feature +hvxv60 -target-feature +hvx-length128b %s | FileCheck \ |
52 | // RUN: %s -check-prefix CHECK-V60HVX-128B |
53 | // CHECK-V60HVX-128B: #define __HEXAGON_ARCH__ 60 |
54 | // CHECK-V60HVX-128B: #define __HEXAGON_V60__ 1 |
55 | // CHECK-V60HVX-128B: #define __HVXDBL__ 1 |
56 | // CHECK-V60HVX-128B: #define __HVX_ARCH__ 60 |
57 | // CHECK-V60HVX-128B: #define __HVX_LENGTH__ 128 |
58 | // CHECK-V60HVX-128B: #define __HVX__ 1 |
59 | // CHECK-V60HVX-128B: #define __hexagon__ 1 |
60 | |
61 | // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv66 \ |
62 | // RUN: -target-feature +hvxv66 -target-feature +hvx-length64b %s | FileCheck \ |
63 | // RUN: %s -check-prefix CHECK-V66HVX-64B |
64 | // CHECK-V66HVX-64B: #define __HEXAGON_ARCH__ 66 |
65 | // CHECK-V66HVX-64B: #define __HEXAGON_V66__ 1 |
66 | // CHECK-V66HVX-64B-NOT: #define __HVXDBL__ 1 |
67 | // CHECK-V66HVX-64B: #define __HVX_ARCH__ 66 |
68 | // CHECK-V66HVX-64B: #define __HVX_LENGTH__ 64 |
69 | // CHECK-V66HVX-64B: #define __HVX__ 1 |
70 | // CHECK-V66HVX-64B: #define __hexagon__ 1 |
71 | |
72 | // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv66 \ |
73 | // RUN: -target-feature +hvxv66 -target-feature +hvx-length128b %s | FileCheck \ |
74 | // RUN: %s -check-prefix CHECK-V66HVX-128B |
75 | // CHECK-V66HVX-128B: #define __HEXAGON_ARCH__ 66 |
76 | // CHECK-V66HVX-128B: #define __HEXAGON_V66__ 1 |
77 | // CHECK-V66HVX-128B: #define __HVXDBL__ 1 |
78 | // CHECK-V66HVX-128B: #define __HVX_ARCH__ 66 |
79 | // CHECK-V66HVX-128B: #define __HVX_LENGTH__ 128 |
80 | // CHECK-V66HVX-128B: #define __HVX__ 1 |
81 | // CHECK-V66HVX-128B: #define __hexagon__ 1 |
82 | |