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 // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv66 %s | FileCheck %s -check-prefix CHECK-V66 37 // CHECK-V66: #define __HEXAGON_ARCH__ 66 38 // CHECK-V66: #define __HEXAGON_V66__ 1 39 // CHECK-V66-NOT: #define __HVX_LENGTH__ 40 // CHECK-V66-NOT: #define __HVX__ 1 41 // CHECK-V66: #define __hexagon__ 1 42 43 // The HVX flags are explicitly defined by the driver. 44 // For v60,v62,v65 - 64B mode is default 45 // For v66 and future archs - 128B is default 46 // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv60 \ 47 // RUN: -target-feature +hvxv60 -target-feature +hvx-length64b %s | FileCheck \ 48 // RUN: %s -check-prefix CHECK-V60HVX-64B 49 // CHECK-V60HVX-64B: #define __HEXAGON_ARCH__ 60 50 // CHECK-V60HVX-64B: #define __HEXAGON_V60__ 1 51 // CHECK-V60HVX-64B-NOT: #define __HVXDBL__ 1 52 // CHECK-V60HVX-64B: #define __HVX_ARCH__ 60 53 // CHECK-V60HVX-64B: #define __HVX_LENGTH__ 64 54 // CHECK-V60HVX-64B: #define __HVX__ 1 55 // CHECK-V60HVX-64B: #define __hexagon__ 1 56 57 // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv60 \ 58 // RUN: -target-feature +hvxv60 -target-feature +hvx-length128b %s | FileCheck \ 59 // RUN: %s -check-prefix CHECK-V60HVX-128B 60 // CHECK-V60HVX-128B: #define __HEXAGON_ARCH__ 60 61 // CHECK-V60HVX-128B: #define __HEXAGON_V60__ 1 62 // CHECK-V60HVX-128B: #define __HVXDBL__ 1 63 // CHECK-V60HVX-128B: #define __HVX_ARCH__ 60 64 // CHECK-V60HVX-128B: #define __HVX_LENGTH__ 128 65 // CHECK-V60HVX-128B: #define __HVX__ 1 66 // CHECK-V60HVX-128B: #define __hexagon__ 1 67 68 // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv66 \ 69 // RUN: -target-feature +hvxv66 -target-feature +hvx-length64b %s | FileCheck \ 70 // RUN: %s -check-prefix CHECK-V66HVX-64B 71 // CHECK-V66HVX-64B: #define __HEXAGON_ARCH__ 66 72 // CHECK-V66HVX-64B: #define __HEXAGON_V66__ 1 73 // CHECK-V66HVX-64B-NOT: #define __HVXDBL__ 1 74 // CHECK-V66HVX-64B: #define __HVX_ARCH__ 66 75 // CHECK-V66HVX-64B: #define __HVX_LENGTH__ 64 76 // CHECK-V66HVX-64B: #define __HVX__ 1 77 // CHECK-V66HVX-64B: #define __hexagon__ 1 78 79 // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv66 \ 80 // RUN: -target-feature +hvxv66 -target-feature +hvx-length128b %s | FileCheck \ 81 // RUN: %s -check-prefix CHECK-V66HVX-128B 82 // CHECK-V66HVX-128B: #define __HEXAGON_ARCH__ 66 83 // CHECK-V66HVX-128B: #define __HEXAGON_V66__ 1 84 // CHECK-V66HVX-128B: #define __HVXDBL__ 1 85 // CHECK-V66HVX-128B: #define __HVX_ARCH__ 66 86 // CHECK-V66HVX-128B: #define __HVX_LENGTH__ 128 87 // CHECK-V66HVX-128B: #define __HVX__ 1 88 // CHECK-V66HVX-128B: #define __hexagon__ 1 89 90 // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv67 \ 91 // RUN: -target-feature +hvxv67 -target-feature +hvx-length128b %s | FileCheck \ 92 // RUN: %s -check-prefix CHECK-V67HVX-128B 93 // CHECK-V67HVX-128B: #define __HEXAGON_ARCH__ 67 94 // CHECK-V67HVX-128B: #define __HEXAGON_V67__ 1 95 // CHECK-V67HVX-128B: #define __HVX_ARCH__ 67 96 // CHECK-V67HVX-128B: #define __HVX_LENGTH__ 128 97 // CHECK-V67HVX-128B: #define __HVX__ 1 98 // CHECK-V67HVX-128B: #define __hexagon__ 1 99 100 // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv67 \ 101 // RUN: -target-feature +hvxv67 -target-feature +hvx-length128b %s | FileCheck \ 102 // RUN: %s -check-prefix CHECK-ELF 103 // CHECK-ELF: #define __ELF__ 1 104 105 // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-linux-musl \ 106 // RUN: -target-cpu hexagonv67 -target-feature +hvxv67 \ 107 // RUN: -target-feature +hvx-length128b %s | FileCheck \ 108 // RUN: %s -check-prefix CHECK-LINUX 109 // CHECK-LINUX: #define __gnu_linux__ 1 110 // CHECK-LINUX: #define __linux 1 111 // CHECK-LINUX: #define __linux__ 1 112 // CHECK-LINUX: #define __unix 1 113 // CHECK-LINUX: #define __unix__ 1 114 // CHECK-LINUX: #define linux 1 115 // CHECK-LINUX: #define unix 1 116 117 // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-linux-musl \ 118 // RUN: -target-cpu hexagonv67 -target-feature +hvxv67 \ 119 // RUN: -target-feature +hvx-length128b %s | FileCheck \ 120 // RUN: %s -check-prefix CHECK-ATOMIC 121 // CHECK-ATOMIC: #define __CLANG_ATOMIC_BOOL_LOCK_FREE 2 122 // CHECK-ATOMIC: #define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2 123 // CHECK-ATOMIC: #define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2 124 // CHECK-ATOMIC: #define __CLANG_ATOMIC_CHAR_LOCK_FREE 2 125 // CHECK-ATOMIC: #define __CLANG_ATOMIC_INT_LOCK_FREE 2 126 // CHECK-ATOMIC: #define __CLANG_ATOMIC_LLONG_LOCK_FREE 2 127 // CHECK-ATOMIC: #define __CLANG_ATOMIC_LONG_LOCK_FREE 2 128 // CHECK-ATOMIC: #define __CLANG_ATOMIC_POINTER_LOCK_FREE 2 129 // CHECK-ATOMIC: #define __CLANG_ATOMIC_SHORT_LOCK_FREE 2 130 // CHECK-ATOMIC: #define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2 131