diff options
author | Tejas Joshi <TejasSanjay.Joshi@amd.com> | 2022-11-15 21:56:37 +0530 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2022-11-15 10:07:02 -0800 |
commit | b0e8fa7ff0dc9a32ff71df0e895aa7fb5089fcfa (patch) | |
tree | 6a0f801be0b037087fc7a45033a4bb927ab4aad1 /gas/testsuite | |
parent | 7e21379963c8be351a03693ce64d0a597ea0dbd7 (diff) | |
download | gdb-b0e8fa7ff0dc9a32ff71df0e895aa7fb5089fcfa.zip gdb-b0e8fa7ff0dc9a32ff71df0e895aa7fb5089fcfa.tar.gz gdb-b0e8fa7ff0dc9a32ff71df0e895aa7fb5089fcfa.tar.bz2 |
Add AMD znver4 processor support
2022-09-28 Tejas Joshi <TejasSanjay.Joshi@amd.com>
gas/
* config/tc-i386.c (cpu_arch): Add znver4 ARCH and rmpquery SUBARCH.
(md_assemble): Expand comment before swap_operands() with rmpquery.
* doc/c-i386.texi: Add znver4.
* testsuite/gas/i386/arch-14-1.d: New.
* testsuite/gas/i386/arch-14-1.s: New.
* testsuite/gas/i386/arch-14-znver4.d: New.
* testsuite/gas/i386/i386.exp: Add new znver4 test cases.
* testsuite/gas/i386/rmpquery.d: New.
* testsuite/gas/i386/rmpquery.s: New.
* testsuite/gas/i386/x86-64-arch-4-1.d: New.
* testsuite/gas/i386/x86-64-arch-4-1.s: New.
* testsuite/gas/i386/x86-64-arch-4-znver4.d: New.
opcodes/
* i386-dis.c (x86_64_table): Add rmpquery.
* i386-gen.c (cpu_flag_init): Add CPU_ZNVER4_FLAGS and
CPU_RMPQUERY_FLAGS.
(cpu_flags): Add CpuRMPQUERY.
* i386-opc.h (enum): Add CpuRMPQUERY.
(i386_cpu_flags): Add cpurmpquery.
* i386-opc.tbl: Add rmpquery insn.
* i386-init.h: Re-generated.
* i386-tbl.h: Re-generated.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/gas/i386/arch-14-1.d | 22 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/arch-14-1.s | 16 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/arch-14-znver4.d | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/rmpquery.d | 20 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/rmpquery.s | 13 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-arch-4-1.d | 23 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-arch-4-1.s | 18 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-arch-4-znver4.d | 5 |
9 files changed, 127 insertions, 0 deletions
diff --git a/gas/testsuite/gas/i386/arch-14-1.d b/gas/testsuite/gas/i386/arch-14-1.d new file mode 100644 index 0000000..649c71c --- /dev/null +++ b/gas/testsuite/gas/i386/arch-14-1.d @@ -0,0 +1,22 @@ +#objdump: -dw +#name: i386 arch 14-1 + +.*: file format .* + +Disassembly of section .text: + +0+ <.text>: +[ ]*[a-f0-9]+:[ ]*62 f1 d5 48 58 f4[ ]*vaddpd %zmm4,%zmm5,%zmm6 +[ ]*[a-f0-9]+:[ ]*62 f2 7d 48 1b 31[ ]*vbroadcastf32x8 \(%ecx\),%zmm6 +[ ]*[a-f0-9]+:[ ]*62 f2 d5 48 b4 f4[ ]*vpmadd52luq %zmm4,%zmm5,%zmm6 +[ ]*[a-f0-9]+:[ ]*62 f2 7d 48 c4 f5[ ]*vpconflictd %zmm5,%zmm6 +[ ]*[a-f0-9]+:[ ]*62 f2 7d 48 1c f5[ ]*vpabsb %zmm5,%zmm6 +[ ]*[a-f0-9]+:[ ]*62 f1 d5 0f 58 f4[ ]*vaddpd %xmm4,%xmm5,%xmm6\{%k7\} +[ ]*[a-f0-9]+:[ ]*62 f2 57 48 72 f4[ ]*vcvtne2ps2bf16 %zmm4,%zmm5,%zmm6 +[ ]*[a-f0-9]+:[ ]*62 f2 55 48 8d f4[ ]*vpermb %zmm4,%zmm5,%zmm6 +[ ]*[a-f0-9]+:[ ]*62 f2 7d 4f 63 31[ ]*vpcompressb %zmm6,\(%ecx\)\{%k7\} +[ ]*[a-f0-9]+:[ ]*62 f2 75 48 52 e3[ ]*vpdpwssd %zmm3,%zmm1,%zmm4 +[ ]*[a-f0-9]+:[ ]*62 f2 55 48 8f ec[ ]*vpshufbitqmb %zmm4,%zmm5,%k5 +[ ]*[a-f0-9]+:[ ]*62 f2 7d 48 55 f5[ ]*vpopcntd %zmm5,%zmm6 +[ ]*[a-f0-9]+:[ ]*66 0f 38 cf ec[ ]*gf2p8mulb %xmm4,%xmm5 +#pass diff --git a/gas/testsuite/gas/i386/arch-14-1.s b/gas/testsuite/gas/i386/arch-14-1.s new file mode 100644 index 0000000..59e3a68 --- /dev/null +++ b/gas/testsuite/gas/i386/arch-14-1.s @@ -0,0 +1,16 @@ +# Test -march= + .text + + vaddpd %zmm4, %zmm5, %zmm6 # AVX512F + vbroadcastf32x8 (%ecx), %zmm6 # AVX512DQ + vpmadd52luq %zmm4, %zmm5, %zmm6 # AVX512IFMA + vpconflictd %zmm5, %zmm6 # AVX512CD + vpabsb %zmm5, %zmm6 # AVX512BW + vaddpd %xmm4, %xmm5, %xmm6{%k7} # AVX512{F,VL} + vcvtne2ps2bf16 %zmm4, %zmm5, %zmm6 #AVX512_BF16 + vpermb %zmm4, %zmm5, %zmm6 # AVX512VBMI + vpcompressb %zmm6, (%ecx){%k7} # AVX512VBMI2 + vpdpwssd %zmm3, %zmm1, %zmm4 # AVX512VNNI + vpshufbitqmb %zmm4, %zmm5, %k5 # AVX512BITALG + vpopcntd %zmm5, %zmm6 # AVX512_VPOPCNTDQ + gf2p8mulb %xmm4, %xmm5 # GFNI diff --git a/gas/testsuite/gas/i386/arch-14-znver4.d b/gas/testsuite/gas/i386/arch-14-znver4.d new file mode 100644 index 0000000..3ae309f --- /dev/null +++ b/gas/testsuite/gas/i386/arch-14-znver4.d @@ -0,0 +1,5 @@ +#source: arch-14-1.s +#as: -march=znver4 +#objdump: -dw +#name: i386 arch 14 (znver4) +#dump: arch-14-1.d diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index cad783e..f989e56 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -196,6 +196,7 @@ if [gas_32_check] then { run_dump_test "arch-13-znver1" run_dump_test "arch-13-znver2" run_dump_test "arch-14-znver3" + run_dump_test "arch-14-znver4" run_dump_test "arch-10-btver1" run_dump_test "arch-10-btver2" run_list_test "arch-10-1" "-march=generic32 -I${srcdir}/$subdir -al" @@ -207,6 +208,7 @@ if [gas_32_check] then { run_dump_test "arch-12" run_dump_test "arch-13" run_dump_test "arch-14" + run_dump_test "arch-14-1" run_list_test "arch-dflt" "-march=generic32 -al" run_list_test "arch-stk" "-march=generic32 -al" run_dump_test "8087" @@ -913,6 +915,8 @@ if [gas_64_check] then { run_dump_test "x86-64-arch-2" run_dump_test "x86-64-arch-3" run_dump_test "x86-64-arch-4" + run_dump_test "x86-64-arch-4-1" + run_dump_test "rmpquery" run_dump_test "x86-64-arch-2-lzcnt" run_dump_test "x86-64-arch-2-prefetchw" run_dump_test "x86-64-arch-2-bdver1" @@ -922,6 +926,7 @@ if [gas_64_check] then { run_dump_test "x86-64-arch-3-znver1" run_dump_test "x86-64-arch-3-znver2" run_dump_test "x86-64-arch-4-znver3" + run_dump_test "x86-64-arch-4-znver4" run_dump_test "x86-64-arch-2-btver1" run_dump_test "x86-64-arch-2-btver2" run_list_test "x86-64-arch-2-1" "-march=generic64 -I${srcdir}/$subdir -al" diff --git a/gas/testsuite/gas/i386/rmpquery.d b/gas/testsuite/gas/i386/rmpquery.d new file mode 100644 index 0000000..4d93768 --- /dev/null +++ b/gas/testsuite/gas/i386/rmpquery.d @@ -0,0 +1,20 @@ +#as: -march=generic64+rmpquery +#objdump: -dw +#name: 64-bit RMPQUERY insn +#source: rmpquery.s + +.*: +file format .* + + +Disassembly of section \.text: + +0+ <att>: +[ ]*[a-f0-9]+:[ ]+f3 0f 01 fd[ ]+rmpquery[ ]* +[ ]*[a-f0-9]+:[ ]+f3 0f 01 fd[ ]+rmpquery[ ]* +[ ]*[a-f0-9]+:[ ]+67 f3 0f 01 fd[ ]+addr32 rmpquery[ ]* + +[0-9a-f]+ <intel>: +[ ]*[a-f0-9]+:[ ]+f3 0f 01 fd[ ]+rmpquery[ ]* +[ ]*[a-f0-9]+:[ ]+f3 0f 01 fd[ ]+rmpquery[ ]* +[ ]*[a-f0-9]+:[ ]+67 f3 0f 01 fd[ ]+addr32 rmpquery[ ]* +#pass diff --git a/gas/testsuite/gas/i386/rmpquery.s b/gas/testsuite/gas/i386/rmpquery.s new file mode 100644 index 0000000..7539373 --- /dev/null +++ b/gas/testsuite/gas/i386/rmpquery.s @@ -0,0 +1,13 @@ +# Check RMPQUERY instruction + + .text +att: + rmpquery + rmpquery %rax, %rcx, %rdx + rmpquery %eax, %rcx, %rdx + + .intel_syntax noprefix +intel: + rmpquery + rmpquery rax, rcx, rdx + rmpquery eax, rcx, rdx diff --git a/gas/testsuite/gas/i386/x86-64-arch-4-1.d b/gas/testsuite/gas/i386/x86-64-arch-4-1.d new file mode 100644 index 0000000..f33cd6b --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-arch-4-1.d @@ -0,0 +1,23 @@ +#objdump: -dw +#name: x86-64 arch 4-1 + +.*: file format .* + +Disassembly of section .text: + +0+ <.text>: +[ ]*[a-f0-9]+:[ ]*62 01 95 40 58 f4[ ]*vaddpd %zmm28,%zmm29,%zmm30 +[ ]*[a-f0-9]+:[ ]*62 62 7d 48 1b 31[ ]*vbroadcastf32x8 \(%rcx\),%zmm30 +[ ]*[a-f0-9]+:[ ]*62 02 95 40 b4 f4[ ]*vpmadd52luq %zmm28,%zmm29,%zmm30 +[ ]*[a-f0-9]+:[ ]*62 02 7d 48 c4 f5[ ]*vpconflictd %zmm29,%zmm30 +[ ]*[a-f0-9]+:[ ]*62 02 7d 48 1c f5[ ]*vpabsb %zmm29,%zmm30 +[ ]*[a-f0-9]+:[ ]*62 01 95 00 58 f4[ ]*vaddpd %xmm28,%xmm29,%xmm30 +[ ]*[a-f0-9]+:[ ]*62 02 17 40 72 f4[ ]*vcvtne2ps2bf16 %zmm28,%zmm29,%zmm30 +[ ]*[a-f0-9]+:[ ]*62 02 15 40 8d f4[ ]*vpermb %zmm28,%zmm29,%zmm30 +[ ]*[a-f0-9]+:[ ]*62 62 7d 4f 63 31[ ]*vpcompressb %zmm30,\(%rcx\)\{%k7\} +[ ]*[a-f0-9]+:[ ]*62 a2 6d 40 52 d1[ ]*vpdpwssd %zmm17,%zmm18,%zmm18 +[ ]*[a-f0-9]+:[ ]*62 92 15 40 8f ec[ ]*vpshufbitqmb %zmm28,%zmm29,%k5 +[ ]*[a-f0-9]+:[ ]*62 02 7d 48 55 f5[ ]*vpopcntd %zmm29,%zmm30 +[ ]*[a-f0-9]+:[ ]*66 0f 38 cf ec[ ]*gf2p8mulb %xmm4,%xmm5 +[ ]*[a-f0-9]+:[ ]*f3 0f 01 fd[ ]*rmpquery +#pass diff --git a/gas/testsuite/gas/i386/x86-64-arch-4-1.s b/gas/testsuite/gas/i386/x86-64-arch-4-1.s new file mode 100644 index 0000000..57a370f --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-arch-4-1.s @@ -0,0 +1,18 @@ +# Test -march= + .text + + vaddpd %zmm28, %zmm29, %zmm30 # AVX512F + vbroadcastf32x8 (%rcx), %zmm30 # AVX512DQ + vpmadd52luq %zmm28, %zmm29, %zmm30 # AVX512IFMA + vpconflictd %zmm29, %zmm30 # AVX512CD + vpabsb %zmm29, %zmm30 # AVX512BW + vaddpd %xmm28, %xmm29, %xmm30 # AVX512{F,VL} + vcvtne2ps2bf16 %zmm28, %zmm29, %zmm30 #AVX512_BF16 + vpermb %zmm28, %zmm29, %zmm30 # AVX512VBMI + vpcompressb %zmm30, (%rcx){%k7} # AVX512VBMI2 + vpdpwssd %zmm17, %zmm18, %zmm18 # AVX512VNNI + vpshufbitqmb %zmm28, %zmm29, %k5 # AVX512BITALG + vpopcntd %zmm29, %zmm30 # AVX512_VPOPCNTDQ + gf2p8mulb %xmm4, %xmm5 +# RMPQUERY + rmpquery diff --git a/gas/testsuite/gas/i386/x86-64-arch-4-znver4.d b/gas/testsuite/gas/i386/x86-64-arch-4-znver4.d new file mode 100644 index 0000000..d64c96f --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-arch-4-znver4.d @@ -0,0 +1,5 @@ +#source: x86-64-arch-4-1.s +#as: -march=znver4 +#objdump: -dw +#name: x86-64 arch 4 (znver4) +#dump: x86-64-arch-4-1.d |