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