diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 083bc48d69ca3fdbaa775e294eeb971bbc7b6fd2..c48c061252b3c95c13bb49eed4a6b3f4cb2db6cd 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1441,6 +1441,8 @@ static void getAArch64TargetFeatures(const Driver &D, const ArgList &Args, // Honor -mfpu=. if (const Arg *A = Args.getLastArg(options::OPT_mfpu_EQ)) getAArch64FPUFeatures(D, A, Args, Features); + else + Features.push_back("+neon"); if (Args.getLastArg(options::OPT_mgeneral_regs_only)) { Features.push_back("-fp-armv8"); diff --git a/test/Driver/aarch64-mfpu.c b/test/Driver/aarch64-mfpu.c index b62a2e797c411b44f75bbbbf28d6ad8ee057d2a2..2e55c7fc29573c98248e993d38b323e9a0292d08 100644 --- a/test/Driver/aarch64-mfpu.c +++ b/test/Driver/aarch64-mfpu.c @@ -2,6 +2,8 @@ // RUN: %clang -target aarch64-linux-eabi -mfpu=neon %s -### -o %t.o 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-NEON %s +// RUN: %clang -target aarch64-linux-eabi %s -### -o %t.o 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-NEON %s // CHECK-NEON: "-target-feature" "+neon" // RUN: %clang -target aarch64-linux-eabi -mfpu=fp-armv8 %s -### -o %t.o 2>&1 \ diff --git a/test/Preprocessor/aarch64-target-features.c b/test/Preprocessor/aarch64-target-features.c index 9978f91e2605d08980ff095e165d2217aa65e22e..e487667ca54da708d20567f8722d4d4926cc32de 100644 --- a/test/Preprocessor/aarch64-target-features.c +++ b/test/Preprocessor/aarch64-target-features.c @@ -17,8 +17,8 @@ // CHECK: __ARM_FP16_FORMAT_IEEE 1 // CHECK-NOT: __ARM_FP_FAST 1 // CHECK: __ARM_FP_FENV_ROUNDING 1 -// CHECK-NOT: __ARM_NEON 1 -// CHECK-NOT: __ARM_NEON_FP 7 +// CHECK: __ARM_NEON 1 +// CHECK: __ARM_NEON_FP 7 // CHECK: __ARM_PCS_AAPCS64 1 // CHECK-NOT: __ARM_SIZEOF_MINIMAL_ENUM 1 // CHECK-NOT: __ARM_SIZEOF_WCHAR_T 2