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 * 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. --- ...-t2rpntlvw-2.c => amxmovrs-2rpntlvwrs-2.c} | 30 +++++++++---------- .../gcc.target/i386/amxtranspose-2rpntlvw-2.c | 21 ++++++++++--- 2 files changed, 32 insertions(+), 19 deletions(-) rename gcc/testsuite/gcc.target/i386/{amxmovrs-t2rpntlvw-2.c => amxmovrs-2rpntlvwrs-2.c} (62%) diff --git a/gcc/testsuite/gcc.target/i386/amxmovrs-t2rpntlvw-2.c b/gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c similarity index 62% rename from gcc/testsuite/gcc.target/i386/amxmovrs-t2rpntlvw-2.c rename to gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c index e38c6ea277a..0093ef7883f 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 3b1c8701237..2d018276af9 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 (); } -- 2.31.1