Enable VREX for AVX512 directives
[external/binutils.git] / gas / testsuite / gas / i386 / i386.exp
1 # Copyright (C) 2012-2016 Free Software Foundation, Inc.
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 3 of the License, or
6 # (at your option) any later version.
7
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  
16
17 #
18 # i386 tests
19 #
20 proc gas_64_check { } {
21     global NM
22     global NMFLAGS
23
24     set status [gas_host_run "$NM $NMFLAGS --help" ""]
25     return [regexp "targets:.*x86-64" [lindex $status 1]];
26 }
27
28 proc gas_32_check { } {
29     global NM
30     global NMFLAGS
31
32     set status [gas_host_run "$NM $NMFLAGS --help" ""]
33     return [regexp "targets:.*i386" [lindex $status 1]];
34 }
35
36 if [expr ([istarget "i*86-*-*"] ||  [istarget "x86_64-*-*"]) && [gas_32_check]]  then {
37
38     global ASFLAGS
39     set old_ASFLAGS "$ASFLAGS"
40     set ASFLAGS "$ASFLAGS --32"
41
42     run_list_test "float" "-al -mmnemonic=att"
43     run_list_test "general" "-al --listing-lhs-width=2 -mold-gcc"
44     run_list_test "inval" "-al"
45     run_list_test "inval-16" "-al"
46     run_list_test "segment" "-al"
47     run_list_test "inval-seg" "-al"
48     run_list_test "inval-reg" "-al"
49     run_list_test "modrm" "-al --listing-lhs-width=2"
50     run_dump_test "naked"
51     run_dump_test "opcode"
52     run_dump_test "opcode-intel"
53     run_dump_test "opcode-suffix"
54     run_dump_test "intel"
55     run_dump_test "intel16"
56     run_list_test "intelbad" ""
57     run_dump_test "intelok"
58     run_dump_test "prefix"
59     run_dump_test "amd"
60     run_dump_test "katmai"
61     run_dump_test "jump"
62     run_dump_test "relax-1"
63     run_dump_test "relax-2"
64     run_dump_test "ssemmx2"
65     run_dump_test "sse2"
66     run_dump_test "sub"
67     run_dump_test "sse3"
68     run_dump_test "sib"
69     run_dump_test "sib-intel"
70     run_dump_test "disp"
71     run_dump_test "disp-intel"
72     run_dump_test "disp32"
73     run_dump_test "vmx"
74     run_dump_test "vmfunc"
75     run_dump_test "smx"
76     run_dump_test "suffix"
77     run_dump_test "suffix-intel"
78     run_dump_test "immed32"
79     run_dump_test "equ"
80     run_dump_test "divide"
81     run_dump_test "padlock"
82     run_dump_test "crx"
83     run_list_test "cr-err" ""
84     run_dump_test "cdr"
85     run_dump_test "svme"
86     run_dump_test "amdfam10"
87     run_dump_test "ssse3"
88     run_dump_test "rep"
89     run_dump_test "rep-suffix"
90     run_list_test "inval-rep" "-al"
91     run_dump_test "lock-1"
92     run_dump_test "lock-1-intel"
93     run_list_test "lockbad-1" "-al"
94     run_dump_test "long-1"
95     run_dump_test "long-1-intel"
96     run_dump_test "fp"
97     run_dump_test "nops"
98     run_dump_test "nops16-1"
99     run_dump_test "nops-1"
100     run_dump_test "nops-1-i386"
101     run_dump_test "nops-1-i386-i686"
102     run_dump_test "nops-1-i686"
103     run_dump_test "nops-1-k8"
104     run_dump_test "nops-1-core2"
105     run_dump_test "nops-2"
106     run_dump_test "nops-2-i386"
107     run_dump_test "nops-2-core2"
108     run_dump_test "nops-3"
109     run_dump_test "nops-3-i386"
110     run_dump_test "nops-3-i686"
111     run_dump_test "nops-4"
112     run_dump_test "nops-4-i386"
113     run_dump_test "nops-4-i686"
114     run_dump_test "nops-4a-i686"
115     run_dump_test "nops-5"
116     run_dump_test "nops-5-i686"
117     run_dump_test "nops-6"
118     run_dump_test "addr16"
119     run_dump_test "addr32"
120     run_dump_test "sse4_1"
121     run_dump_test "sse4_1-intel"
122     run_dump_test "sse4_2"
123     run_dump_test "sse4_2-intel"
124     run_dump_test "crc32"
125     run_dump_test "crc32-intel"
126     run_list_test "inval-crc32" "-al"
127     run_dump_test "simd"
128     run_dump_test "simd-intel"
129     run_dump_test "simd-suffix"
130     run_dump_test "mem"
131     run_dump_test "mem-intel"
132     run_dump_test "reg"
133     run_dump_test "reg-intel"
134     run_dump_test "i386"
135     run_dump_test "i386-intel"
136     run_dump_test "compat"
137     run_dump_test "compat-intel"
138     run_dump_test "arch-1"
139     run_dump_test "arch-2"
140     run_dump_test "arch-3"
141     run_dump_test "arch-4"
142     run_dump_test "arch-5"
143     run_dump_test "arch-6"
144     run_dump_test "arch-7"
145     run_dump_test "arch-9"
146     run_dump_test "arch-10"
147     run_dump_test "arch-10-lzcnt"
148     run_dump_test "arch-10-prefetchw"
149     run_dump_test "arch-10-bdver1"
150     run_dump_test "arch-10-bdver2"
151     run_dump_test "arch-10-bdver3"
152     run_dump_test "arch-10-bdver4"
153     run_dump_test "arch-13-znver1"
154     run_dump_test "arch-10-btver1"
155     run_dump_test "arch-10-btver2"
156     run_list_test "arch-10-1" "-march=generic32 -I${srcdir}/$subdir -al"
157     run_list_test "arch-10-2" "-march=i686 -I${srcdir}/$subdir -al"
158     run_list_test "arch-10-3" "-march=i686+sse4.2 -I${srcdir}/$subdir -al"
159     run_list_test "arch-10-4" "-march=i686+sse4+vmx+smx -I${srcdir}/$subdir -al"
160     run_dump_test "arch-11"
161     run_dump_test "arch-12"
162     run_dump_test "arch-13"
163     run_dump_test "8087"
164     run_dump_test "287"
165     run_dump_test "387"
166     run_list_test "no87" "-al"
167     run_list_test "no87-2" "-march=i686+no87 -al"
168     run_list_test "nommx-1" "-al"
169     run_list_test "nommx-2" "-march=core+nommx -al"
170     run_list_test "nommx-3" "-march=+nommx -al"
171     run_list_test "nosse-1" "-al"
172     run_list_test "nosse-2" "-march=core+nosse -al"
173     run_list_test "nosse-3" "-march=+nosse -al"
174     run_list_test "noavx-1" "-al"
175     run_list_test "noavx-2" "-march=+noavx -al"
176     run_dump_test "xsave"
177     run_dump_test "xsave-intel"
178     run_dump_test "aes"
179     run_dump_test "aes-intel"
180     run_dump_test "clmul"
181     run_dump_test "clmul-intel"
182     run_dump_test "avx"
183     run_dump_test "avx-intel"
184     run_dump_test "avx-scalar"
185     run_dump_test "avx-scalar-intel"
186     run_dump_test "avx256int"
187     run_dump_test "avx256int-intel"
188     run_dump_test "avx2"
189     run_dump_test "avx2-intel"
190     run_dump_test "avx-gather"
191     run_dump_test "avx-gather-intel"
192     run_dump_test "avx512f"
193     run_dump_test "avx512f-intel"
194     run_dump_test "avx512f-opts"
195     run_dump_test "avx512f-opts-intel"
196     run_dump_test "avx512f-nondef"
197     run_dump_test "avx512cd"
198     run_dump_test "avx512cd-intel"
199     run_dump_test "avx512er"
200     run_dump_test "avx512er-intel"
201     run_dump_test "avx512pf"
202     run_dump_test "avx512pf-intel"
203     run_dump_test "evex-lig256"
204     run_dump_test "evex-lig512"
205     run_dump_test "evex-lig256-intel"
206     run_dump_test "evex-lig512-intel"
207     run_dump_test "evex-wig1"
208     run_dump_test "evex-wig1-intel"
209     run_dump_test "sse2avx"
210     run_list_test "inval-avx" "-al"
211     run_list_test "inval-avx512f" "-al"
212     run_dump_test "sse-check"
213     run_dump_test "sse-check-none"
214     run_dump_test "sse-check-warn"
215     run_list_test "sse-check-error" "-msse-check=error -I${srcdir}/$subdir -al"
216     run_dump_test "vgather-check"
217     run_dump_test "vgather-check-none"
218     run_dump_test "vgather-check-warn"
219     run_list_test "vgather-check-error" "-moperand-check=error -I${srcdir}/$subdir"
220     run_dump_test "sse-noavx"
221     run_dump_test "movbe"
222     run_dump_test "movbe-intel"
223     run_list_test "inval-movbe" "-al"
224     run_dump_test "ept"
225     run_dump_test "ept-intel"
226     run_list_test "inval-ept" "-al"
227     run_dump_test "invpcid"
228     run_dump_test "invpcid-intel"
229     run_list_test "inval-invpcid" "-al"
230     run_dump_test "arch-avx-1"
231     run_list_test "arch-avx-1-1" "-march=generic32+avx -I${srcdir}/$subdir -al"
232     run_list_test "arch-avx-1-2" "-march=generic32+aes -I${srcdir}/$subdir -al"
233     run_list_test "arch-avx-1-3" "-march=generic32+pclmul -I${srcdir}/$subdir -al"
234     run_list_test "arch-avx-1-4" "-march=generic32+avx+aes -I${srcdir}/$subdir -al"
235     run_list_test "arch-avx-1-5" "-march=generic32+avx+pclmul -I${srcdir}/$subdir -al"
236     run_list_test "arch-avx-1-6" "-march=generic32+aes+pclmul -I${srcdir}/$subdir -al"
237     run_dump_test "opts"
238     run_dump_test "opts-intel"
239     run_dump_test "sse2avx-opts"
240     run_dump_test "sse2avx-opts-intel"
241     run_dump_test "bmi2"
242     run_dump_test "bmi2-intel"
243     run_dump_test "fma"
244     run_dump_test "fma-intel"
245     run_dump_test "fma-scalar"
246     run_dump_test "fma-scalar-intel"
247     run_dump_test "hle"
248     run_dump_test "hle-intel"
249     run_list_test "hlebad" "-al"
250     run_dump_test "rtm"
251     run_dump_test "rtm-intel"
252     run_dump_test "fma4"
253     run_dump_test "lwp"
254     run_dump_test "xop"
255     run_dump_test "bmi"
256     run_dump_test "bmi-intel"
257     run_dump_test "tbm"
258     run_dump_test "tbm-intel"
259     run_dump_test "f16c"
260     run_dump_test "f16c-intel"
261     run_dump_test "fsgs"
262     run_dump_test "fsgs-intel"
263     run_dump_test "rdrnd"
264     run_dump_test "rdrnd-intel"
265     run_dump_test "bundle"
266     run_dump_test "bundle-lock"
267     run_dump_test "bundle-bad"
268     run_dump_test "adx"
269     run_dump_test "adx-intel"
270     run_dump_test "rdseed"
271     run_dump_test "rdseed-intel"
272     run_dump_test "prefetch"
273     run_dump_test "prefetch-intel"
274     run_dump_test "smap"
275     run_dump_test "mpx"
276     run_list_test "mpx-inval-1" "-al"
277     run_dump_test "mpx-add-bnd-prefix"
278     run_dump_test "sha"
279     run_dump_test "clflushopt"
280     run_dump_test "clflushopt-intel"
281     run_dump_test "xsavec"
282     run_dump_test "xsavec-intel"
283     run_dump_test "xsaves"
284     run_dump_test "xsaves-intel"
285     run_dump_test "prefetchwt1"
286     run_dump_test "prefetchwt1-intel"
287     run_dump_test "se1"
288     run_dump_test "avx512f_vl-intel"
289     run_dump_test "avx512f_vl-opts-intel"
290     run_dump_test "avx512f_vl-opts"
291     run_dump_test "avx512f_vl-wig1-intel"
292     run_dump_test "avx512f_vl-wig1"
293     run_dump_test "avx512f_vl"
294     run_dump_test "avx512cd_vl-intel"
295     run_dump_test "avx512cd_vl"
296     run_dump_test "avx512bw-intel"
297     run_dump_test "avx512bw-opts-intel"
298     run_dump_test "avx512bw-opts"
299     run_dump_test "avx512bw-wig1-intel"
300     run_dump_test "avx512bw-wig1"
301     run_dump_test "avx512bw"
302     run_dump_test "avx512bw_vl-intel"
303     run_dump_test "avx512bw_vl-opts-intel"
304     run_dump_test "avx512bw_vl-opts"
305     run_dump_test "avx512bw_vl-wig1-intel"
306     run_dump_test "avx512bw_vl-wig1"
307     run_dump_test "avx512bw_vl"
308     run_dump_test "avx512dq-intel"
309     run_dump_test "avx512dq"
310     run_dump_test "avx512dq_vl-intel"
311     run_dump_test "avx512dq_vl"
312     run_dump_test "omit-lock-yes"
313     run_dump_test "omit-lock-no"
314     run_dump_test "fence-as-lock-add-yes"
315     run_dump_test "fence-as-lock-add-no"
316     run_dump_test "avx512dq-rcigrd-intel"
317     run_dump_test "avx512dq-rcigrd"
318     run_dump_test "avx512dq-rcigrne-intel"
319     run_dump_test "avx512dq-rcigrne"
320     run_dump_test "avx512dq-rcigru-intel"
321     run_dump_test "avx512dq-rcigru"
322     run_dump_test "avx512dq-rcigrz-intel"
323     run_dump_test "avx512dq-rcigrz"
324     run_dump_test "avx512er-rcigrd-intel"
325     run_dump_test "avx512er-rcigrd"
326     run_dump_test "avx512er-rcigrne-intel"
327     run_dump_test "avx512er-rcigrne"
328     run_dump_test "avx512er-rcigru-intel"
329     run_dump_test "avx512er-rcigru"
330     run_dump_test "avx512er-rcigrz-intel"
331     run_dump_test "avx512er-rcigrz"
332     run_dump_test "avx512f-rcigrd-intel"
333     run_dump_test "avx512f-rcigrd"
334     run_dump_test "avx512f-rcigrne-intel"
335     run_dump_test "avx512f-rcigrne"
336     run_dump_test "avx512f-rcigru-intel"
337     run_dump_test "avx512f-rcigru"
338     run_dump_test "avx512f-rcigrz-intel"
339     run_dump_test "avx512f-rcigrz"
340     run_dump_test "clwb"
341     run_dump_test "clwb-intel"
342     run_dump_test "pcommit"
343     run_dump_test "pcommit-intel"
344     run_dump_test "avx512ifma"
345     run_dump_test "avx512ifma-intel"
346     run_dump_test "avx512ifma_vl"
347     run_dump_test "avx512ifma_vl-intel"
348     run_dump_test "avx512vbmi"
349     run_dump_test "avx512vbmi-intel"
350     run_dump_test "avx512vbmi_vl"
351     run_dump_test "avx512vbmi_vl-intel"
352     run_dump_test "clzero"
353     run_dump_test "disassem"
354     run_dump_test "mwaitx-bdver4"
355     run_list_test "mwaitx-reg"
356     run_dump_test "ospke"
357     run_dump_test "rdpid"
358     run_dump_test "rdpid-intel"
359
360     # These tests require support for 8 and 16 bit relocs,
361     # so we only run them for ELF and COFF targets.
362     if {[is_elf_format] || [istarget "*-*-coff*"]} then {
363         run_dump_test "reloc"
364         run_dump_test "jump16"
365         run_list_test "white" "-al --listing-lhs-width=3"
366
367         # These tests should in theory work for PE targets as well,
368         # but the relocs we currently produce are slightly different
369         # from those produced for ELF/COFF based toolchains.
370         # So for now we ignore PE targets.
371         run_dump_test "absrel"
372         if {[istarget "*-*-coff*"]} then {
373             run_dump_test "pcrel"
374         }
375     }
376
377     # ELF specific tests
378     if [is_elf_format] then {
379         # PIC is only supported on ELF targets.
380         run_dump_test "intelpic"
381
382         run_dump_test "pcrel-elf"
383         run_dump_test "relax"
384         run_dump_test "gotpc"
385         run_dump_test "tlsd"
386         run_dump_test "tlspic"
387         run_dump_test "tlsnopic"
388         run_dump_test "bss"
389         run_dump_test "reloc32"
390         run_list_test "reloc32" "--defsym _bad_=1"
391         run_dump_test "mixed-mode-reloc32"
392         run_dump_test "att-regs"
393         run_dump_test "intel-got32"
394         run_dump_test "intel-regs"
395         run_list_test "inval-equ-1" "-al"
396         run_list_test "inval-equ-2" "-al"
397         run_dump_test "ifunc"
398         run_list_test "ifunc-2"
399         run_dump_test "ifunc-3"
400         run_list_test "l1om-inval" "-march=l1om --32"
401         run_list_test "k1om-inval" "-march=k1om --32"
402         run_dump_test "localpic"
403         run_dump_test "debug1"
404
405         run_dump_test "dw2-compress-2"
406         run_dump_test "dw2-compressed-2"
407
408         run_dump_test "bad-size"
409
410         run_dump_test "size-1"
411         run_dump_test "size-2"
412         run_dump_test "size-3"
413         run_dump_test "size-4"
414
415         run_dump_test "note"
416
417         run_dump_test "relax-3"
418         run_dump_test "relax-4"
419
420         run_dump_test "got"
421         run_dump_test "got-no-relax"
422
423         run_dump_test "addend"
424
425         if {![istarget "*-*-nacl*"]} then {
426             run_dump_test "iamcu-1"
427             run_dump_test "iamcu-2"
428             run_dump_test "iamcu-3"
429             run_list_test "iamcu-inval-1" "-march=iamcu -al"
430             run_list_test "iamcu-inval-2" "-march=iamcu -al"
431             run_list_test "iamcu-inval-3" "-march=iamcu+sse4 -al"
432         }
433     }
434
435     # This is a PE specific test.
436     if { [istarget "*-*-cygwin*"] || [istarget "*-*-pe"]
437          || [istarget "*-*-mingw*"]
438     } then {
439         run_dump_test "secrel"
440     }
441
442     # Miscellaneous tests.
443     run_dump_test "pr12589-1"
444
445     set ASFLAGS "$old_ASFLAGS"
446 }
447
448 # Common tests
449 if [expr [istarget "i*86-*-*"] || [istarget "x86_64-*-*"]] then {
450     if {![istarget "i*86-*-elfiamcu"]} then {
451         run_dump_test "intel-expr"
452         run_dump_test "string-ok"
453     }
454     run_list_test "string-bad" ""
455     run_list_test "reg-bad" ""
456     run_list_test "space1" "-al"
457     run_dump_test rept
458     run_dump_test pr19498
459     if [is_elf_format] then {
460         run_list_test_stdin "list-1" "-al"
461         run_list_test_stdin "list-2" "-al"
462         run_list_test_stdin "list-3" "-al"
463         run_dump_test "dw2-compress-1"
464         run_dump_test "dw2-compress-3a"
465         run_dump_test "dw2-compress-3b"
466         run_dump_test "dw2-compressed-1"
467         run_dump_test "dw2-compressed-3a"
468         run_dump_test "dw2-compressed-3b"
469     }
470 }
471
472 if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] then {
473
474     global ASFLAGS
475     set old_ASFLAGS "$ASFLAGS"
476     set ASFLAGS "$ASFLAGS --64"
477
478     run_dump_test "x86_64"
479     run_dump_test "x86_64-intel"
480     run_dump_test "x86-64-addr32"
481     run_dump_test "x86-64-addr32-intel"
482     run_dump_test "x86-64-opcode"
483     run_dump_test "x86-64-intel64"
484     if { ![istarget "*-*-mingw*"] } then {
485       run_dump_test "x86-64-pcrel"
486       run_dump_test "x86-64-disassem"
487     } else {
488       run_dump_test "x86-64-w64-pcrel"
489     }
490     run_dump_test "x86-64-rip"
491     run_dump_test "x86-64-rip-intel"
492     run_dump_test "x86-64-stack"
493     run_dump_test "x86-64-stack-intel"
494     run_dump_test "x86-64-stack-suffix"
495     run_list_test "x86-64-inval" "-al"
496     run_list_test "x86-64-segment" "-al"
497     run_dump_test "x86-64-segovr"
498     run_list_test "x86-64-inval-seg" "-al"
499     run_dump_test "x86-64-branch"
500     run_dump_test "x86-64-relax-1"
501     run_dump_test "svme64"
502     run_dump_test "x86-64-amdfam10"
503     run_dump_test "x86-64-vmx"
504     run_dump_test "x86-64-vmfunc"
505     run_dump_test "immed64"
506     run_dump_test "x86-64-sse3"
507     run_dump_test "x86-64-crx"
508     run_dump_test "x86-64-crx-suffix"
509     run_dump_test "x86-64-drx"
510     run_dump_test "x86-64-drx-suffix"
511     run_dump_test "x86-64-cdr"
512     run_dump_test "x86-64-ssse3"
513     run_dump_test "x86-64-rep"
514     run_dump_test "x86-64-rep-suffix"
515     run_list_test "x86-64-inval-rep" "-al"
516     run_dump_test "x86-64-lock-1"
517     run_dump_test "x86-64-lock-1-intel"
518     run_list_test "x86-64-lockbad-1" "-al"
519     run_dump_test "x86-64-long-1"
520     run_dump_test "x86-64-long-1-intel"
521     run_dump_test "x86-64-cbw"
522     run_dump_test "x86-64-cbw-intel"
523     run_dump_test "x86-64-io"
524     run_dump_test "x86-64-io-intel"
525     run_dump_test "x86-64-io-suffix"
526     run_dump_test "x86-64-gidt"
527     run_dump_test "x86-64-nops"
528     run_dump_test "x86-64-nops-1"
529     run_dump_test "x86-64-nops-1-g64"
530     run_dump_test "x86-64-nops-1-k8"
531     run_dump_test "x86-64-nops-1-core2"
532     run_dump_test "x86-64-nops-1-pentium"
533     run_dump_test "x86-64-nops-2"
534     run_dump_test "x86-64-nops-3"
535     run_dump_test "x86-64-nops-4"
536     run_dump_test "x86-64-nops-4-core2"
537     run_dump_test "x86-64-nops-4-k8"
538     run_dump_test "x86-64-nops-5"
539     run_dump_test "x86-64-nops-5-k8"
540     run_dump_test "x86-64-sse4_1"
541     run_dump_test "x86-64-sse4_1-intel"
542     run_dump_test "x86-64-sse4_2"
543     run_dump_test "x86-64-sse4_2-intel"
544     run_dump_test "x86-64-crc32"
545     run_dump_test "x86-64-crc32-intel"
546     run_list_test "x86-64-inval-crc32" "-al"
547     run_dump_test "x86-64-simd"
548     run_dump_test "x86-64-simd-intel"
549     run_dump_test "x86-64-simd-suffix"
550     run_dump_test "x86-64-mem"
551     run_dump_test "x86-64-mem-intel"
552     run_dump_test "x86-64-reg"
553     run_dump_test "x86-64-reg-intel"
554     run_dump_test "x86-64-sib"
555     run_dump_test "x86-64-sib-intel"
556     run_dump_test "x86-64-disp"
557     run_dump_test "x86-64-disp-intel"
558     run_dump_test "x86-64-disp32"
559     run_dump_test "rexw"
560     run_list_test "x86-64-specific-reg"
561     run_list_test "x86-64-suffix-bad"
562     run_dump_test "x86-64-fxsave"
563     run_dump_test "x86-64-fxsave-intel"
564     run_dump_test "x86-64-arch-1"
565     run_dump_test "x86-64-arch-2"
566     run_dump_test "x86-64-arch-3"
567     run_dump_test "x86-64-arch-2-lzcnt"
568     run_dump_test "x86-64-arch-2-prefetchw"
569     run_dump_test "x86-64-arch-2-bdver1"
570     run_dump_test "x86-64-arch-2-bdver2"
571     run_dump_test "x86-64-arch-2-bdver3"
572     run_dump_test "x86-64-arch-2-bdver4"
573     run_dump_test "x86-64-arch-3-znver1"
574     run_dump_test "x86-64-arch-2-btver1"
575     run_dump_test "x86-64-arch-2-btver2"
576     run_list_test "x86-64-arch-2-1" "-march=generic64 -I${srcdir}/$subdir -al"
577     run_list_test "x86-64-arch-2-2" "-march=generic64+cx16 -I${srcdir}/$subdir -al"
578     run_dump_test "x86-64-xsave"
579     run_dump_test "x86-64-xsave-intel"
580     run_dump_test "x86-64-aes"
581     run_dump_test "x86-64-aes-intel"
582     run_dump_test "x86-64-clmul"
583     run_dump_test "x86-64-clmul-intel"
584     run_dump_test "x86-64-avx"
585     run_dump_test "x86-64-avx-intel"
586     run_dump_test "x86-64-avx-scalar"
587     run_dump_test "x86-64-avx-scalar-intel"
588     run_dump_test "x86-64-avx256int"
589     run_dump_test "x86-64-avx256int-intel"
590     run_dump_test "x86-64-avx2"
591     run_dump_test "x86-64-avx2-intel"
592     run_dump_test "x86-64-avx-gather"
593     run_dump_test "x86-64-avx-gather-intel"
594     run_dump_test "x86-64-avx512f"
595     run_dump_test "x86-64-avx512f-intel"
596     run_dump_test "x86-64-avx512f-opts"
597     run_dump_test "x86-64-avx512f-opts-intel"
598     run_dump_test "x86-64-avx512f-nondef"
599     run_dump_test "x86-64-avx512cd"
600     run_dump_test "x86-64-avx512cd-intel"
601     run_dump_test "x86-64-avx512er"
602     run_dump_test "x86-64-avx512er-intel"
603     run_dump_test "x86-64-avx512pf"
604     run_dump_test "x86-64-avx512pf-intel"
605     run_dump_test "x86-64-evex-lig256"
606     run_dump_test "x86-64-evex-lig512"
607     run_dump_test "x86-64-evex-lig256-intel"
608     run_dump_test "x86-64-evex-lig512-intel"
609     run_dump_test "x86-64-evex-wig1"
610     run_dump_test "x86-64-evex-wig1-intel"
611     run_dump_test "x86-64-sse2avx"
612     run_list_test "x86-64-inval-avx" "-al"
613     run_list_test "x86-64-inval-avx512f" "-al"
614     run_dump_test "x86-64-sse-check"
615     run_dump_test "x86-64-sse-check-none"
616     run_dump_test "x86-64-sse-check-warn"
617     run_list_test "x86-64-sse-check-error" "-msse-check=error -I${srcdir}/$subdir -al"
618     run_dump_test "x86-64-vgather-check"
619     run_dump_test "x86-64-vgather-check-none"
620     run_dump_test "x86-64-vgather-check-warn"
621     run_list_test "x86-64-vgather-check-error" "-moperand-check=error -I${srcdir}/$subdir"
622     run_dump_test "x86-64-sse-noavx"
623     run_dump_test "x86-64-movbe"
624     run_dump_test "x86-64-movbe-intel"
625     run_list_test "x86-64-inval-movbe" "-al"
626     run_dump_test "x86-64-ept"
627     run_dump_test "x86-64-ept-intel"
628     run_list_test "x86-64-inval-ept" "-al"
629     run_dump_test "x86-64-invpcid"
630     run_dump_test "x86-64-invpcid-intel"
631     run_list_test "x86-64-inval-invpcid" "-al"
632     run_dump_test "x86-64-opts"
633     run_dump_test "x86-64-opts-intel"
634     run_dump_test "x86-64-sse2avx-opts"
635     run_dump_test "x86-64-sse2avx-opts-intel"
636     run_dump_test "x86-64-avx-swap"
637     run_dump_test "x86-64-avx-swap-intel"
638     run_dump_test "x86-64-bmi2"
639     run_dump_test "x86-64-bmi2-intel"
640     run_dump_test "x86-64-fma"
641     run_dump_test "x86-64-fma-intel"
642     run_dump_test "x86-64-fma-scalar"
643     run_dump_test "x86-64-fma-scalar-intel"
644     run_dump_test "x86-64-hle"
645     run_dump_test "x86-64-hle-intel"
646     run_list_test "x86-64-hlebad" "-al"
647     run_dump_test "x86-64-rtm"
648     run_dump_test "x86-64-rtm-intel"
649     run_dump_test "x86-64-fma4"
650     run_dump_test "x86-64-lwp"
651     run_dump_test "x86-64-xop"
652     run_dump_test "x86-64-bmi"
653     run_dump_test "x86-64-bmi-intel"
654     run_dump_test "x86-64-tbm"
655     run_dump_test "x86-64-tbm-intel"
656     run_dump_test "x86-64-f16c"
657     run_dump_test "x86-64-f16c-intel"
658     run_dump_test "x86-64-fsgs"
659     run_dump_test "x86-64-fsgs-intel"
660     run_dump_test "x86-64-rdrnd"
661     run_dump_test "x86-64-rdrnd-intel"
662     run_dump_test "x86-64-bundle"
663     run_dump_test "x86-64-adx"
664     run_dump_test "x86-64-adx-intel"
665     run_dump_test "x86-64-rdseed"
666     run_dump_test "x86-64-rdseed-intel"
667     run_dump_test "x86-64-prefetch"
668     run_dump_test "x86-64-prefetch-intel"
669     run_dump_test "x86-64-smap"
670     run_dump_test "x86-64-mpx"
671     run_list_test "x86-64-mpx-inval-1" "-al"
672     run_list_test "x86-64-mpx-inval-2" "-al"
673     run_dump_test "x86-64-mpx-addr32"
674     run_dump_test "x86-64-mpx-add-bnd-prefix"
675     run_dump_test "x86-64-sha"
676     run_dump_test "x86-64-clflushopt"
677     run_dump_test "x86-64-clflushopt-intel"
678     run_dump_test "x86-64-xsavec"
679     run_dump_test "x86-64-xsavec-intel"
680     run_dump_test "x86-64-xsaves"
681     run_dump_test "x86-64-xsaves-intel"
682     run_dump_test "x86-64-prefetchwt1"
683     run_dump_test "x86-64-prefetchwt1-intel"
684     run_dump_test "x86-64-se1"
685     run_dump_test "x86-64-equ"
686     run_dump_test "x86-64-avx512f_vl-intel"
687     run_dump_test "x86-64-avx512f_vl-opts-intel"
688     run_dump_test "x86-64-avx512f_vl-opts"
689     run_dump_test "x86-64-avx512f_vl-wig1-intel"
690     run_dump_test "x86-64-avx512f_vl-wig1"
691     run_dump_test "x86-64-avx512f_vl"
692     run_dump_test "x86-64-avx512cd_vl-intel"
693     run_dump_test "x86-64-avx512cd_vl"
694     run_dump_test "x86-64-avx512bw-intel"
695     run_dump_test "x86-64-avx512bw-opts-intel"
696     run_dump_test "x86-64-avx512bw-opts"
697     run_dump_test "x86-64-avx512bw-wig1-intel"
698     run_dump_test "x86-64-avx512bw-wig1"
699     run_dump_test "x86-64-avx512bw"
700     run_dump_test "x86-64-avx512bw_vl-intel"
701     run_dump_test "x86-64-avx512bw_vl-opts-intel"
702     run_dump_test "x86-64-avx512bw_vl-opts"
703     run_dump_test "x86-64-avx512bw_vl-wig1-intel"
704     run_dump_test "x86-64-avx512bw_vl-wig1"
705     run_dump_test "x86-64-avx512bw_vl"
706     run_dump_test "x86-64-avx512dq-intel"
707     run_dump_test "x86-64-avx512dq"
708     run_dump_test "x86-64-avx512dq_vl-intel"
709     run_dump_test "x86-64-avx512dq_vl"
710     run_dump_test "x86-64-suffix"
711     run_dump_test "x86-64-suffix-intel"
712     run_dump_test "x86-64-avx512dq-rcigrd-intel"
713     run_dump_test "x86-64-avx512dq-rcigrd"
714     run_dump_test "x86-64-avx512dq-rcigrne-intel"
715     run_dump_test "x86-64-avx512dq-rcigrne"
716     run_dump_test "x86-64-avx512dq-rcigru-intel"
717     run_dump_test "x86-64-avx512dq-rcigru"
718     run_dump_test "x86-64-avx512dq-rcigrz-intel"
719     run_dump_test "x86-64-avx512dq-rcigrz"
720     run_dump_test "x86-64-avx512er-rcigrd-intel"
721     run_dump_test "x86-64-avx512er-rcigrd"
722     run_dump_test "x86-64-avx512er-rcigrne-intel"
723     run_dump_test "x86-64-avx512er-rcigrne"
724     run_dump_test "x86-64-avx512er-rcigru-intel"
725     run_dump_test "x86-64-avx512er-rcigru"
726     run_dump_test "x86-64-avx512er-rcigrz-intel"
727     run_dump_test "x86-64-avx512er-rcigrz"
728     run_dump_test "x86-64-avx512f-rcigrd-intel"
729     run_dump_test "x86-64-avx512f-rcigrd"
730     run_dump_test "x86-64-avx512f-rcigrne-intel"
731     run_dump_test "x86-64-avx512f-rcigrne"
732     run_dump_test "x86-64-avx512f-rcigru-intel"
733     run_dump_test "x86-64-avx512f-rcigru"
734     run_dump_test "x86-64-avx512f-rcigrz-intel"
735     run_dump_test "x86-64-avx512f-rcigrz"
736     run_dump_test "x86-64-clwb"
737     run_dump_test "x86-64-clwb-intel"
738     run_dump_test "x86-64-pcommit"
739     run_dump_test "x86-64-pcommit-intel"
740     run_dump_test "x86-64-avx512ifma"
741     run_dump_test "x86-64-avx512ifma-intel"
742     run_dump_test "x86-64-avx512ifma_vl"
743     run_dump_test "x86-64-avx512ifma_vl-intel"
744     run_dump_test "x86-64-avx512vbmi"
745     run_dump_test "x86-64-avx512vbmi-intel"
746     run_dump_test "x86-64-avx512vbmi_vl"
747     run_dump_test "x86-64-avx512vbmi_vl-intel"
748     run_dump_test "x86-64-clzero"
749     run_dump_test "x86-64-mwaitx-bdver4"
750     run_list_test "x86-64-mwaitx-reg"
751     run_dump_test "x86-64-ospke"
752     run_dump_test "x86-64-rdpid"
753     run_dump_test "x86-64-rdpid-intel"
754     run_dump_test "x86-64-fence-as-lock-add-yes"
755     run_dump_test "x86-64-fence-as-lock-add-no"
756     run_dump_test "x86-64-pr20141"
757
758     if { ![istarget "*-*-aix*"]
759       && ![istarget "*-*-beos*"]
760       && ![istarget "*-*-*bsd*"]
761       && ![istarget "*-*-chaos*"]
762       && ![istarget "*-*-kaos*"]
763       && ![istarget "*-*-lynx*"]
764       && ![istarget "*-*-moss*"]
765       && ![istarget "*-*-nto-qnx*"]
766       && ![istarget "*-*-rtems*"]
767       && ![istarget "*-*-sco*"]
768       && ![istarget "*-*-solaris*"]
769       && ![istarget "*-*-sysv*"] } then {
770         run_dump_test "rex"
771     }
772
773     # ELF specific tests
774     if [is_elf_format] then {
775         # Verify that @unwind works.
776         run_dump_test "x86-64-unwind"
777
778         run_dump_test "reloc64"
779         run_list_test "reloc64" "--defsym _bad_=1"
780         run_dump_test "mixed-mode-reloc64"
781         run_dump_test "x86-64-ifunc"
782         run_dump_test "x86-64-opcode-inval"
783         run_dump_test "x86-64-opcode-inval-intel"
784         run_dump_test "intel-got64"
785         run_dump_test "l1om"
786         run_dump_test "k1om"
787         run_dump_test "x86-64-localpic"
788         run_dump_test "debug1"
789         run_dump_test "x86-64-mpx-branch-1"
790         run_dump_test "x86-64-mpx-branch-2"
791
792         run_dump_test "x86-64-dw2-compress-2"
793         run_dump_test "x86-64-dw2-compressed-2"
794
795         run_dump_test "x86-64-size-1"
796         run_dump_test "x86-64-size-2"
797         run_dump_test "x86-64-size-3"
798         run_dump_test "x86-64-size-4"
799         run_dump_test "x86-64-size-5"
800         run_list_test "x86-64-size-inval-1" "-al"
801
802         run_dump_test "x86-64-relax-2"
803         run_dump_test "x86-64-relax-3"
804
805         run_dump_test "x86-64-jump"
806         run_dump_test "x86-64-branch-2"
807         run_list_test "x86-64-branch-3" "-al -mintel64"
808
809         run_dump_test "x86-64-gotpcrel"
810         run_dump_test "x86-64-gotpcrel-no-relax"
811
812         run_dump_test "x86-64-addend"
813     }
814
815     set ASFLAGS "$old_ASFLAGS"
816 }