xref: /aosp_15_r20/external/clang/test/Driver/arm-ias-Wa.s (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// Test that different values of -Wa,-mcpu/mfpu/march/mhwdiv pick correct ARM target-feature(s).
2*67e74705SXin Li// Complete tests about -mcpu/mfpu/march/mhwdiv on other files.
3*67e74705SXin Li
4*67e74705SXin Li// CHECK-DUP-CPU: warning: argument unused during compilation: '-mcpu=cortex-a8'
5*67e74705SXin Li// CHECK-DUP-FPU: warning: argument unused during compilation: '-mfpu=vfpv3'
6*67e74705SXin Li// CHECK-DUP-ARCH: warning: argument unused during compilation: '-march=armv7'
7*67e74705SXin Li// CHECK-DUP-HDIV: warning: argument unused during compilation: '-mhwdiv=arm'
8*67e74705SXin Li
9*67e74705SXin Li// CHECK: "cc1as"
10*67e74705SXin Li// ================================================================= CPU
11*67e74705SXin Li// RUN: %clang -target arm-linux-gnueabi -Wa,-mcpu=cortex-a15 -c %s -### 2>&1 \
12*67e74705SXin Li// RUN:   | FileCheck -check-prefix=CHECK-CPU %s
13*67e74705SXin Li// CHECK-CPU: "-target-cpu" "cortex-a15"
14*67e74705SXin Li
15*67e74705SXin Li// RUN: %clang -target arm -Wa,-mcpu=bogus -c %s -### 2>&1 \
16*67e74705SXin Li// RUN:   | FileCheck -check-prefix=CHECK-BOGUS-CPU %s
17*67e74705SXin Li// CHECK-BOGUS-CPU: error: {{.*}} does not support '-Wa,-mcpu=bogus'
18*67e74705SXin Li
19*67e74705SXin Li// RUN: %clang -target arm -mcpu=cortex-a8 -Wa,-mcpu=cortex-a15 -c %s -### 2>&1 \
20*67e74705SXin Li// RUN:   | FileCheck -check-prefix=CHECK-DUP-CPU %s
21*67e74705SXin Li// CHECK-DUP-CPU: "-target-cpu" "cortex-a15"
22*67e74705SXin Li
23*67e74705SXin Li// ================================================================= FPU
24*67e74705SXin Li// RUN: %clang -target arm-linux-eabi -Wa,-mfpu=neon -c %s -### 2>&1 \
25*67e74705SXin Li// RUN:   | FileCheck --check-prefix=CHECK-NEON %s
26*67e74705SXin Li// CHECK-NEON: "-target-feature" "+neon"
27*67e74705SXin Li
28*67e74705SXin Li// RUN: %clang -target arm-linux-eabi -Wa,-mfpu=bogus -c %s -### 2>&1 \
29*67e74705SXin Li// RUN:   | FileCheck --check-prefix=CHECK-BOGUS-FPU %s
30*67e74705SXin Li// CHECK-BOGUS-FPU: error: {{.*}} does not support '-Wa,-mfpu=bogus'
31*67e74705SXin Li
32*67e74705SXin Li// RUN: %clang -target arm-linux-eabi -mfpu=vfpv3 -Wa,-mfpu=neon -c %s -### 2>&1 \
33*67e74705SXin Li// RUN:   | FileCheck -check-prefix=CHECK-DUP-FPU %s
34*67e74705SXin Li// CHECK-DUP-FPU: "-target-feature" "+neon"
35*67e74705SXin Li
36*67e74705SXin Li// ================================================================= Arch
37*67e74705SXin Li// Arch validation only for now, in case we're passing to an external asm
38*67e74705SXin Li
39*67e74705SXin Li// RUN: %clang -target arm -Wa,-march=armbogusv6 -c %s -### 2>&1 \
40*67e74705SXin Li// RUN:   | FileCheck -check-prefix=CHECK-BOGUS-ARCH %s
41*67e74705SXin Li// CHECK-BOGUS-ARCH: error: {{.*}} does not support '-Wa,-march=armbogusv6'
42*67e74705SXin Li
43*67e74705SXin Li// RUN: %clang -target arm -march=armv7 -Wa,-march=armv6 -c %s -### 2>&1 \
44*67e74705SXin Li// RUN:   | FileCheck -check-prefix=CHECK-DUP-ARCH %s
45*67e74705SXin Li
46*67e74705SXin Li// ================================================================= HD Div
47*67e74705SXin Li// RUN: %clang -target arm -Wa,-mhwdiv=arm -c %s -### 2>&1 \
48*67e74705SXin Li// RUN:   | FileCheck --check-prefix=CHECK-ARM %s
49*67e74705SXin Li// CHECK-ARM: "-target-feature" "+hwdiv-arm"
50*67e74705SXin Li// CHECK-ARM: "-target-feature" "-hwdiv"
51*67e74705SXin Li
52*67e74705SXin Li// RUN: %clang -target arm -Wa,-mhwdiv=thumb -c %s -### 2>&1 \
53*67e74705SXin Li// RUN:   | FileCheck --check-prefix=CHECK-THUMB %s
54*67e74705SXin Li// CHECK-THUMB: "-target-feature" "-hwdiv-arm"
55*67e74705SXin Li// CHECK-THUMB: "-target-feature" "+hwdiv"
56*67e74705SXin Li
57*67e74705SXin Li// RUN: %clang -target arm -Wa,-mhwdiv=bogus -c %s -### 2>&1 \
58*67e74705SXin Li// RUN:   | FileCheck --check-prefix=CHECK-BOGUS-HDIV %s
59*67e74705SXin Li// CHECK-BOGUS-HDIV: error: {{.*}} does not support '-Wa,-mhwdiv=bogus'
60*67e74705SXin Li
61*67e74705SXin Li// RUN: %clang -target arm -mhwdiv=arm -Wa,-mhwdiv=thumb -c %s -### 2>&1 \
62*67e74705SXin Li// RUN:   | FileCheck --check-prefix=CHECK-DUP-HDIV %s
63*67e74705SXin Li// CHECK-DUP-HDIV: "-target-feature" "-hwdiv-arm"
64*67e74705SXin Li// CHECK-DUP-HDIV: "-target-feature" "+hwdiv"
65*67e74705SXin Li
66*67e74705SXin Li// ========================================================== Triple
67*67e74705SXin Li// RUN: %clang -target armv7a-none-eabi -c %s -### 2>&1 \
68*67e74705SXin Li// RUN: %clang -target x86_64-apple-darwin -arch armv7 -c %s -### 2>&1 \
69*67e74705SXin Li// RUN:   | FileCheck -check-prefix=CHECK-A-PROFILE %s
70*67e74705SXin Li// CHECK-A-PROFILE: "-triple" "armv7-{{.*}}"
71*67e74705SXin Li
72*67e74705SXin Li// RUN: %clang -target armv7r-none-eabi -c %s -### 2>&1 \
73*67e74705SXin Li// RUN:   | FileCheck -check-prefix=CHECK-R-PROFILE %s
74*67e74705SXin Li// CHECK-R-PROFILE: "-triple" "armv7r-none--eabi"
75*67e74705SXin Li
76*67e74705SXin Li// RUN: %clang -target armv7m-none-eabi -c %s -### 2>&1 \
77*67e74705SXin Li// RUN: %clang -target thumbv7m-none-eabi -c %s -### 2>&1 \
78*67e74705SXin Li// RUN: %clang -target x86_64-apple-darwin -arch armv7m -c %s -### 2>&1 \
79*67e74705SXin Li// RUN:   | FileCheck -check-prefix=CHECK-M-PROFILE %s
80*67e74705SXin Li// CHECK-M-PROFILE: "-triple" "thumbv7m-{{.*}}"
81*67e74705SXin Li
82