1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** tbx_u32_tied1:
       7  **	tbx	z0\.s, z1\.s, z4\.s
       8  **	ret
       9  */
      10  TEST_DUAL_Z (tbx_u32_tied1, svuint32_t, svuint32_t,
      11  	     z0 = svtbx_u32 (z0, z1, z4),
      12  	     z0 = svtbx (z0, z1, z4))
      13  
      14  /* Bad RA choice: no preferred output sequence.  */
      15  TEST_DUAL_Z (tbx_u32_tied2, svuint32_t, svuint32_t,
      16  	     z0 = svtbx_u32 (z1, z0, z4),
      17  	     z0 = svtbx (z1, z0, z4))
      18  
      19  /* Bad RA choice: no preferred output sequence.  */
      20  TEST_DUAL_Z_REV (tbx_u32_tied3, svuint32_t, svuint32_t,
      21  		 z0_res = svtbx_u32 (z4, z5, z0),
      22  		 z0_res = svtbx (z4, z5, z0))
      23  
      24  /*
      25  ** tbx_u32_untied:
      26  ** (
      27  **	mov	z0\.d, z1\.d
      28  **	tbx	z0\.s, z2\.s, z4\.s
      29  ** |
      30  **	tbx	z1\.s, z2\.s, z4\.s
      31  **	mov	z0\.d, z1\.d
      32  ** )
      33  **	ret
      34  */
      35  TEST_DUAL_Z (tbx_u32_untied, svuint32_t, svuint32_t,
      36  	     z0 = svtbx_u32 (z1, z2, z4),
      37  	     z0 = svtbx (z1, z2, z4))