aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaochen Jiang <haochen.jiang@intel.com>2025-01-23 09:51:54 +0800
committerHaochen Jiang <haochen.jiang@intel.com>2025-01-23 09:51:54 +0800
commita19aca8afbf141bb550e9040135cc46387ce7f73 (patch)
treeb019a7c19ded5ef9bcbd3e21f1e924f1a4cd416b
parent447a01c1712c362c6b1a955ad8433a9a85af43e0 (diff)
downloadgcc-a19aca8afbf141bb550e9040135cc46387ce7f73.zip
gcc-a19aca8afbf141bb550e9040135cc46387ce7f73.tar.gz
gcc-a19aca8afbf141bb550e9040135cc46387ce7f73.tar.bz2
i386: Enhance AMX tests
After Binutils got changed, the previous usage on intrin will raise warning for assembler. We need to change that. Besides that, there are separate issues for both AMX-MOVRS and AMX-TRANSPOSE. For AMX-MOVRS, t2rpntlvwrs tests wrongly used AMX-TRANSPOSE intrins in test. Since the only difference between them is the "rs" hint, it won't change result. For AMX-TRANSPOSE, "t1" hint test is missing. This patch fixed both of them. Also changing AMX-MOVRS test file name to make it match with other AMX tests. gcc/testsuite/ChangeLog: PR target/118270 PR target/118609 * gcc.target/i386/amxmovrs-t2rpntlvw-2.c: Move to... * gcc.target/i386/amxmovrs-2rpntlvwrs-2.c: ...here. * gcc.target/i386/amxtranspose-2rpntlvw-2.c: Add "t1" hint test.
-rw-r--r--gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c (renamed from gcc/testsuite/gcc.target/i386/amxmovrs-t2rpntlvw-2.c)30
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c21
2 files changed, 32 insertions, 19 deletions
diff --git a/gcc/testsuite/gcc.target/i386/amxmovrs-t2rpntlvw-2.c b/gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c
index e38c6ea..0093ef7 100644
--- a/gcc/testsuite/gcc.target/i386/amxmovrs-t2rpntlvw-2.c
+++ b/gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c
@@ -5,17 +5,17 @@
/* { dg-options "-O2 -mamx-movrs -mamx-transpose -mavx512fp16 -mavx512bf16" } */
#define AMX_MOVRS
#define AMX_TRANSPOSE
-#define DO_TEST test_amx_movrs_t2rpntlvw
-void test_amx_movrs_t2rpntlvw ();
+#define DO_TEST test_amx_movrs_t2rpntlvwrs
+void test_amx_movrs_t2rpntlvwrs ();
#include "amx-helper.h"
-#define init_pair_tile_reg_and_src_z_t1(tmm_num, src, buffer, ztype, wtype)\
-{ \
- init_pair_tile_src (tmm_num, &src, buffer, ztype); \
- _tile_2rpntlvwz##ztype##wtype (tmm_num, buffer, _STRIDE);\
+#define init_pair_tile_reg_and_src_z_t(tmm_num, src, buffer, ztype, wtype) \
+{ \
+ init_pair_tile_src (tmm_num, &src, buffer, ztype); \
+ _tile_2rpntlvwz##ztype##rs##wtype (tmm_num, buffer, _STRIDE); \
}
-void test_amx_movrs_t2rpntlvw ()
+void test_amx_movrs_t2rpntlvwrs ()
{
__tilecfg_u cfg;
__tilepair src;
@@ -28,29 +28,29 @@ void test_amx_movrs_t2rpntlvw ()
for (i = 0; i < 2048; i++)
buffer[i] = i % 256;
- /* Check t2rpntlvwz0. */
- init_pair_tile_reg_and_src_z_t1 (0, src, buffer, 0,);
+ /* Check t2rpntlvwz0rs. */
+ init_pair_tile_reg_and_src_z_t (0, src, buffer, 0,);
_tile_stored (0, ref_0.buf, _STRIDE);
_tile_stored (1, ref_1.buf, _STRIDE);
if (!check_pair_tile_register (&ref_0, &ref_1, &src))
abort ();
- /* Check t2rpntlvwz1. */
- init_pair_tile_reg_and_src_z_t1 (1, src, buffer, 1,);
+ /* Check t2rpntlvwz1rs. */
+ init_pair_tile_reg_and_src_z_t (0, src, buffer, 1,);
_tile_stored (0, ref_0.buf, _STRIDE);
_tile_stored (1, ref_1.buf, _STRIDE);
if (!check_pair_tile_register (&ref_0, &ref_1, &src))
abort ();
- /* Check t2rpntlvwz0t1. */
- init_pair_tile_reg_and_src_z_t1 (0, src, buffer, 0, t1);
+ /* Check t2rpntlvwz0t1rs. */
+ init_pair_tile_reg_and_src_z_t (0, src, buffer, 0, t1);
_tile_stored (0, ref_0.buf, _STRIDE);
_tile_stored (1, ref_1.buf, _STRIDE);
if (!check_pair_tile_register (&ref_0, &ref_1, &src))
abort ();
- /* Check t2rpntlvwz1t1. */
- init_pair_tile_reg_and_src_z_t1 (1, src, buffer, 1, t1);
+ /* Check t2rpntlvwz1t1rs. */
+ init_pair_tile_reg_and_src_z_t (0, src, buffer, 1, t1);
_tile_stored (0, ref_0.buf, _STRIDE);
_tile_stored (1, ref_1.buf, _STRIDE);
if (!check_pair_tile_register (&ref_0, &ref_1, &src))
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c b/gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c
index 3b1c870..2d01827 100644
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c
+++ b/gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c
@@ -5,10 +5,10 @@
#define DO_TEST test_amx_transpose_t2rpntlvw
void test_amx_transpose_t2rpntlvw ();
#include "amx-helper.h"
-#define init_pair_tile_reg_and_src_z(tmm_num, src, buffer, ztype) \
+#define init_pair_tile_reg_and_src_z_t(tmm_num, src, buffer, ztype, wtype) \
{ \
init_pair_tile_src (tmm_num, &src, buffer, ztype); \
- _tile_2rpntlvwz##ztype (tmm_num, buffer, _STRIDE); \
+ _tile_2rpntlvwz##ztype##wtype (tmm_num, buffer, _STRIDE); \
}
void test_amx_transpose_t2rpntlvw ()
@@ -25,17 +25,30 @@ void test_amx_transpose_t2rpntlvw ()
buffer[i] = i % 256;
/* Check t2rpntlvwz0. */
- init_pair_tile_reg_and_src_z (0, src, buffer, 0);
+ init_pair_tile_reg_and_src_z_t (0, src, buffer, 0,);
_tile_stored (0, ref_0.buf, _STRIDE);
_tile_stored (1, ref_1.buf, _STRIDE);
if (!check_pair_tile_register (&ref_0, &ref_1, &src))
abort ();
/* Check t2rpntlvwz1. */
- init_pair_tile_reg_and_src_z (1, src, buffer, 1);
+ init_pair_tile_reg_and_src_z_t (0, src, buffer, 1,);
_tile_stored (0, ref_0.buf, _STRIDE);
_tile_stored (1, ref_1.buf, _STRIDE);
if (!check_pair_tile_register (&ref_0, &ref_1, &src))
abort ();
+ /* Check t2rpntlvwz0t1. */
+ init_pair_tile_reg_and_src_z_t (0, src, buffer, 0, t1);
+ _tile_stored (0, ref_0.buf, _STRIDE);
+ _tile_stored (1, ref_1.buf, _STRIDE);
+ if (!check_pair_tile_register (&ref_0, &ref_1, &src))
+ abort ();
+
+ /* Check t2rpntlvwz1t1. */
+ init_pair_tile_reg_and_src_z_t (0, src, buffer, 1, t1);
+ _tile_stored (0, ref_0.buf, _STRIDE);
+ _tile_stored (1, ref_1.buf, _STRIDE);
+ if (!check_pair_tile_register (&ref_0, &ref_1, &src))
+ abort ();
}