blob: 32cd072ec1ef1326694e95b1655431a29de75f9d [file] [log] [blame]
Reid Klecknerfc31efe2014-07-12 00:40:59 +00001// REQUIRES: x86-registered-target
2
3// We support -m32 and -m64. We support all x86 CPU feature flags in gcc's -m
4// flag space.
5// RUN: %clang_cl /Zs /WX -m32 -m64 -msse3 -msse4.1 -mavx -mno-avx \
Reid Klecknerc8604f62014-07-16 18:31:25 +00006// RUN: --target=i386-pc-win32 -### -- 2>&1 %s | FileCheck -check-prefix=MFLAGS %s
Reid Klecknerfc31efe2014-07-12 00:40:59 +00007// MFLAGS-NOT: argument unused during compilation
8
Artyom Skrobovee348112014-07-23 17:09:26 +00009// RUN: %clang_cl -m32 -arch:IA32 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=IA32 %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000010// IA32: "-target-cpu" "i386"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000011// IA32-NOT: -target-feature
Reid Kleckner3123eff2015-06-30 16:32:04 +000012// IA32-NOT: argument unused during compilation
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000013
Artyom Skrobovee348112014-07-23 17:09:26 +000014// RUN: %clang_cl -m32 -arch:ia32 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=ia32 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000015// ia32: argument unused during compilation
16// ia32-NOT: -target-feature
17
Artyom Skrobovee348112014-07-23 17:09:26 +000018// RUN: %clang_cl -m64 -arch:IA32 --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=IA3264 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000019// IA3264: argument unused during compilation
20// IA3264-NOT: -target-feature
21
Artyom Skrobovee348112014-07-23 17:09:26 +000022// RUN: %clang_cl -m32 -arch:SSE --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=SSE %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000023// SSE: "-target-cpu" "pentium3"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000024// SSE: -target-feature
25// SSE: +sse
26// SSE-NOT: argument unused during compilation
27
Artyom Skrobovee348112014-07-23 17:09:26 +000028// RUN: %clang_cl -m32 -arch:sse --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=sse %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000029// sse: argument unused during compilation
30// sse-NOT: -target-feature
31
Artyom Skrobovee348112014-07-23 17:09:26 +000032// RUN: %clang_cl -m32 -arch:SSE2 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=SSE2 %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000033// SSE2: "-target-cpu" "pentium4"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000034// SSE2: -target-feature
35// SSE2: +sse2
36// SSE2-NOT: argument unused during compilation
37
Artyom Skrobovee348112014-07-23 17:09:26 +000038// RUN: %clang_cl -m32 -arch:sse2 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=sse %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000039// sse2: argument unused during compilation
40// sse2-NOT: -target-feature
41
Artyom Skrobovee348112014-07-23 17:09:26 +000042// RUN: %clang_cl -m64 -arch:SSE --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=SSE64 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000043// SSE64: argument unused during compilation
44// SSE64-NOT: -target-feature
Reid Kleckner3123eff2015-06-30 16:32:04 +000045// SSE64-NOT: pentium3
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000046
Artyom Skrobovee348112014-07-23 17:09:26 +000047// RUN: %clang_cl -m64 -arch:SSE2 --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=SSE264 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000048// SSE264: argument unused during compilation
49// SSE264-NOT: -target-feature
50
Artyom Skrobovee348112014-07-23 17:09:26 +000051// RUN: %clang_cl -m32 -arch:AVX --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=AVX %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000052// AVX: "-target-cpu" "sandybridge"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000053// AVX: -target-feature
54// AVX: +avx
55
Artyom Skrobovee348112014-07-23 17:09:26 +000056// RUN: %clang_cl -m32 -arch:avx --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=avx %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000057// avx: argument unused during compilation
58// avx-NOT: -target-feature
59
Artyom Skrobovee348112014-07-23 17:09:26 +000060// RUN: %clang_cl -m32 -arch:AVX2 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=AVX2 %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000061// AVX2: "-target-cpu" "haswell"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000062// AVX2: -target-feature
63// AVX2: +avx2
64
Artyom Skrobovee348112014-07-23 17:09:26 +000065// RUN: %clang_cl -m32 -arch:avx2 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=avx2 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000066// avx2: argument unused during compilation
67// avx2-NOT: -target-feature
68
Artyom Skrobovee348112014-07-23 17:09:26 +000069// RUN: %clang_cl -m64 -arch:AVX --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=AVX64 %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000070// AVX64: "-target-cpu" "sandybridge"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000071// AVX64: -target-feature
72// AVX64: +avx
73
Artyom Skrobovee348112014-07-23 17:09:26 +000074// RUN: %clang_cl -m64 -arch:avx --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=avx64 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000075// avx64: argument unused during compilation
76// avx64-NOT: -target-feature
77
Artyom Skrobovee348112014-07-23 17:09:26 +000078// RUN: %clang_cl -m64 -arch:AVX2 --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=AVX264 %s
Reid Kleckner3123eff2015-06-30 16:32:04 +000079// AVX264: "-target-cpu" "haswell"
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000080// AVX264: -target-feature
81// AVX264: +avx2
82
Artyom Skrobovee348112014-07-23 17:09:26 +000083// RUN: %clang_cl -m64 -arch:avx2 --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=avx264 %s
Ehsan Akhgarieeb7e652014-07-15 18:27:51 +000084// avx264: argument unused during compilation
85// avx264-NOT: -target-feature
86
Reid Klecknerfc31efe2014-07-12 00:40:59 +000087void f() {
88}