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