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