// Ensure we support the -mtune flag. // Default mtune should be generic. // RUN: %clang -target x86_64-unknown-unknown -c -### %s 2>&1 \ // RUN: | FileCheck %s -check-prefix=notune // notune: "-tune-cpu" "generic" // RUN: %clang -target x86_64-unknown-unknown -c -### %s -mtune=generic 2>&1 \ // RUN: | FileCheck %s -check-prefix=generic // generic: "-tune-cpu" "generic" // RUN: %clang -target x86_64-unknown-unknown -c -### %s -mtune=nocona 2>&1 \ // RUN: | FileCheck %s -check-prefix=nocona // nocona: "-tune-cpu" "nocona" // Unlike march we allow 32-bit only cpus with mtune. // RUN: %clang -target x86_64-unknown-unknown -c -### %s -mtune=i686 2>&1 \ // RUN: | FileCheck %s -check-prefix=i686 // i686: "-tune-cpu" "i686" // RUN: %clang -target x86_64-unknown-unknown -c -### %s -mtune=pentium4 2>&1 \ // RUN: | FileCheck %s -check-prefix=pentium4 // pentium4: "-tune-cpu" "pentium4" // RUN: %clang -target x86_64-unknown-unknown -c -### %s -mtune=athlon 2>&1 \ // RUN: | FileCheck %s -check-prefix=athlon // athlon: "-tune-cpu" "athlon" // Check interaction between march and mtune. // -march should remove default mtune generic. // RUN: %clang -target x86_64-unknown-unknown -c -### %s -march=core2 2>&1 \ // RUN: | FileCheck %s -check-prefix=marchcore2 // marchcore2: "-target-cpu" "core2" // marchcore2-NOT: "-tune-cpu" // -march should remove default mtune generic. // RUN: %clang -target x86_64-unknown-unknown -c -### %s -march=core2 -mtune=nehalem 2>&1 \ // RUN: | FileCheck %s -check-prefix=marchmtune // marchmtune: "-target-cpu" "core2" // mmarchmtune: "-tune-cpu" "nehalem" // RUN: not %clang %s -target x86_64 -E -mtune=x86-64-v2 2>&1 | FileCheck %s --check-prefix=INVALID // RUN: not %clang %s -target x86_64 -E -mtune=x86-64-v3 2>&1 | FileCheck %s --check-prefix=INVALID // RUN: not %clang %s -target x86_64 -E -mtune=x86-64-v4 2>&1 | FileCheck %s --check-prefix=INVALID // INVALID: error: unknown target CPU '{{.*}}'