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