1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** dup_lane_w0_u16_tied1:
       7  **	mov	(z[0-9]+\.h), w0
       8  **	tbl	z0\.h, z0\.h, \1
       9  **	ret
      10  */
      11  TEST_UNIFORM_ZX (dup_lane_w0_u16_tied1, svuint16_t, uint16_t,
      12  		 z0 = svdup_lane_u16 (z0, x0),
      13  		 z0 = svdup_lane (z0, x0))
      14  
      15  /*
      16  ** dup_lane_w0_u16_untied:
      17  **	mov	(z[0-9]+\.h), w0
      18  **	tbl	z0\.h, z1\.h, \1
      19  **	ret
      20  */
      21  TEST_UNIFORM_ZX (dup_lane_w0_u16_untied, svuint16_t, uint16_t,
      22  		 z0 = svdup_lane_u16 (z1, x0),
      23  		 z0 = svdup_lane (z1, x0))
      24  
      25  /*
      26  ** dup_lane_0_u16_tied1:
      27  **	dup	z0\.h, z0\.h\[0\]
      28  **	ret
      29  */
      30  TEST_UNIFORM_Z (dup_lane_0_u16_tied1, svuint16_t,
      31  		z0 = svdup_lane_u16 (z0, 0),
      32  		z0 = svdup_lane (z0, 0))
      33  
      34  /*
      35  ** dup_lane_0_u16_untied:
      36  **	dup	z0\.h, z1\.h\[0\]
      37  **	ret
      38  */
      39  TEST_UNIFORM_Z (dup_lane_0_u16_untied, svuint16_t,
      40  		z0 = svdup_lane_u16 (z1, 0),
      41  		z0 = svdup_lane (z1, 0))
      42  
      43  /*
      44  ** dup_lane_7_u16:
      45  **	dup	z0\.h, z0\.h\[7\]
      46  **	ret
      47  */
      48  TEST_UNIFORM_Z (dup_lane_7_u16, svuint16_t,
      49  		z0 = svdup_lane_u16 (z0, 7),
      50  		z0 = svdup_lane (z0, 7))
      51  
      52  /*
      53  ** dup_lane_8_u16:
      54  **	dup	z0\.h, z0\.h\[8\]
      55  **	ret
      56  */
      57  TEST_UNIFORM_Z (dup_lane_8_u16, svuint16_t,
      58  		z0 = svdup_lane_u16 (z0, 8),
      59  		z0 = svdup_lane (z0, 8))
      60  
      61  /*
      62  ** dup_lane_15_u16:
      63  **	dup	z0\.h, z0\.h\[15\]
      64  **	ret
      65  */
      66  TEST_UNIFORM_Z (dup_lane_15_u16, svuint16_t,
      67  		z0 = svdup_lane_u16 (z0, 15),
      68  		z0 = svdup_lane (z0, 15))
      69  
      70  /*
      71  ** dup_lane_16_u16:
      72  **	dup	z0\.h, z0\.h\[16\]
      73  **	ret
      74  */
      75  TEST_UNIFORM_Z (dup_lane_16_u16, svuint16_t,
      76  		z0 = svdup_lane_u16 (z0, 16),
      77  		z0 = svdup_lane (z0, 16))
      78  
      79  /*
      80  ** dup_lane_31_u16:
      81  **	dup	z0\.h, z0\.h\[31\]
      82  **	ret
      83  */
      84  TEST_UNIFORM_Z (dup_lane_31_u16, svuint16_t,
      85  		z0 = svdup_lane_u16 (z0, 31),
      86  		z0 = svdup_lane (z0, 31))
      87  
      88  /*
      89  ** dup_lane_32_u16:
      90  **	mov	(z[0-9]+\.h), #32
      91  **	tbl	z0\.h, z0\.h, \1
      92  **	ret
      93  */
      94  TEST_UNIFORM_Z (dup_lane_32_u16, svuint16_t,
      95  		z0 = svdup_lane_u16 (z0, 32),
      96  		z0 = svdup_lane (z0, 32))
      97  
      98  /*
      99  ** dup_lane_63_u16:
     100  **	mov	(z[0-9]+\.h), #63
     101  **	tbl	z0\.h, z0\.h, \1
     102  **	ret
     103  */
     104  TEST_UNIFORM_Z (dup_lane_63_u16, svuint16_t,
     105  		z0 = svdup_lane_u16 (z0, 63),
     106  		z0 = svdup_lane (z0, 63))
     107  
     108  /*
     109  ** dup_lane_64_u16:
     110  **	mov	(z[0-9]+\.h), #64
     111  **	tbl	z0\.h, z0\.h, \1
     112  **	ret
     113  */
     114  TEST_UNIFORM_Z (dup_lane_64_u16, svuint16_t,
     115  		z0 = svdup_lane_u16 (z0, 64),
     116  		z0 = svdup_lane (z0, 64))
     117  
     118  /*
     119  ** dup_lane_255_u16:
     120  **	mov	(z[0-9]+\.h), #255
     121  **	tbl	z0\.h, z0\.h, \1
     122  **	ret
     123  */
     124  TEST_UNIFORM_Z (dup_lane_255_u16, svuint16_t,
     125  		z0 = svdup_lane_u16 (z0, 255),
     126  		z0 = svdup_lane (z0, 255))