|
18 | 18 |
|
19 | 19 | // arch: args are case-sensitive. |
20 | 20 | // RUN: %clang_cl -m32 -arch:ia32 --target=i386-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=ia32 %s |
21 | | -// ia32: invalid /arch: argument 'ia32'; for 32-bit expected one of AVX, AVX2, AVX512, AVX512F, IA32, SSE, SSE2 |
| 21 | +// ia32: invalid /arch: argument 'ia32'; for 32-bit expected one of AVX, AVX10.1, AVX10.2, AVX2, AVX512, AVX512F, IA32, SSE, SSE2 |
22 | 22 |
|
23 | 23 | // RUN: %clang_cl -m64 -arch:IA32 --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=IA3264 %s |
24 | | -// IA3264: invalid /arch: argument 'IA32'; for 64-bit expected one of AVX, AVX2, AVX512, AVX512F |
| 24 | +// IA3264: invalid /arch: argument 'IA32'; for 64-bit expected one of AVX, AVX10.1, AVX10.2, AVX2, AVX512, AVX512F |
25 | 25 |
|
26 | 26 | // RUN: %clang_cl -m32 -arch:SSE --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_32_ARCH_SSE -- %s |
27 | 27 | #if defined(TEST_32_ARCH_SSE) |
|
44 | 44 | // sse2: invalid /arch: argument |
45 | 45 |
|
46 | 46 | // RUN: %clang_cl -m64 -arch:SSE --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=SSE64 %s |
47 | | -// SSE64: invalid /arch: argument 'SSE'; for 64-bit expected one of AVX, AVX2, AVX512, AVX512F |
| 47 | +// SSE64: invalid /arch: argument 'SSE'; for 64-bit expected one of AVX, AVX10.1, AVX10.2, AVX2, AVX512, AVX512F |
48 | 48 |
|
49 | 49 | // RUN: %clang_cl -m64 -arch:SSE2 --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=SSE264 %s |
50 | 50 | // SSE264: invalid /arch: argument |
|
80 | 80 | // avx512f: invalid /arch: argument |
81 | 81 |
|
82 | 82 | // RUN: %clang_cl -m32 -arch:AVX512 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_32_ARCH_AVX512 -- %s |
| 83 | +// RUN: %clang_cl -m32 -arch:AVX10.1 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_32_ARCH_AVX512 -- %s |
| 84 | +// RUN: %clang_cl -m32 -arch:AVX10.2 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_32_ARCH_AVX512 -- %s |
83 | 85 | #if defined(TEST_32_ARCH_AVX512) |
84 | 86 | #if _M_IX86_FP != 2 || !__AVX__ || !__AVX2__ || !__AVX512F__ || !__AVX512BW__ |
85 | 87 | #error fail |
|
89 | 91 | // RUN: %clang_cl -m32 -arch:avx512 --target=i386-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=avx512 %s |
90 | 92 | // avx512: invalid /arch: argument |
91 | 93 |
|
| 94 | +// RUN: %clang_cl -m32 -arch:AVX10.1 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_32_ARCH_AVX10_1_ADD -- %s |
| 95 | +// RUN: %clang_cl -m32 -arch:AVX10.2 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_32_ARCH_AVX10_1_ADD -- %s |
| 96 | +#if defined(TEST_32_ARCH_AVX10_1_ADD) |
| 97 | +#if !__AVX512VL__ || !__AVX512CD__ || !__AVX512DQ__ || !__AVX512VBMI__ || !__AVX512IFMA__ || !__AVX512VNNI__ ||\ |
| 98 | + !__AVX512BF16__ || !__AVX512VPOPCNTDQ__ || !__AVX512VBMI2__ || !__AVX512VPOPCNTDQ__ || !__AVX512BITALG__ || !__AVX512FP16__ |
| 99 | +#error fail |
| 100 | +#endif |
| 101 | +#endif |
| 102 | + |
| 103 | +// RUN: %clang_cl -m32 -arch:avx10.1 --target=i386-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=avx10_1 %s |
| 104 | +// avx10_1: invalid /arch: argument |
| 105 | + |
| 106 | +// RUN: %clang_cl -m32 -arch:AVX10.2 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_32_ARCH_AVX10_2_ADD -- %s |
| 107 | +#if defined(TEST_32_ARCH_AVX10_2_ADD) |
| 108 | +#if !__AVX10_2__ |
| 109 | +#error fail |
| 110 | +#endif |
| 111 | +#endif |
| 112 | + |
| 113 | +// RUN: %clang_cl -m32 -arch:avx10.2 --target=i386-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=avx10_2 %s |
| 114 | +// avx10_2: invalid /arch: argument |
| 115 | + |
92 | 116 | // RUN: %clang_cl -m64 -arch:AVX --target=x86_64-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_64_ARCH_AVX -- %s |
93 | 117 | #if defined(TEST_64_ARCH_AVX) |
94 | 118 | #if _M_IX86_FP || !__AVX__ || __AVX2__ || __AVX512F__ || __AVX512BW__ |
|
120 | 144 | // avx512f64: invalid /arch: argument |
121 | 145 |
|
122 | 146 | // RUN: %clang_cl -m64 -arch:AVX512 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_64_ARCH_AVX512 -- %s |
| 147 | +// RUN: %clang_cl -m64 -arch:AVX10.1 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_64_ARCH_AVX512 -- %s |
| 148 | +// RUN: %clang_cl -m64 -arch:AVX10.2 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_64_ARCH_AVX512 -- %s |
123 | 149 | #if defined(TEST_64_ARCH_AVX512) |
124 | 150 | #if _M_IX86_FP || !__AVX__ || !__AVX2__ || !__AVX512F__ || !__AVX512BW__ |
125 | 151 | #error fail |
|
129 | 155 | // RUN: %clang_cl -m64 -arch:avx512 --target=i386-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=avx51264 %s |
130 | 156 | // avx51264: invalid /arch: argument |
131 | 157 |
|
| 158 | +// RUN: %clang_cl -m64 -arch:AVX10.1 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_64_ARCH_AVX10_1_ADD -- %s |
| 159 | +// RUN: %clang_cl -m64 -arch:AVX10.2 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_64_ARCH_AVX10_1_ADD -- %s |
| 160 | +#if defined(TEST_64_ARCH_AVX10_1_ADD) |
| 161 | +#if !__AVX512VL__ || !__AVX512CD__ || !__AVX512DQ__ || !__AVX512VBMI__ || !__AVX512IFMA__ || !__AVX512VNNI__ ||\ |
| 162 | + !__AVX512BF16__ || !__AVX512VPOPCNTDQ__ || !__AVX512VBMI2__ || !__AVX512VPOPCNTDQ__ || !__AVX512BITALG__ || !__AVX512FP16__ |
| 163 | +#error fail |
| 164 | +#endif |
| 165 | +#endif |
| 166 | + |
| 167 | +// RUN: %clang_cl -m64 -arch:avx10.1 --target=i386-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=avx10_1_64 %s |
| 168 | +// avx10_1_64: invalid /arch: argument |
| 169 | + |
| 170 | +// RUN: %clang_cl -m64 -arch:AVX10.2 --target=i386-pc-windows /c /Fo%t.obj -Xclang -verify -DTEST_64_ARCH_AVX10_2_ADD -- %s |
| 171 | +#if defined(TEST_64_ARCH_AVX10_2_ADD) |
| 172 | +#if !__AVX10_2__ |
| 173 | +#error fail |
| 174 | +#endif |
| 175 | +#endif |
| 176 | + |
| 177 | +// RUN: %clang_cl -m64 -arch:avx10.2 --target=i386-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=avx10_2_64 %s |
| 178 | +// avx10_2_64: invalid /arch: argument |
| 179 | + |
132 | 180 | // RUN: %clang_cl -m64 -arch:AVX -tune:haswell --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=tune %s |
133 | 181 | // tune: "-target-cpu" "sandybridge" |
134 | 182 | // tune-SAME: "-tune-cpu" "haswell" |
135 | 183 |
|
136 | 184 | // RUN: %clang_cl -m64 -arch:AVX512 -vlen=512 --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=vlen512 %s |
| 185 | +// RUN: %clang_cl -m64 -arch:AVX10.1 -vlen=512 --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=vlen512 %s |
| 186 | +// RUN: %clang_cl -m64 -arch:AVX10.2 -vlen=512 --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=vlen512 %s |
137 | 187 | // vlen512: "-mprefer-vector-width=512" |
138 | 188 |
|
139 | 189 | // RUN: %clang_cl -m64 -arch:AVX512 -vlen=256 --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=vlen256 %s |
| 190 | +// RUN: %clang_cl -m64 -arch:AVX10.1 --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=vlen256 %s |
| 191 | +// RUN: %clang_cl -m64 -arch:AVX10.2 --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=vlen256 %s |
| 192 | +// RUN: %clang_cl -m64 -arch:AVX10.1 -vlen=256 --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=vlen256 %s |
| 193 | +// RUN: %clang_cl -m64 -arch:AVX10.2 -vlen=256 --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=vlen256 %s |
140 | 194 | // vlen256: "-mprefer-vector-width=256" |
141 | 195 |
|
142 | 196 | // RUN: %clang_cl -m64 -arch:AVX512 -vlen=512 -vlen --target=x86_64-pc-windows -### -- 2>&1 %s | FileCheck -check-prefix=novlen %s |
|
0 commit comments