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