(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
sve2/
acle/
asm/
xar_u8.c
       1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** xar_1_u8_tied1:
       7  **	xar	z0\.b, z0\.b, z1\.b, #1
       8  **	ret
       9  */
      10  TEST_UNIFORM_Z (xar_1_u8_tied1, svuint8_t,
      11  		z0 = svxar_n_u8 (z0, z1, 1),
      12  		z0 = svxar (z0, z1, 1))
      13  
      14  /*
      15  ** xar_1_u8_tied2:
      16  **	xar	z0\.b, z0\.b, z1\.b, #1
      17  **	ret
      18  */
      19  TEST_UNIFORM_Z (xar_1_u8_tied2, svuint8_t,
      20  		z0 = svxar_n_u8 (z1, z0, 1),
      21  		z0 = svxar (z1, z0, 1))
      22  
      23  /*
      24  ** xar_1_u8_untied:
      25  ** (
      26  **	movprfx	z0, z1
      27  **	xar	z0\.b, z0\.b, z2\.b, #1
      28  ** |
      29  **	movprfx	z0, z2
      30  **	xar	z0\.b, z0\.b, z1\.b, #1
      31  ** )
      32  **	ret
      33  */
      34  TEST_UNIFORM_Z (xar_1_u8_untied, svuint8_t,
      35  		z0 = svxar_n_u8 (z1, z2, 1),
      36  		z0 = svxar (z1, z2, 1))
      37  
      38  /*
      39  ** xar_2_u8_tied1:
      40  **	xar	z0\.b, z0\.b, z1\.b, #2
      41  **	ret
      42  */
      43  TEST_UNIFORM_Z (xar_2_u8_tied1, svuint8_t,
      44  		z0 = svxar_n_u8 (z0, z1, 2),
      45  		z0 = svxar (z0, z1, 2))
      46  
      47  /*
      48  ** xar_2_u8_tied2:
      49  **	xar	z0\.b, z0\.b, z1\.b, #2
      50  **	ret
      51  */
      52  TEST_UNIFORM_Z (xar_2_u8_tied2, svuint8_t,
      53  		z0 = svxar_n_u8 (z1, z0, 2),
      54  		z0 = svxar (z1, z0, 2))
      55  
      56  /*
      57  ** xar_2_u8_untied:
      58  ** (
      59  **	movprfx	z0, z1
      60  **	xar	z0\.b, z0\.b, z2\.b, #2
      61  ** |
      62  **	movprfx	z0, z2
      63  **	xar	z0\.b, z0\.b, z1\.b, #2
      64  ** )
      65  **	ret
      66  */
      67  TEST_UNIFORM_Z (xar_2_u8_untied, svuint8_t,
      68  		z0 = svxar_n_u8 (z1, z2, 2),
      69  		z0 = svxar (z1, z2, 2))
      70  
      71  /*
      72  ** xar_8_u8_tied1:
      73  **	xar	z0\.b, z0\.b, z1\.b, #8
      74  **	ret
      75  */
      76  TEST_UNIFORM_Z (xar_8_u8_tied1, svuint8_t,
      77  		z0 = svxar_n_u8 (z0, z1, 8),
      78  		z0 = svxar (z0, z1, 8))
      79  
      80  /*
      81  ** xar_8_u8_tied2:
      82  **	xar	z0\.b, z0\.b, z1\.b, #8
      83  **	ret
      84  */
      85  TEST_UNIFORM_Z (xar_8_u8_tied2, svuint8_t,
      86  		z0 = svxar_n_u8 (z1, z0, 8),
      87  		z0 = svxar (z1, z0, 8))
      88  
      89  /*
      90  ** xar_8_u8_untied:
      91  ** (
      92  **	movprfx	z0, z1
      93  **	xar	z0\.b, z0\.b, z2\.b, #8
      94  ** |
      95  **	movprfx	z0, z2
      96  **	xar	z0\.b, z0\.b, z1\.b, #8
      97  ** )
      98  **	ret
      99  */
     100  TEST_UNIFORM_Z (xar_8_u8_untied, svuint8_t,
     101  		z0 = svxar_n_u8 (z1, z2, 8),
     102  		z0 = svxar (z1, z2, 8))