Viewing file: amxtile-2.c (1.27 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do run { target { ! ia32 } } } */ /* { dg-require-effective-target amx_tile } */ /* { dg-options "-O2 -mamx-tile " } */ #include <immintrin.h>
#define DO_TEST test_amx_tile void test_amx_tile (); #include "amx-check.h"
void test_amx_tile () { __tilecfg_u cfg_src, cfg_dst; __tile reg_src1, reg_src2, reg_ref;
/* check tile config load & store. */ init_tile_config (&cfg_src); _tile_storeconfig (cfg_dst.a);
if (!check_tile_config (&cfg_src, &cfg_dst)) abort ();
/* check tile register load & store. */ init_tile_reg_and_src (1, reg_src1); _tile_stored (1, reg_ref.buf, _STRIDE); if (!check_tile_register (®_ref, ®_src1)) abort ();
/* check tile stream load instruction */ init_tile_src (2, ®_src2, NULL); _tile_stream_loadd (2, reg_src2.buf, _STRIDE); _tile_stored (2, reg_ref.buf, _STRIDE); if (!check_tile_register (®_ref, ®_src2)) abort ();
/* check tile register zeroing */ zero_tile_src (®_src2); _tile_zero (2); _tile_stored (2, reg_ref.buf, _STRIDE); if (!check_tile_register (®_ref, ®_src2)) abort ();
/* check tile cfg zeroing */ memset (cfg_dst.a, 0, sizeof(__tilecfg)); _tile_release (); _tile_storeconfig (cfg_src.a); if (!check_tile_config (&cfg_src, &cfg_dst)) abort (); }
|