1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-options "-O2 -mamx-tile " } */
3 /* { dg-final { scan-assembler "ldtilecfg\[ \\t]+\(\[^\)\n\]*\)"  } } */
4 /* { dg-final { scan-assembler "sttilecfg\[ \\t]+\(\[^\)\n\]*\)"  } } */
5 /* { dg-final { scan-assembler "tilerelease"  } } */
6 /* { dg-final { scan-assembler "tileloadd\[ \\t]+\[^\n\]*\\(%\[a-z0-9]*\,%\[a-z0-9\]*\,\[124\]\\)+\[^\n\]*%tmm\[0-9\]"  } } */
7 /* { dg-final { scan-assembler "tileloaddt1\[ \\t]+\[^\n\]*\\(%\[a-z0-9]*\,%\[a-z0-9\]*\,\[124\]\\)+\[^\n\]*%tmm\[0-9\]"  } } */
8 /* { dg-final { scan-assembler "tilestored\[ \\t]+\[^\n\]*%tmm\[0-9\]+\[^\n\]*\\(%\[a-z0-9]*\,%\[a-z0-9\]*\,\[124\]\\)"  } } */
9 /* { dg-final { scan-assembler "tilezero\[ \\t]+\[^\n\]*%tmm\[0-9\]"  } } */
10 #include <immintrin.h>
11 
12 extern int a[];
13 extern const void* base;
14 extern const int stride;
15 
16 #define TMM0 0
17 #define TMM1 1
18 #define TMM2 2
19 #define TMM3 3
20 
TEST()21 void TEST ()
22 {
23   _tile_loadconfig (a);
24   _tile_storeconfig (a);
25   _tile_release ();
26   _tile_loadd (TMM3, base, stride);
27   _tile_stream_loadd (TMM2, base, stride);
28   _tile_stored (TMM1, base, stride);
29   _tile_zero (TMM0);
30 }
31