| // RUN: %clang -target arm-arm-none-eabi -march=armv8.1-m.main+dsp -### %s 2> %t |
| // RUN: FileCheck --check-prefix=CHECK-DSP < %t %s |
| // CHECK-DSP: "-target-feature" "+dsp" |
| |
| // RUN: %clang -target arm-arm-none-eabi -march=armv8.1-m.main+fp -### %s 2> %t |
| // RUN: FileCheck --check-prefix=CHECK-FP < %t %s |
| // CHECK-FP-DAG: "-target-feature" "+fp-armv8d16sp" |
| // CHECK-FP-NOT: "-target-feature" "+fp-armv8d16" |
| // CHECK-FP-NOT: "-target-feature" "+fp-armv8sp" |
| // CHECK-FP-NOT: "-target-feature" "+fp-armv8" |
| // CHECK-FP-NOT: "-target-feature" "+fp64" |
| // CHECK-FP-NOT: "-target-feature" "+d32" |
| // CHECK-FP-DAG: "-target-feature" "+fullfp16" |
| |
| // RUN: %clang -target arm-arm-none-eabi -march=armv8.1-m.main+nofp -### %s 2> %t |
| // RUN: FileCheck --check-prefix=CHECK-NOFP < %t %s |
| // CHECK-NOFP-DAG: "-target-feature" "-vfp2" |
| // CHECK-NOFP-DAG: "-target-feature" "-vfp3" |
| // CHECK-NOFP-DAG: "-target-feature" "-fp16" |
| // CHECK-NOFP-DAG: "-target-feature" "-vfp4" |
| // CHECK-NOFP-DAG: "-target-feature" "-fp-armv8" |
| // CHECK-NOFP-DAG: "-target-feature" "-fp64" |
| // CHECK-NOFP-DAG: "-target-feature" "-d32" |
| // CHECK-NOFP-DAG: "-target-feature" "-neon" |
| // CHECK-NOFP-DAG: "-target-feature" "-crypto" |
| |
| // RUN: %clang -target arm-arm-none-eabi -march=armv8.1-m.main+fp.dp -### %s 2> %t |
| // RUN: FileCheck --check-prefix=CHECK-FPDP < %t %s |
| // CHECK-FPDP-NOT: "-target-feature" "+fp-armv8sp" |
| // CHECK-FPDP-DAG: "-target-feature" "+fp-armv8d16" |
| // CHECK-FPDP-NOT: "-target-feature" "+fp-armv8" |
| // CHECK-FPDP-DAG: "-target-feature" "+fullfp16" |
| // CHECK-FPDP-DAG: "-target-feature" "+fp64" |
| // CHECK-FPDP-NOT: "-target-feature" "+d32" |
| |
| // RUN: %clang -target arm-arm-none-eabi -march=armv8.1-m.main+nofp.dp -### %s 2> %t |
| // RUN: FileCheck --check-prefix=CHECK-NOFPDP < %t %s |
| // CHECK-NOFPDP-DAG: "-target-feature" "-fp64" |
| |
| // RUN: %clang -target arm-arm-none-eabi -march=armv8.1-m.main+mve -### %s 2> %t |
| // RUN: FileCheck --check-prefix=CHECK-MVE < %t %s |
| // CHECK-MVE-DAG: "-target-feature" "+mve" |
| |
| // RUN: %clang -target arm-arm-none-eabi -march=armv8.1-m.main+nomve -### %s 2> %t |
| // RUN: FileCheck --check-prefix=CHECK-NOMVE < %t %s |
| // CHECK-NOMVE-DAG: "-target-feature" "-mve" |
| |
| // RUN: %clang -target arm-arm-none-eabi -march=armv8.1-m.main+mve.fp -### %s 2> %t |
| // RUN: FileCheck --check-prefix=CHECK-MVEFP < %t %s |
| // CHECK-MVEFP-DAG: "-target-feature" "+mve.fp" |
| // CHECK-MVEFP-NOT: "-target-feature" "+fp64" |
| |
| // RUN: %clang -target arm-arm-none-eabi -march=armv8.1-m.main+nomve.fp -### %s 2> %t |
| // RUN: FileCheck --check-prefix=CHECK-NOMVEFP < %t %s |
| // CHECK-NOMVEFP: "-target-feature" "-mve.fp" |
| |
| // RUN: %clang -target arm-arm-none-eabi -march=armv8.1-m.main+mve.fp+fp.dp -### %s 2> %t |
| // RUN: FileCheck --check-prefix=CHECK-MVEFP_DP < %t %s |
| // CHECK-MVEFP_DP-DAG: "-target-feature" "+mve.fp" |
| // CHECK-MVEFP_DP-DAG: "-target-feature" "+fp64" |
| |
| double foo (double a) { return a; } |