1 // RUN: %clang -print-multi-flags-experimental --target=aarch64-linux -fc++-abi=itanium -fsanitize=address | FileCheck --check-prefix=CHECK-LINUX %s
2 // CHECK-LINUX: --target=aarch64-unknown-linux
4 // RUN: %clang -print-multi-flags-experimental --target=aarch64-fuchsia -fsanitize=hwaddress | FileCheck --check-prefix=CHECK-FUCHSIA %s
5 // CHECK-FUCHSIA: --target=aarch64-unknown-fuchsia
7 // RUN: %clang -print-multi-flags-experimental --target=arm-none-eabi -mfloat-abi=soft -fno-exceptions -fno-rtti | FileCheck --check-prefix=CHECK-ARMV4T %s
8 // CHECK-ARMV4T: --target=armv4t-none-unknown-eabi
9 // CHECK-ARMV4T: -mfloat-abi=soft
10 // CHECK-ARMV4T: -mfpu=none
12 // RUN: %clang -print-multi-flags-experimental --target=armv7em-none-eabi -mfloat-abi=softfp | FileCheck --check-prefix=CHECK-SOFTFP %s
13 // CHECK-SOFTFP: --target=thumbv7em-none-unknown-eabi
14 // CHECK-SOFTFP: -mfloat-abi=softfp
15 // CHECK-SOFTFP: -mfpu=fpv4-sp-d16
17 // RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -march=armv7em -mfpu=fpv5-d16 | FileCheck --check-prefix=CHECK-HARD %s
18 // CHECK-HARD: --target=thumbv7em-none-unknown-eabihf
19 // CHECK-HARD: -mfloat-abi=hard
20 // CHECK-HARD: -mfpu=fpv5-d16
22 // RUN: %clang -print-multi-flags-experimental --target=arm-none-eabi -mfloat-abi=soft -march=armv8-m.main+nofp | FileCheck --check-prefix=CHECK-V8MMAIN-NOFP %s
23 // CHECK-V8MMAIN-NOFP: --target=thumbv8m.main-none-unknown-eabi
24 // CHECK-V8MMAIN-NOFP: -mfloat-abi=soft
25 // CHECK-V8MMAIN-NOFP: -mfpu=none
27 // RUN: %clang -print-multi-flags-experimental --target=arm-none-eabi -mfloat-abi=hard -march=armv8.1m.main+mve.fp | FileCheck --check-prefix=CHECK-MVE %s
28 // CHECK-MVE: --target=thumbv8.1m.main-none-unknown-eabihf
29 // CHECK-MVE: -march=thumbv8.1m.main{{.*}}+mve{{.*}}+mve.fp{{.*}}
30 // CHECK-MVE: -mfloat-abi=hard
31 // CHECK-MVE: -mfpu=fp-armv8-fullfp16-sp-d16
33 // RUN: %clang -print-multi-flags-experimental --target=arm-none-eabi -march=armv8.1m.main+mve+nofp | FileCheck --check-prefix=CHECK-MVENOFP %s
34 // CHECK-MVENOFP: -march=thumbv8.1m.main{{.*}}+mve{{.*}}
35 // CHECK-MVENOFP-NOT: -march=thumbv8.1m.main{{.*}}+mve.fp{{.*}}
36 // CHECK-MVENOFP: -mfpu=none
38 // RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -march=armv8.1m.main+fp.dp | FileCheck --check-prefix=CHECK-V8_1_FP_DP %s
39 // CHECK-V8_1_FP_DP: -march=thumbv8.1m.main{{.*}}
40 // CHECK-V8_1_FP_DP: -mfloat-abi=hard
41 // CHECK-V8_1_FP_DP: -mfpu=fp-armv8-fullfp16-d16
43 // RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -march=armv8.1m.main+nofp+fp+nofp.dp | FileCheck --check-prefix=CHECK-V8_1_NO_FP_DP %s
44 // CHECK-V8_1_NO_FP_DP: -march=thumbv8.1m.main{{.*}}
45 // CHECK-V8_1_NO_FP_DP: -mfloat-abi=hard
46 // CHECK-V8_1_NO_FP_DP: -mfpu=fp-armv8-fullfp16-sp-d16
48 // RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -mcpu=cortex-m85+nofp.dp | FileCheck --check-prefix=CHECK-M85_NO_FP_DP %s
49 // CHECK-M85_NO_FP_DP: -march=thumbv8.1m.main{{.*}}
50 // CHECK-M85_NO_FP_DP: -mfloat-abi=hard
51 // CHECK-M85_NO_FP_DP: -mfpu=fp-armv8-fullfp16-sp-d16
53 // RUN: %clang -print-multi-flags-experimental --target=aarch64-none-elf -march=armv8-a+lse | FileCheck --check-prefix=CHECK-LSE %s
54 // CHECK-LSE: -march=aarch64{{.*}}+lse{{.*}}
56 // RUN: %clang -print-multi-flags-experimental --target=aarch64-none-elf -march=armv8.5-a+sve+sve2 | FileCheck --check-prefix=CHECK-SVE2 %s
57 // RUN: %clang -print-multi-flags-experimental --target=aarch64-none-elf -march=armv9-a | FileCheck --check-prefix=CHECK-SVE2 %s
58 // CHECK-SVE2: --target=aarch64-none-unknown-elf
59 // CHECK-SVE2: -march=aarch64{{.*}}+simd{{.*}}+sve{{.*}}+sve2{{.*}}