Index: lib/Basic/Targets.cpp =================================================================== --- lib/Basic/Targets.cpp +++ lib/Basic/Targets.cpp @@ -5063,6 +5063,8 @@ return "7M"; case llvm::ARM::AK_ARMV7EM: return "7EM"; + case llvm::ARM::AK_ARMV7VE: + return "7VE"; case llvm::ARM::AK_ARMV8A: return "8A"; case llvm::ARM::AK_ARMV8_1A: Index: test/Preprocessor/arm-acle-6.4.c =================================================================== --- test/Preprocessor/arm-acle-6.4.c +++ test/Preprocessor/arm-acle-6.4.c @@ -120,6 +120,21 @@ // CHECK-V7A-NO-IDIV-NOT: __ARM_FEATURE_IDIV +// RUN: %clang -target arm-none-linux-eabi -march=armv7ve -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7VE + +// CHECK-V7VE: __ARM_ARCH 7 +// CHECK-V7VE: __ARM_ARCH_ISA_ARM 1 +// CHECK-V7VE: __ARM_ARCH_ISA_THUMB 2 +// CHECK-V7VE: __ARM_ARCH_PROFILE 'A' +// CHECK-V7VE: __ARM_FEATURE_CLZ 1 +// CHECK-V7VE: __ARM_FEATURE_DSP 1 +// CHECK-V7VE: __ARM_FEATURE_IDIV 1 +// CHECK-V7VE: __ARM_FEATURE_LDREX 0xF +// CHECK-V7VE: __ARM_FEATURE_QBIT 1 +// CHECK-V7VE: __ARM_FEATURE_SAT 1 +// CHECK-V7VE: __ARM_FEATURE_SIMD32 1 +// CHECK-V7VE: __ARM_FEATURE_UNALIGNED 1 + // RUN: %clang -target arm-none-linux-eabi -march=armv7-r -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7R // CHECK-V7R: __ARM_ARCH 7 Index: test/Preprocessor/arm-acle-6.5.c =================================================================== --- test/Preprocessor/arm-acle-6.5.c +++ test/Preprocessor/arm-acle-6.5.c @@ -24,6 +24,7 @@ // RUN: %clang -target arm-eabi -mfpu=neon -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP // RUN: %clang -target armv6-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP // RUN: %clang -target armv7a-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP +// RUN: %clang -target armv7ve-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-SP-DP // CHECK-SP-DP: __ARM_FP 0xC @@ -51,6 +52,8 @@ // RUN: %clang -target armv7a-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA // RUN: %clang -target armv7a-eabi -mfpu=vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA +// RUN: %clang -target armv7ve-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA +// RUN: %clang -target armv7ve-eabi -mfpu=vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA // RUN: %clang -target armv7r-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-NO-FMA // RUN: %clang -target armv7r-eabi -mfpu=vfpv4 -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA // RUN: %clang -target armv7em-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-FMA Index: test/Preprocessor/arm-target-features.c =================================================================== --- test/Preprocessor/arm-target-features.c +++ test/Preprocessor/arm-target-features.c @@ -27,6 +27,13 @@ // CHECK-V7-NOT: __ARM_FEATURE_DIRECTED_ROUNDING // CHECK-V7: #define __ARM_FP 0xC +// RUN: %clang -target armv7ve-none-linux-gnu -x c -E -dM %s -o - | FileCheck -match-full-lines --check-prefix=CHECK-V7VE %s +// CHECK-V7VE: #define __ARMEL__ 1 +// CHECK-V7VE: #define __ARM_ARCH 7 +// CHECK-V7VE: #define __ARM_ARCH_7VE__ 1 +// CHECK-V7VE: #define __ARM_ARCH_EXT_IDIV__ 1 +// CHECK-V7VE: #define __ARM_FP 0xC + // RUN: %clang -target x86_64-apple-macosx10.10 -arch armv7s -x c -E -dM %s -o - | FileCheck -match-full-lines --check-prefix=CHECK-V7S %s // CHECK-V7S: #define __ARMEL__ 1 // CHECK-V7S: #define __ARM_ARCH 7