243 lines · c
1// RUN: %clang -target arm-eabi -x c -E -dM %s -o - | FileCheck %s2// RUN: %clang -target thumb-eabi -x c -E -dM %s -o - | FileCheck %s3 4// CHECK-NOT: __ARM_64BIT_STATE5// CHECK-NOT: __ARM_ARCH_ISA_A646// CHECK-NOT: __ARM_BIG_ENDIAN7// CHECK: __ARM_32BIT_STATE 18// CHECK: __ARM_ACLE 2009 10// RUN: %clang -target armeb-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-BIGENDIAN11// RUN: %clang -target thumbeb-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-BIGENDIAN12 13// CHECK-BIGENDIAN: __ARM_BIG_ENDIAN 114 15// RUN: %clang -target armv7-none-linux-eabi -mno-unaligned-access -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-UNALIGNED16 17// CHECK-UNALIGNED-NOT: __ARM_FEATURE_UNALIGNED18 19// RUN: %clang -target arm-none-linux-eabi -march=armv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V420 21// CHECK-V4-NOT: __ARM_ARCH_ISA_THUMB22// CHECK-V4-NOT: __ARM_ARCH_PROFILE23// CHECK-V4-NOT: __ARM_FEATURE_CLZ24// CHECK-V4-NOT: __ARM_FEATURE_LDREX25// CHECK-V4-NOT: __ARM_FEATURE_UNALIGNED26// CHECK-V4-NOT: __ARM_FEATURE_DSP27// CHECK-V4-NOT: __ARM_FEATURE_SAT28// CHECK-V4-NOT: __ARM_FEATURE_QBIT29// CHECK-V4-NOT: __ARM_FEATURE_SIMD3230// CHECK-V4-NOT: __ARM_FEATURE_IDIV31// CHECK-V4: __ARM_ARCH 432// CHECK-V4: __ARM_ARCH_ISA_ARM 133 34// RUN: %clang -target arm-none-linux-eabi -march=armv4t -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V4T35 36// CHECK-V4T: __ARM_ARCH_ISA_THUMB 137 38// RUN: %clang -target arm-none-linux-eabi -march=armv5t -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V539 40// CHECK-V5-NOT: __ARM_ARCH_PROFILE41// CHECK-V5-NOT: __ARM_FEATURE_LDREX42// CHECK-V5-NOT: __ARM_FEATURE_UNALIGNED43// CHECK-V5-NOT: __ARM_FEATURE_DSP44// CHECK-V5-NOT: __ARM_FEATURE_SAT45// CHECK-V5-NOT: __ARM_FEATURE_QBIT46// CHECK-V5-NOT: __ARM_FEATURE_SIMD3247// CHECK-V5-NOT: __ARM_FEATURE_IDIV48// CHECK-V5: __ARM_ARCH 549// CHECK-V5: __ARM_ARCH_ISA_ARM 150// CHECK-V5: __ARM_ARCH_ISA_THUMB 151// CHECK-V5: __ARM_FEATURE_CLZ 152 53// RUN: %clang -target arm-none-linux-eabi -march=armv5te -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V5E54 55// CHECK-V5E: __ARM_FEATURE_DSP 156// CHECK-V5E: __ARM_FEATURE_QBIT 157 58// RUN: %clang -target armv6-none-netbsd-eabi -mcpu=arm1136jf-s -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V659 60// CHECK-V6-NOT: __ARM_ARCH_PROFILE61// CHECK-V6-NOT: __ARM_FEATURE_IDIV62// CHECK-V6: __ARM_ARCH 663// CHECK-V6: __ARM_ARCH_ISA_ARM 164// CHECK-V6: __ARM_ARCH_ISA_THUMB 165// CHECK-V6: __ARM_FEATURE_CLZ 166// CHECK-V6: __ARM_FEATURE_DSP 167// CHECK-V6: __ARM_FEATURE_LDREX 0x468// CHECK-V6: __ARM_FEATURE_QBIT 169// CHECK-V6: __ARM_FEATURE_SAT 170// CHECK-V6: __ARM_FEATURE_SIMD32 171// CHECK-V6: __ARM_FEATURE_UNALIGNED 172 73// RUN: %clang -target arm-none-linux-eabi -march=armv6m -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V6M74 75// CHECK-V6M-NOT: __ARM_ARCH_ISA_ARM76// CHECK-V6M-NOT: __ARM_FEATURE_CLZ77// CHECK-V6M-NOT: __ARM_FEATURE_LDREX78// CHECK-V6M-NOT: __ARM_FEATURE_UNALIGNED79// CHECK-V6M-NOT: __ARM_FEATURE_DSP80// CHECK-V6M-NOT: __ARM_FEATURE_QBIT81// CHECK-V6M-NOT: __ARM_FEATURE_SAT82// CHECK-V6M-NOT: __ARM_FEATURE_SIMD3283// CHECK-V6M-NOT: __ARM_FEATURE_IDIV84// CHECK-V6M: __ARM_ARCH 685// CHECK-V6M: __ARM_ARCH_ISA_THUMB 186// CHECK-V6M: __ARM_ARCH_PROFILE 'M'87 88// RUN: %clang -target arm-none-linux-eabi -march=armv6t2 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V6T289 90// CHECK-V6T2: __ARM_ARCH_ISA_THUMB 291 92// RUN: %clang -target arm-none-linux-eabi -march=armv6k -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V6K93 94// CHECK-V6K: __ARM_FEATURE_LDREX 0xf95 96// RUN: %clang -target arm-none-linux-eabi -march=armv6kz -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V6KZ97 98// CHECK-V6KZ: __ARM_FEATURE_LDREX 0xf99 100// RUN: %clang -target arm-none-linux-eabi -march=armv7-a -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A101 102// CHECK-V7A: __ARM_ARCH 7103// CHECK-V7A: __ARM_ARCH_ISA_ARM 1104// CHECK-V7A: __ARM_ARCH_ISA_THUMB 2105// CHECK-V7A: __ARM_ARCH_PROFILE 'A'106// CHECK-V7A: __ARM_FEATURE_CLZ 1107// CHECK-V7A: __ARM_FEATURE_DSP 1108// CHECK-V7A: __ARM_FEATURE_LDREX 0xf109// CHECK-V7A: __ARM_FEATURE_QBIT 1110// CHECK-V7A: __ARM_FEATURE_SAT 1111// CHECK-V7A: __ARM_FEATURE_SIMD32 1112// CHECK-V7A: __ARM_FEATURE_UNALIGNED 1113 114// RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a7 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-IDIV115// RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a12 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-IDIV116// RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a15 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-IDIV117// RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a17 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-IDIV118 119// CHECK-V7A-IDIV: __ARM_FEATURE_IDIV 1120 121// RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a5 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-NO-IDIV122// RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a8 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-NO-IDIV123// RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-a9 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A-NO-IDIV124 125// CHECK-V7A-NO-IDIV-NOT: __ARM_FEATURE_IDIV126 127// RUN: %clang -target arm-none-linux-eabi -march=armv7ve -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7VE128 129// CHECK-V7VE: __ARM_ARCH 7130// CHECK-V7VE: __ARM_ARCH_ISA_ARM 1131// CHECK-V7VE: __ARM_ARCH_ISA_THUMB 2132// CHECK-V7VE: __ARM_ARCH_PROFILE 'A'133// CHECK-V7VE: __ARM_FEATURE_CLZ 1134// CHECK-V7VE: __ARM_FEATURE_DSP 1135// CHECK-V7VE: __ARM_FEATURE_IDIV 1136// CHECK-V7VE: __ARM_FEATURE_LDREX 0xf137// CHECK-V7VE: __ARM_FEATURE_QBIT 1138// CHECK-V7VE: __ARM_FEATURE_SAT 1139// CHECK-V7VE: __ARM_FEATURE_SIMD32 1140// CHECK-V7VE: __ARM_FEATURE_UNALIGNED 1141 142// RUN: %clang -target arm-none-linux-eabi -march=armv7-r -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R143 144// CHECK-V7R: __ARM_ARCH 7145// CHECK-V7R: __ARM_ARCH_ISA_ARM 1146// CHECK-V7R: __ARM_ARCH_ISA_THUMB 2147// CHECK-V7R: __ARM_ARCH_PROFILE 'R'148// CHECK-V7R: __ARM_FEATURE_CLZ 1149// CHECK-V7R: __ARM_FEATURE_DSP 1150// CHECK-V7R: __ARM_FEATURE_LDREX 0xf151// CHECK-V7R: __ARM_FEATURE_QBIT 1152// CHECK-V7R: __ARM_FEATURE_SAT 1153// CHECK-V7R: __ARM_FEATURE_SIMD32 1154// CHECK-V7R: __ARM_FEATURE_UNALIGNED 1155 156// RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-r4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R-NO-IDIV157 158// CHECK-V7R-NO-IDIV-NOT: __ARM_FEATURE_IDIV159 160// RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-r5 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R-IDIV161// RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-r7 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R-IDIV162// RUN: %clang -target arm-none-linux-eabi -mcpu=cortex-r8 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R-IDIV163 164// CHECK-V7R-IDIV: __ARM_FEATURE_IDIV 1165 166// RUN: %clang -target arm-none-linux-eabi -march=armv7-m -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7M167 168// CHECK-V7M-NOT: __ARM_ARCH_ISA_ARM169// CHECK-V7M-NOT: __ARM_FEATURE_DSP170// CHECK-V7M-NOT: __ARM_FEATURE_SIMD32171// CHECK-V7M: __ARM_ARCH 7172// CHECK-V7M: __ARM_ARCH_ISA_THUMB 2173// CHECK-V7M: __ARM_ARCH_PROFILE 'M'174// CHECK-V7M: __ARM_FEATURE_CLZ 1175// CHECK-V7M: __ARM_FEATURE_IDIV 1176// CHECK-V7M: __ARM_FEATURE_LDREX 0x7177// CHECK-V7M: __ARM_FEATURE_QBIT 1178// CHECK-V7M: __ARM_FEATURE_SAT 1179// CHECK-V7M: __ARM_FEATURE_UNALIGNED 1180 181// RUN: %clang -target arm-none-linux-eabi -march=armv7-m -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-M-NODSP182// RUN: %clang -target arm-none-linux-eabi -march=armv7e-m -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-M-DSP183// RUN: %clang --target=arm-arm-none-eabi -mcpu=cortex-m3 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-M-NODSP184// RUN: %clang --target=arm-arm-none-eabi -mcpu=cortex-m4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-M-DSP185// RUN: %clang --target=arm-arm-none-eabi -mcpu=cortex-m7 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-M-DSP186// RUN: %clang --target=arm-arm-none-eabi -mcpu=cortex-m0plus -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-M-NODSP187// RUN: %clang --target=arm-arm-none-eabi -mcpu=cortex-m23 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-M-NODSP188// RUN: %clang --target=arm-arm-none-eabi -mcpu=cortex-m33 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-M-DSP189// RUN: %clang --target=arm-arm-none-eabi -march=armv8m.main+dsp -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-M-DSP190 191// RUN: %clang -target arm-none-linux-eabi -march=armv8m.base -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V8M-BASE192 193// CHECK-V8M-BASE-NOT: __ARM_ARCH_ISA_ARM194// CHECK-V8M-BASE-NOT: __ARM_FEATURE_DSP195// CHECK-V8M-BASE-NOT: __ARM_FEATURE_SIMD32196// CHECK-V8M-BASE: __ARM_ARCH 8197// CHECK-V8M-BASE: __ARM_ARCH_ISA_THUMB 1198// CHECK-V8M-BASE: __ARM_ARCH_PROFILE 'M'199// CHECK-V8M-BASE: __ARM_FEATURE_CLZ 1200// CHECK-V8M-BASE: __ARM_FEATURE_IDIV 1201// CHECK-V8M-BASE: __ARM_FEATURE_LDREX 0x7202// CHECK-V8M-BASE: __ARM_FEATURE_QBIT 1203// CHECK-V8M-BASE: __ARM_FEATURE_SAT204// CHECK-V8M-BASE-NOT: __ARM_FEATURE_UNALIGNED205 206// RUN: %clang -target arm-none-linux-eabi -march=armv8m.main -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V8M-MAIN207// RUN: %clang -target arm-none-linux-eabi -march=armv8.1m.main -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V8M-MAIN208 209// CHECK-V8M-MAIN-NOT: __ARM_ARCH_ISA_ARM210// CHECK-V8M-MAIN-NOT: __ARM_FEATURE_DSP211// CHECK-V8M-MAIN-NOT: __ARM_FEATURE_SIMD32212// CHECK-V8M-MAIN: __ARM_ARCH 8213// CHECK-V8M-MAIN: __ARM_ARCH_ISA_THUMB 2214// CHECK-V8M-MAIN: __ARM_ARCH_PROFILE 'M'215// CHECK-V8M-MAIN: __ARM_FEATURE_CLZ 1216// CHECK-V8M-MAIN: __ARM_FEATURE_IDIV 1217// CHECK-V8M-MAIN: __ARM_FEATURE_LDREX 0x7218// CHECK-V8M-MAIN: __ARM_FEATURE_QBIT 1219// CHECK-V8M-MAIN: __ARM_FEATURE_SAT 1220// CHECK-V8M-MAIN: __ARM_FEATURE_UNALIGNED 1221 222// CHECK-M-DSP: __ARM_FEATURE_DSP 1223// CHECK-M-DSP: __ARM_FEATURE_SIMD32 1224 225// CHECK-M-NODSP-NOT: __ARM_FEATURE_DSP 1226// CHECK-M-NODSP-NOT: __ARM_FEATURE_SIMD32 1227 228// RUN: %clang -target arm-none-linux-eabi -march=armv8-a -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V8A229 230// CHECK-V8A: __ARM_ARCH 8231// CHECK-V8A: __ARM_ARCH_ISA_ARM 1232// CHECK-V8A: __ARM_ARCH_ISA_THUMB 2233// CHECK-V8A: __ARM_ARCH_PROFILE 'A'234// CHECK-V8A: __ARM_FEATURE_CLZ 1235// CHECK-V8A: __ARM_FEATURE_DSP 1236// CHECK-V8A: __ARM_FEATURE_IDIV 1237// CHECK-V8A: __ARM_FEATURE_LDREX 0xf238// CHECK-V8A: __ARM_FEATURE_QBIT 1239// CHECK-V8A: __ARM_FEATURE_SAT 1240// CHECK-V8A: __ARM_FEATURE_SIMD32 1241// CHECK-V8A: __ARM_FEATURE_UNALIGNED 1242 243