diff options
author | Haochen Jiang <haochen.jiang@intel.com> | 2025-01-23 09:51:54 +0800 |
---|---|---|
committer | Haochen Jiang <haochen.jiang@intel.com> | 2025-01-23 09:51:54 +0800 |
commit | a19aca8afbf141bb550e9040135cc46387ce7f73 (patch) | |
tree | b019a7c19ded5ef9bcbd3e21f1e924f1a4cd416b | |
parent | 447a01c1712c362c6b1a955ad8433a9a85af43e0 (diff) | |
download | gcc-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.c | 21 |
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 (); } |