1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** dupq_54h_s8:
       7  **	mov	z0\.h, #54
       8  **	ret
       9  */
      10  TEST_UNIFORM_Z (dupq_54h_s8, svint8_t,
      11  		z0 = svdupq_n_s8 (54, 0, 54, 0, 54, 0, 54, 0,
      12  				  54, 0, 54, 0, 54, 0, 54, 0),
      13  		z0 = svdupq_s8 (54, 0, 54, 0, 54, 0, 54, 0,
      14  				54, 0, 54, 0, 54, 0, 54, 0))
      15  
      16  /*
      17  ** dupq_2560h_s8:
      18  **	mov	z0\.h, #2560
      19  **	ret
      20  */
      21  TEST_UNIFORM_Z (dupq_2560h_s8, svint8_t,
      22  		z0 = svdupq_n_s8 (0, 10, 0, 10, 0, 10, 0, 10,
      23  				  0, 10, 0, 10, 0, 10, 0, 10),
      24  		z0 = svdupq_s8 (0, 10, 0, 10, 0, 10, 0, 10,
      25  				0, 10, 0, 10, 0, 10, 0, 10))
      26  
      27  /*
      28  ** dupq_5120s_s8:
      29  **	mov	z0\.s, #5120
      30  **	ret
      31  */
      32  TEST_UNIFORM_Z (dupq_5120s_s8, svint8_t,
      33  		z0 = svdupq_n_s8 (0, 20, 0, 0, 0, 20, 0, 0,
      34  				  0, 20, 0, 0, 0, 20, 0, 0),
      35  		z0 = svdupq_s8 (0, 20, 0, 0, 0, 20, 0, 0,
      36  				0, 20, 0, 0, 0, 20, 0, 0))
      37  
      38  /*
      39  ** dupq_1ff00s_s8:
      40  **	mov	z0\.s, #130816
      41  **	ret
      42  */
      43  TEST_UNIFORM_Z (dupq_1ff00s_s8, svint8_t,
      44  		z0 = svdupq_n_s8 (0, -1, 1, 0, 0, -1, 1, 0,
      45  				  0, -1, 1, 0, 0, -1, 1, 0),
      46  		z0 = svdupq_s8 (0, -1, 1, 0, 0, -1, 1, 0,
      47  				0, -1, 1, 0, 0, -1, 1, 0))
      48  
      49  /*
      50  ** dupq_96db_s8:
      51  **	movi	v([0-9]+)\.2d, 0xff0000ff00ffff00
      52  **	dup	z0\.q, z\1\.q\[0\]
      53  **	ret
      54  */
      55  TEST_UNIFORM_Z (dupq_96db_s8, svint8_t,
      56  		z0 = svdupq_n_s8 (0, -1, -1, 0, -1, 0, 0, -1,
      57  				  0, -1, -1, 0, -1, 0, 0, -1),
      58  		z0 = svdupq_s8 (0, -1, -1, 0, -1, 0, 0, -1,
      59  				0, -1, -1, 0, -1, 0, 0, -1))
      60  
      61  /*
      62  ** dupq_7755h_s8:
      63  **	mov	(w[0-9]+), 21879
      64  **	mov	z0\.h, \1
      65  **	ret
      66  */
      67  TEST_UNIFORM_Z (dupq_7755h_s8, svint8_t,
      68  		z0 = svdupq_n_s8 (0x77, 0x55, 0x77, 0x55,
      69  				  0x77, 0x55, 0x77, 0x55,
      70  				  0x77, 0x55, 0x77, 0x55,
      71  				  0x77, 0x55, 0x77, 0x55),
      72  		z0 = svdupq_s8 (0x77, 0x55, 0x77, 0x55,
      73  				0x77, 0x55, 0x77, 0x55,
      74  				0x77, 0x55, 0x77, 0x55,
      75  				0x77, 0x55, 0x77, 0x55))
      76  
      77  /*
      78  ** dupq_729a0000s_s8:
      79  **	mov	(w[0-9]+), 1922695168
      80  **	mov	z0\.s, \1
      81  **	ret
      82  */
      83  TEST_UNIFORM_Z (dupq_729a0000s_s8, svint8_t,
      84  		z0 = svdupq_n_s8 (0, 0, 0x9a, 0x72, 0, 0, 0x9a, 0x72,
      85  				  0, 0, 0x9a, 0x72, 0, 0, 0x9a, 0x72),
      86  		z0 = svdupq_s8 (0, 0, 0x9a, 0x72, 0, 0, 0x9a, 0x72,
      87  				0, 0, 0x9a, 0x72, 0, 0, 0x9a, 0x72))
      88  
      89  /*
      90  ** dupq_pool_s8:
      91  **	...
      92  **	ld1rqb	z0\.b, p[0-7]/z, \[x[0-9]+\]
      93  **	ret
      94  */
      95  TEST_UNIFORM_Z (dupq_pool_s8, svint8_t,
      96  		z0 = svdupq_n_s8 (4, 10, 9, 77, 52, 22, 19, 50,
      97  				  -1, 32, 44, 17, 23, 99, 53, 39),
      98  		z0 = svdupq_s8 (4, 10, 9, 77, 52, 22, 19, 50,
      99  				-1, 32, 44, 17, 23, 99, 53, 39))