1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  #pragma GCC target "+sve2-sm4"
       6  
       7  /*
       8  ** sm4e_u32_tied1:
       9  **	sm4e	z0\.s, z0\.s, z1\.s
      10  **	ret
      11  */
      12  TEST_UNIFORM_Z (sm4e_u32_tied1, svuint32_t,
      13  		z0 = svsm4e_u32 (z0, z1),
      14  		z0 = svsm4e (z0, z1))
      15  
      16  /* Bad RA choice: no preferred output sequence.  */
      17  TEST_UNIFORM_Z (sm4e_u32_tied2, svuint32_t,
      18  		z0 = svsm4e_u32 (z1, z0),
      19  		z0 = svsm4e (z1, z0))
      20  
      21  /*
      22  ** sm4e_u32_untied:
      23  ** (
      24  **	mov	z0\.d, z1\.d
      25  **	sm4e	z0\.s, z0\.s, z2\.s
      26  ** |
      27  **	sm4e	z1\.s, z0\.s, z2\.s
      28  **	mov	z0\.d, z1\.d
      29  ** )
      30  **	ret
      31  */
      32  TEST_UNIFORM_Z (sm4e_u32_untied, svuint32_t,
      33  		z0 = svsm4e_u32 (z1, z2),
      34  		z0 = svsm4e (z1, z2))