diff options
author | Haochen Jiang <haochen.jiang@intel.com> | 2023-04-10 05:31:26 +0000 |
---|---|---|
committer | LiliCui <lili.cui@intel.com> | 2023-04-10 05:31:26 +0000 |
commit | 5f777caeebfd789f3b4f5ed13e9c3f49e9db0923 (patch) | |
tree | 446db815f4b1eda3f3086b8c9c379a8e06e00fa6 | |
parent | 35aa3404bf77b171a1058724354f1bc65aae0620 (diff) | |
download | gdb-5f777caeebfd789f3b4f5ed13e9c3f49e9db0923.zip gdb-5f777caeebfd789f3b4f5ed13e9c3f49e9db0923.tar.gz gdb-5f777caeebfd789f3b4f5ed13e9c3f49e9db0923.tar.bz2 |
x86: Add inval tests for AMX instructions
gas/ChangeLog:
* 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.
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-amx-complex-inval.l | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-amx-complex-inval.s | 12 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-amx-fp16-inval.l | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-amx-fp16-inval.s | 12 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-amx-inval.l | 22 | ||||
-rw-r--r-- | 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 6d326b4..40e75ac 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/testsuite/gas/i386/x86-64-amx-complex-inval.l new file mode 100644 index 0000000..f9832ad --- /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/testsuite/gas/i386/x86-64-amx-complex-inval.s new file mode 100644 index 0000000..eb34c4e --- /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 0000000..0e0a332 --- /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 0000000..dab3151 --- /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 6757b78..73300e8 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 6e29453..a083727 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 .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 |