1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** addlb_u32_tied1:
       7  **	uaddlb	z0\.s, z0\.h, z1\.h
       8  **	ret
       9  */
      10  TEST_TYPE_CHANGE_Z (addlb_u32_tied1, svuint32_t, svuint16_t,
      11  		    z0_res = svaddlb_u32 (z0, z1),
      12  		    z0_res = svaddlb (z0, z1))
      13  
      14  /*
      15  ** addlb_u32_tied2:
      16  **	uaddlb	z0\.s, z1\.h, z0\.h
      17  **	ret
      18  */
      19  TEST_TYPE_CHANGE_Z (addlb_u32_tied2, svuint32_t, svuint16_t,
      20  		    z0_res = svaddlb_u32 (z1, z0),
      21  		    z0_res = svaddlb (z1, z0))
      22  
      23  /*
      24  ** addlb_u32_untied:
      25  **	uaddlb	z0\.s, z1\.h, z2\.h
      26  **	ret
      27  */
      28  TEST_TYPE_CHANGE_Z (addlb_u32_untied, svuint32_t, svuint16_t,
      29  		    z0_res = svaddlb_u32 (z1, z2),
      30  		    z0_res = svaddlb (z1, z2))
      31  
      32  /*
      33  ** addlb_w0_u32_tied1:
      34  **	mov	(z[0-9]+\.h), w0
      35  **	uaddlb	z0\.s, z0\.h, \1
      36  **	ret
      37  */
      38  TEST_TYPE_CHANGE_ZX (addlb_w0_u32_tied1, svuint32_t, svuint16_t, uint16_t,
      39  		     z0_res = svaddlb_n_u32 (z0, x0),
      40  		     z0_res = svaddlb (z0, x0))
      41  
      42  /*
      43  ** addlb_w0_u32_untied:
      44  **	mov	(z[0-9]+\.h), w0
      45  **	uaddlb	z0\.s, z1\.h, \1
      46  **	ret
      47  */
      48  TEST_TYPE_CHANGE_ZX (addlb_w0_u32_untied, svuint32_t, svuint16_t, uint16_t,
      49  		     z0_res = svaddlb_n_u32 (z1, x0),
      50  		     z0_res = svaddlb (z1, x0))
      51  
      52  /*
      53  ** addlb_11_u32_tied1:
      54  **	mov	(z[0-9]+\.h), #11
      55  **	uaddlb	z0\.s, z0\.h, \1
      56  **	ret
      57  */
      58  TEST_TYPE_CHANGE_Z (addlb_11_u32_tied1, svuint32_t, svuint16_t,
      59  		    z0_res = svaddlb_n_u32 (z0, 11),
      60  		    z0_res = svaddlb (z0, 11))
      61  
      62  /*
      63  ** addlb_11_u32_untied:
      64  **	mov	(z[0-9]+\.h), #11
      65  **	uaddlb	z0\.s, z1\.h, \1
      66  **	ret
      67  */
      68  TEST_TYPE_CHANGE_Z (addlb_11_u32_untied, svuint32_t, svuint16_t,
      69  		    z0_res = svaddlb_n_u32 (z1, 11),
      70  		    z0_res = svaddlb (z1, 11))