1  /* { dg-do compile } */
       2  /* { dg-options "-mwidekl -O2" } */
       3  /* { dg-final { scan-assembler "movdqu\[ \\t\]+\[^\\n\\r\]*, %xmm0" } } */
       4  /* { dg-final { scan-assembler "movdqu\[ \\t\]+\[^\\n\\r\]*16\[^\\n\\r\]*, %xmm1" } } */
       5  /* { dg-final { scan-assembler "movdqu\[ \\t\]+\[^\\n\\r\]*32\[^\\n\\r\]*, %xmm2" } } */
       6  /* { dg-final { scan-assembler "movdqu\[ \\t\]+\[^\\n\\r\]*48\[^\\n\\r\]*, %xmm3" } } */
       7  /* { dg-final { scan-assembler "movdqu\[ \\t\]+\[^\\n\\r\]*64\[^\\n\\r\]*, %xmm4" } } */
       8  /* { dg-final { scan-assembler "movdqu\[ \\t\]+\[^\\n\\r\]*80\[^\\n\\r\]*, %xmm5" } } */
       9  /* { dg-final { scan-assembler "movdqu\[ \\t\]+\[^\\n\\r\]*96\[^\\n\\r\]*, %xmm6" } } */
      10  /* { dg-final { scan-assembler "movdqu\[ \\t\]+\[^\\n\\r\]*112\[^\\n\\r\]*, %xmm7" } } */
      11  /* { dg-final { scan-assembler "aesencwide256kl\[ \\t\]+\[^\\n\\r\]*" } } */
      12  /* { dg-final { scan-assembler "j\[ez\]" } } */
      13  /* { dg-final { scan-assembler "sete" } } */
      14  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\\r\]*%xmm0,\[^\\n\\r\]*" } } */
      15  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\\r\]*%xmm1,\[^\\n\\r\]*16\[^\\n\\r\]*" } } */
      16  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\\r\]*%xmm2,\[^\\n\\r\]*32\[^\\n\\r\]*" } } */
      17  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\\r\]*%xmm3,\[^\\n\\r\]*48\[^\\n\\r\]*" } } */
      18  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\\r\]*%xmm4,\[^\\n\\r\]*64\[^\\n\\r\]*" } } */
      19  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\\r\]*%xmm5,\[^\\n\\r\]*80\[^\\n\\r\]*" } } */
      20  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\\r\]*%xmm6,\[^\\n\\r\]*96\[^\\n\\r\]*" } } */
      21  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\\r\]*%xmm7,\[^\\n\\r\]*112\[^\\n\\r\]*" } } */
      22  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm0, %xmm0" } } */
      23  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm1, %xmm1" } } */
      24  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm2, %xmm2" } } */
      25  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm3, %xmm3" } } */
      26  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm4, %xmm4" } } */
      27  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm5, %xmm5" } } */
      28  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm6, %xmm6" } } */
      29  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm7, %xmm7" } } */
      30  
      31  #include <immintrin.h>
      32  
      33  const char h1[48];
      34  const __m128i idata[8];
      35  __m128i odata[8];
      36  
      37  unsigned char
      38  test_keylocker_8 (void)
      39  {
      40    return _mm_aesencwide256kl_u8 (odata, idata, h1);
      41  }
      42