blob: d4f7fb585975bacb4472bdcfdc7decbab65b692f [file] [log] [blame]
Reid Klecknerfc31efe2014-07-12 00:40:59 +00001// Don't attempt slash switches on msys bash.
2// REQUIRES: shell-preserves-root
3// REQUIRES: x86-registered-target
4
5// We support -m32 and -m64. We support all x86 CPU feature flags in gcc's -m
6// flag space.
7// RUN: %clang_cl /Zs /WX -m32 -m64 -msse3 -msse4.1 -mavx -mno-avx \
Reid Klecknerc8604f62014-07-16 18:31:25 +00008// RUN: --target=i386-pc-win32 -### -- 2>&1 %s | FileCheck -check-prefix=MFLAGS %s
Reid Klecknerfc31efe2014-07-12 00:40:59 +00009// MFLAGS-NOT: argument unused during compilation
10
Artyom Skrobovee348112014-07-23 17:09:26 +000011// RUN: %clang_cl -m32 -arch:IA32 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=IA32 %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000012// IA32: "-target-cpu" "i386"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000013// IA32-NOT: -target-feature
Reid Kleckner3123eff2015-06-30 16:32:04 +000014// IA32-NOT: argument unused during compilation
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000015
Artyom Skrobovee348112014-07-23 17:09:26 +000016// RUN: %clang_cl -m32 -arch:ia32 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=ia32 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000017// ia32: argument unused during compilation
18// ia32-NOT: -target-feature
19
Artyom Skrobovee348112014-07-23 17:09:26 +000020// RUN: %clang_cl -m64 -arch:IA32 --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=IA3264 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000021// IA3264: argument unused during compilation
22// IA3264-NOT: -target-feature
23
Artyom Skrobovee348112014-07-23 17:09:26 +000024// RUN: %clang_cl -m32 -arch:SSE --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=SSE %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000025// SSE: "-target-cpu" "pentium3"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000026// SSE: -target-feature
27// SSE: +sse
28// SSE-NOT: argument unused during compilation
29
Artyom Skrobovee348112014-07-23 17:09:26 +000030// RUN: %clang_cl -m32 -arch:sse --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=sse %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000031// sse: argument unused during compilation
32// sse-NOT: -target-feature
33
Artyom Skrobovee348112014-07-23 17:09:26 +000034// RUN: %clang_cl -m32 -arch:SSE2 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=SSE2 %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000035// SSE2: "-target-cpu" "pentium4"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000036// SSE2: -target-feature
37// SSE2: +sse2
38// SSE2-NOT: argument unused during compilation
39
Artyom Skrobovee348112014-07-23 17:09:26 +000040// RUN: %clang_cl -m32 -arch:sse2 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=sse %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000041// sse2: argument unused during compilation
42// sse2-NOT: -target-feature
43
Artyom Skrobovee348112014-07-23 17:09:26 +000044// RUN: %clang_cl -m64 -arch:SSE --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=SSE64 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000045// SSE64: argument unused during compilation
46// SSE64-NOT: -target-feature
Reid Kleckner3123eff2015-06-30 16:32:04 +000047// SSE64-NOT: pentium3
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000048
Artyom Skrobovee348112014-07-23 17:09:26 +000049// RUN: %clang_cl -m64 -arch:SSE2 --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=SSE264 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000050// SSE264: argument unused during compilation
51// SSE264-NOT: -target-feature
52
Artyom Skrobovee348112014-07-23 17:09:26 +000053// RUN: %clang_cl -m32 -arch:AVX --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=AVX %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000054// AVX: "-target-cpu" "sandybridge"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000055// AVX: -target-feature
56// AVX: +avx
57
Artyom Skrobovee348112014-07-23 17:09:26 +000058// RUN: %clang_cl -m32 -arch:avx --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=avx %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000059// avx: argument unused during compilation
60// avx-NOT: -target-feature
61
Artyom Skrobovee348112014-07-23 17:09:26 +000062// RUN: %clang_cl -m32 -arch:AVX2 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=AVX2 %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000063// AVX2: "-target-cpu" "haswell"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000064// AVX2: -target-feature
65// AVX2: +avx2
66
Artyom Skrobovee348112014-07-23 17:09:26 +000067// RUN: %clang_cl -m32 -arch:avx2 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=avx2 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000068// avx2: argument unused during compilation
69// avx2-NOT: -target-feature
70
Artyom Skrobovee348112014-07-23 17:09:26 +000071// RUN: %clang_cl -m64 -arch:AVX --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=AVX64 %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000072// AVX64: "-target-cpu" "sandybridge"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000073// AVX64: -target-feature
74// AVX64: +avx
75
Artyom Skrobovee348112014-07-23 17:09:26 +000076// RUN: %clang_cl -m64 -arch:avx --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=avx64 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000077// avx64: argument unused during compilation
78// avx64-NOT: -target-feature
79
Artyom Skrobovee348112014-07-23 17:09:26 +000080// RUN: %clang_cl -m64 -arch:AVX2 --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=AVX264 %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000081// AVX264: "-target-cpu" "haswell"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000082// AVX264: -target-feature
83// AVX264: +avx2
84
Artyom Skrobovee348112014-07-23 17:09:26 +000085// RUN: %clang_cl -m64 -arch:avx2 --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=avx264 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000086// avx264: argument unused during compilation
87// avx264-NOT: -target-feature
88
Reid Klecknerfc31efe2014-07-12 00:40:59 +000089void f() {
90}