bool Enabled) const {
if (Name == "soft-float" || Name == "soft-float-abi" ||
Name == "vfp2" || Name == "vfp3" || Name == "vfp4" || Name == "neon" ||
- Name == "d16" || Name == "neonfp") {
+ Name == "d16" || Name == "neonfp" || Name == "v8fp") {
Features[Name] = Enabled;
} else
return false;
CmdArgs.push_back("+vfp3");
CmdArgs.push_back("-target-feature");
CmdArgs.push_back("-neon");
+ } else if (FPU == "fp-armv8") {
+ CmdArgs.push_back("-target-feature");
+ CmdArgs.push_back("+v8fp");
+ } else if (FPU == "neon-fp-armv8") {
+ CmdArgs.push_back("-target-feature");
+ CmdArgs.push_back("+v8fp");
+ CmdArgs.push_back("-target-feature");
+ CmdArgs.push_back("+neon");
} else if (FPU == "neon") {
CmdArgs.push_back("-target-feature");
CmdArgs.push_back("+neon");
// RUN: %clang -target arm-linux-eabi -msoft-float %s -### -o %t.o 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-SOFT-FLOAT %s
// CHECK-SOFT-FLOAT: "-target-feature" "-neon"
+
+// RUN: %clang -target armv8-linux-gnueabihf -mfpu=fp-armv8 %s -### 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-FP-ARMV8 %s
+// CHECK-FP-ARMV8: "-target-feature" "+v8fp"
+
+// RUN: %clang -target armv8-linux-gnueabihf -mfpu=neon-fp-armv8 %s -### 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-NEON-FP-ARMV8 %s
+// CHECK-NEON-FP-ARMV8: "-target-feature" "+v8fp"
+// CHECK-NEON-FP-ARMV8: "-target-feature" "+neon"