1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** dupq_25600s_u16:
       7  **	mov	z0\.s, #25600
       8  **	ret
       9  */
      10  TEST_UNIFORM_Z (dupq_25600s_u16, svuint16_t,
      11  		z0 = svdupq_n_u16 (25600, 0, 25600, 0, 25600, 0, 25600, 0),
      12  		z0 = svdupq_u16 (25600, 0, 25600, 0, 25600, 0, 25600, 0))
      13  
      14  /*
      15  ** dupq_7ff00s_u16:
      16  **	mov	z0\.s, #524032
      17  **	ret
      18  */
      19  TEST_UNIFORM_Z (dupq_7ff00s_u16, svuint16_t,
      20  		z0 = svdupq_n_u16 (0xff00, 7, 0xff00, 7, 0xff00, 7, 0xff00, 7),
      21  		z0 = svdupq_u16 (0xff00, 7, 0xff00, 7, 0xff00, 7, 0xff00, 7))
      22  
      23  /*
      24  ** dupq_65536d_u16:
      25  **	mov	z0\.d, #65536
      26  **	ret
      27  */
      28  TEST_UNIFORM_Z (dupq_65536d_u16, svuint16_t,
      29  		z0 = svdupq_n_u16 (0, 1, 0, 0, 0, 1, 0, 0),
      30  		z0 = svdupq_u16 (0, 1, 0, 0, 0, 1, 0, 0))
      31  
      32  /*
      33  ** dupq_m2d_u16:
      34  **	mov	z0\.d, #-2
      35  **	ret
      36  */
      37  TEST_UNIFORM_Z (dupq_m2d_u16, svuint16_t,
      38  		z0 = svdupq_n_u16 (-2, -1, -1, -1, -2, -1, -1, -1),
      39  		z0 = svdupq_u16 (-2, -1, -1, -1, -2, -1, -1, -1))
      40  
      41  /*
      42  ** dupq_4ddb_u16:
      43  **	movi	v([0-9]+)\.2d, 0xff0000ffff00ff
      44  **	dup	z0\.q, z\1\.q\[0\]
      45  **	ret
      46  */
      47  TEST_UNIFORM_Z (dupq_4ddb_u16, svuint16_t,
      48  		z0 = svdupq_n_u16 (0xff, -1, 0, 0xff, 0xff, -1, 0, 0xff),
      49  		z0 = svdupq_u16 (0xff, -1, 0, 0xff, 0xff, -1, 0, 0xff))
      50  
      51  
      52  /*
      53  ** dupq_a093s_u16:
      54  **	mov	(w[0-9]+), 41107
      55  **	mov	z0\.s, \1
      56  **	ret
      57  */
      58  TEST_UNIFORM_Z (dupq_a093s_u16, svuint16_t,
      59  		z0 = svdupq_n_u16 (0xa093, 0, 0xa093, 0, 0xa093, 0, 0xa093, 0),
      60  		z0 = svdupq_u16 (0xa093, 0, 0xa093, 0, 0xa093, 0, 0xa093, 0));
      61  
      62  /*
      63  ** dupq_pool_u16:
      64  **	...
      65  **	ld1rqh	z0\.h, p[0-7]/z, \[x[0-9]+\]
      66  **	ret
      67  */
      68  TEST_UNIFORM_Z (dupq_pool_u16, svuint16_t,
      69  		z0 = svdupq_n_u16 (4, 10, 9, 77, 52, 22, 19, 50),
      70  		z0 = svdupq_u16 (4, 10, 9, 77, 52, 22, 19, 50))