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