From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7804) id E810D3858C52; Mon, 10 Apr 2023 06:52:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E810D3858C52 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Lili Cui To: bfd-cvs@sourceware.org Subject: [binutils-gdb] x86: Add inval tests for AMX instructions X-Act-Checkin: binutils-gdb X-Git-Author: Haochen Jiang X-Git-Refname: refs/heads/master X-Git-Oldrev: 35aa3404bf77b171a1058724354f1bc65aae0620 X-Git-Newrev: 5f777caeebfd789f3b4f5ed13e9c3f49e9db0923 Message-Id: <20230410065216.E810D3858C52@sourceware.org> Date: Mon, 10 Apr 2023 06:52:16 +0000 (GMT) X-BeenThere: binutils-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Apr 2023 06:52:17 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D5f777caeebfd= 789f3b4f5ed13e9c3f49e9db0923 commit 5f777caeebfd789f3b4f5ed13e9c3f49e9db0923 Author: Haochen Jiang Date: Mon Apr 10 05:31:26 2023 +0000 x86: Add inval tests for AMX instructions =20 gas/ChangeLog: =20 * testsuite/gas/i386/i386.exp: Run AMX-FP16 and AMX-COMPLEX inval testcases. * testsuite/gas/i386/x86-64-amx-inval.l: Add AMX-BF16 tests. * testsuite/gas/i386/x86-64-amx-inval.s: Ditto. * testsuite/gas/i386/x86-64-amx-complex-inval.l: New test. * testsuite/gas/i386/x86-64-amx-complex-inval.s: Ditto. * testsuite/gas/i386/x86-64-amx-fp16-inval.l: Ditto. * testsuite/gas/i386/x86-64-amx-fp16-inval.s: Ditto. Diff: --- gas/testsuite/gas/i386/i386.exp | 2 ++ gas/testsuite/gas/i386/x86-64-amx-complex-inval.l | 7 +++++++ gas/testsuite/gas/i386/x86-64-amx-complex-inval.s | 12 ++++++++++++ gas/testsuite/gas/i386/x86-64-amx-fp16-inval.l | 7 +++++++ gas/testsuite/gas/i386/x86-64-amx-fp16-inval.s | 12 ++++++++++++ gas/testsuite/gas/i386/x86-64-amx-inval.l | 22 ++++++++++++++-----= --- gas/testsuite/gas/i386/x86-64-amx-inval.s | 6 ++++++ 7 files changed, 60 insertions(+), 8 deletions(-) diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.= exp index 6d326b49a39..40e75ac6f88 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -1169,6 +1169,7 @@ if [gas_64_check] then { run_dump_test "x86-64-amx-fp16" run_dump_test "x86-64-amx-fp16-intel" run_dump_test "x86-64-amx-fp16-bad" + run_list_test "x86-64-amx-fp16-inval" run_dump_test "x86-64-avx-ifma" run_dump_test "x86-64-avx-ifma-intel" run_list_test "x86-64-avx-ifma-inval" @@ -1187,6 +1188,7 @@ if [gas_64_check] then { run_dump_test "x86-64-amx-complex" run_dump_test "x86-64-amx-complex-intel" run_dump_test "x86-64-amx-complex-bad" + run_list_test "x86-64-amx-complex-inval" run_dump_test "x86-64-clzero" run_dump_test "x86-64-mwaitx-bdver4" run_list_test "x86-64-mwaitx-reg" diff --git a/gas/testsuite/gas/i386/x86-64-amx-complex-inval.l b/gas/testsu= ite/gas/i386/x86-64-amx-complex-inval.l new file mode 100644 index 00000000000..f9832ada295 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-amx-complex-inval.l @@ -0,0 +1,7 @@ +.* Assembler messages: +.*:5: Error: all tmm registers must be distinct for `tcmmimfp16ps' +.*:6: Error: all tmm registers must be distinct for `tcmmimfp16ps' +.*:7: Error: all tmm registers must be distinct for `tcmmimfp16ps' +.*:10: Error: all tmm registers must be distinct for `tcmmimfp16ps' +.*:11: Error: all tmm registers must be distinct for `tcmmimfp16ps' +.*:12: Error: all tmm registers must be distinct for `tcmmimfp16ps' diff --git a/gas/testsuite/gas/i386/x86-64-amx-complex-inval.s b/gas/testsu= ite/gas/i386/x86-64-amx-complex-inval.s new file mode 100644 index 00000000000..eb34c4e48e0 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-amx-complex-inval.s @@ -0,0 +1,12 @@ +# Check illegal register usage in AMX-COMPLEX instructions + + .text +_start: + tcmmimfp16ps %tmm1, %tmm1, %tmm0 + tcmmimfp16ps %tmm1, %tmm0, %tmm1 + tcmmimfp16ps %tmm0, %tmm1, %tmm1 + + .intel_syntax noprefix + tcmmimfp16ps tmm0, tmm1, tmm1 + tcmmimfp16ps tmm1, tmm0, tmm1 + tcmmimfp16ps tmm0, tmm1, tmm1 diff --git a/gas/testsuite/gas/i386/x86-64-amx-fp16-inval.l b/gas/testsuite= /gas/i386/x86-64-amx-fp16-inval.l new file mode 100644 index 00000000000..0e0a332b665 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-amx-fp16-inval.l @@ -0,0 +1,7 @@ +.* Assembler messages: +.*:5: Error: all tmm registers must be distinct for `tdpfp16ps' +.*:6: Error: all tmm registers must be distinct for `tdpfp16ps' +.*:7: Error: all tmm registers must be distinct for `tdpfp16ps' +.*:10: Error: all tmm registers must be distinct for `tdpfp16ps' +.*:11: Error: all tmm registers must be distinct for `tdpfp16ps' +.*:12: Error: all tmm registers must be distinct for `tdpfp16ps' diff --git a/gas/testsuite/gas/i386/x86-64-amx-fp16-inval.s b/gas/testsuite= /gas/i386/x86-64-amx-fp16-inval.s new file mode 100644 index 00000000000..dab3151983d --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-amx-fp16-inval.s @@ -0,0 +1,12 @@ +# Check illegal register usage in AMX-FP16 instructions + + .text +_start: + tdpfp16ps %tmm1, %tmm1, %tmm0 + tdpfp16ps %tmm1, %tmm0, %tmm1 + tdpfp16ps %tmm0, %tmm1, %tmm1 + + .intel_syntax noprefix + tdpfp16ps tmm0, tmm1, tmm1 + tdpfp16ps tmm1, tmm0, tmm1 + tdpfp16ps tmm0, tmm1, tmm1 diff --git a/gas/testsuite/gas/i386/x86-64-amx-inval.l b/gas/testsuite/gas/= i386/x86-64-amx-inval.l index 6757b780ea8..73300e84d4f 100644 --- a/gas/testsuite/gas/i386/x86-64-amx-inval.l +++ b/gas/testsuite/gas/i386/x86-64-amx-inval.l @@ -7,11 +7,17 @@ .*:10: Error: all tmm registers must be distinct for `tdpbssd' .*:11: Error: all tmm registers must be distinct for `tdpbssd' .*:12: Error: all tmm registers must be distinct for `tdpbssd' -.*:15: Error: `\[rip\]' cannot be used here -.*:16: Error: `\[rip\]' cannot be used here -.*:17: Error: `\[rip\]' cannot be used here -.*:18: Error: operand size mismatch for `tdpbssd' -.*:19: Error: operand size mismatch for `vaddps' -.*:20: Error: all tmm registers must be distinct for `tdpbssd' -.*:21: Error: all tmm registers must be distinct for `tdpbssd' -.*:22: Error: all tmm registers must be distinct for `tdpbssd' +.*:13: Error: all tmm registers must be distinct for `tdpbf16ps' +.*:14: Error: all tmm registers must be distinct for `tdpbf16ps' +.*:15: Error: all tmm registers must be distinct for `tdpbf16ps' +.*:18: Error: `\[rip\]' cannot be used here +.*:19: Error: `\[rip\]' cannot be used here +.*:20: Error: `\[rip\]' cannot be used here +.*:21: Error: operand size mismatch for `tdpbssd' +.*:22: Error: operand size mismatch for `vaddps' +.*:23: Error: all tmm registers must be distinct for `tdpbssd' +.*:24: Error: all tmm registers must be distinct for `tdpbssd' +.*:25: Error: all tmm registers must be distinct for `tdpbssd' +.*:26: Error: all tmm registers must be distinct for `tdpbf16ps' +.*:27: Error: all tmm registers must be distinct for `tdpbf16ps' +.*:28: Error: all tmm registers must be distinct for `tdpbf16ps' diff --git a/gas/testsuite/gas/i386/x86-64-amx-inval.s b/gas/testsuite/gas/= i386/x86-64-amx-inval.s index 6e294536697..a083727e5d5 100644 --- a/gas/testsuite/gas/i386/x86-64-amx-inval.s +++ b/gas/testsuite/gas/i386/x86-64-amx-inval.s @@ -10,6 +10,9 @@ _start: tdpbssd %tmm1, %tmm1, %tmm0 tdpbssd %tmm1, %tmm0, %tmm1 tdpbssd %tmm0, %tmm1, %tmm1 + tdpbf16ps %tmm1, %tmm1, %tmm0 + tdpbf16ps %tmm1, %tmm0, %tmm1 + tdpbf16ps %tmm0, %tmm1, %tmm1 =20 .intel_syntax noprefix tileloadd tmm1, [rip] @@ -20,3 +23,6 @@ _start: tdpbssd tmm0, tmm1, tmm1 tdpbssd tmm1, tmm0, tmm1 tdpbssd tmm1, tmm1, tmm0 + tdpbf16ps tmm0, tmm1, tmm1 + tdpbf16ps tmm1, tmm0, tmm1 + tdpbf16ps tmm0, tmm1, tmm1