(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
aes_2.c
       1  
       2  /* { dg-do compile } */
       3  /* { dg-options "-O3 -march=armv8-a+aes" } */
       4  
       5  #include "arm_neon.h"
       6  
       7  uint8x16_t
       8  test0 (uint8x16_t a, uint8x16_t b)
       9  {
      10    uint8x16_t result;
      11    result = vaeseq_u8 (a, b);
      12    result = vaeseq_u8 (result, a);
      13    return result;
      14  }
      15  
      16  uint8x16_t
      17  test1 (uint8x16_t a, uint8x16_t b)
      18  {
      19    uint8x16_t result;
      20    result = vaeseq_u8 (a, b);
      21    result = vaeseq_u8 (a, result);
      22    return result;
      23  }
      24  
      25  uint8x16_t
      26  test2 (uint8x16_t a, uint8x16_t b)
      27  {
      28    uint8x16_t result;
      29    result = vaeseq_u8 (b, a);
      30    result = vaeseq_u8 (result, b);
      31    return result;
      32  }
      33  
      34  uint8x16_t
      35  test3 (uint8x16_t a, uint8x16_t b)
      36  {
      37    uint8x16_t result;
      38    result = vaeseq_u8 (b, a);
      39    result = vaeseq_u8 (b, result);
      40    return result;
      41  }
      42  
      43  uint8x16_t
      44  test4 (uint8x16_t a, uint8x16_t b)
      45  {
      46    uint8x16_t result;
      47    result = vaesdq_u8 (a, b);
      48    result = vaesdq_u8 (result, a);
      49    return result;
      50  }
      51  
      52  uint8x16_t
      53  test5 (uint8x16_t a, uint8x16_t b)
      54  {
      55    uint8x16_t result;
      56    result = vaesdq_u8 (a, b);
      57    result = vaesdq_u8 (a, result);
      58    return result;
      59  }
      60  
      61  uint8x16_t
      62  test6 (uint8x16_t a, uint8x16_t b)
      63  {
      64    uint8x16_t result;
      65    result = vaesdq_u8 (b, a);
      66    result = vaesdq_u8 (result, b);
      67    return result;
      68  }
      69  
      70  uint8x16_t
      71  test7 (uint8x16_t a, uint8x16_t b)
      72  {
      73    uint8x16_t result;
      74    result = vaesdq_u8 (b, a);
      75    result = vaesdq_u8 (b, result);
      76    return result;
      77  }
      78  /* { dg-final { scan-assembler-not "mov" } } */
      79  /* { dg-final { scan-assembler "aesd\tv" } } */
      80  /* { dg-final { scan-assembler "aese\tv" } } */
      81