1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** xar_1_u64_tied1:
       7  **	xar	z0\.d, z0\.d, z1\.d, #1
       8  **	ret
       9  */
      10  TEST_UNIFORM_Z (xar_1_u64_tied1, svuint64_t,
      11  		z0 = svxar_n_u64 (z0, z1, 1),
      12  		z0 = svxar (z0, z1, 1))
      13  
      14  /*
      15  ** xar_1_u64_tied2:
      16  **	xar	z0\.d, z0\.d, z1\.d, #1
      17  **	ret
      18  */
      19  TEST_UNIFORM_Z (xar_1_u64_tied2, svuint64_t,
      20  		z0 = svxar_n_u64 (z1, z0, 1),
      21  		z0 = svxar (z1, z0, 1))
      22  
      23  /*
      24  ** xar_1_u64_untied:
      25  ** (
      26  **	movprfx	z0, z1
      27  **	xar	z0\.d, z0\.d, z2\.d, #1
      28  ** |
      29  **	movprfx	z0, z2
      30  **	xar	z0\.d, z0\.d, z1\.d, #1
      31  ** )
      32  **	ret
      33  */
      34  TEST_UNIFORM_Z (xar_1_u64_untied, svuint64_t,
      35  		z0 = svxar_n_u64 (z1, z2, 1),
      36  		z0 = svxar (z1, z2, 1))
      37  
      38  /*
      39  ** xar_2_u64_tied1:
      40  **	xar	z0\.d, z0\.d, z1\.d, #2
      41  **	ret
      42  */
      43  TEST_UNIFORM_Z (xar_2_u64_tied1, svuint64_t,
      44  		z0 = svxar_n_u64 (z0, z1, 2),
      45  		z0 = svxar (z0, z1, 2))
      46  
      47  /*
      48  ** xar_2_u64_tied2:
      49  **	xar	z0\.d, z0\.d, z1\.d, #2
      50  **	ret
      51  */
      52  TEST_UNIFORM_Z (xar_2_u64_tied2, svuint64_t,
      53  		z0 = svxar_n_u64 (z1, z0, 2),
      54  		z0 = svxar (z1, z0, 2))
      55  
      56  /*
      57  ** xar_2_u64_untied:
      58  ** (
      59  **	movprfx	z0, z1
      60  **	xar	z0\.d, z0\.d, z2\.d, #2
      61  ** |
      62  **	movprfx	z0, z2
      63  **	xar	z0\.d, z0\.d, z1\.d, #2
      64  ** )
      65  **	ret
      66  */
      67  TEST_UNIFORM_Z (xar_2_u64_untied, svuint64_t,
      68  		z0 = svxar_n_u64 (z1, z2, 2),
      69  		z0 = svxar (z1, z2, 2))
      70  
      71  /*
      72  ** xar_64_u64_tied1:
      73  **	xar	z0\.d, z0\.d, z1\.d, #64
      74  **	ret
      75  */
      76  TEST_UNIFORM_Z (xar_64_u64_tied1, svuint64_t,
      77  		z0 = svxar_n_u64 (z0, z1, 64),
      78  		z0 = svxar (z0, z1, 64))
      79  
      80  /*
      81  ** xar_64_u64_tied2:
      82  **	xar	z0\.d, z0\.d, z1\.d, #64
      83  **	ret
      84  */
      85  TEST_UNIFORM_Z (xar_64_u64_tied2, svuint64_t,
      86  		z0 = svxar_n_u64 (z1, z0, 64),
      87  		z0 = svxar (z1, z0, 64))
      88  
      89  /*
      90  ** xar_64_u64_untied:
      91  ** (
      92  **	movprfx	z0, z1
      93  **	xar	z0\.d, z0\.d, z2\.d, #64
      94  ** |
      95  **	movprfx	z0, z2
      96  **	xar	z0\.d, z0\.d, z1\.d, #64
      97  ** )
      98  **	ret
      99  */
     100  TEST_UNIFORM_Z (xar_64_u64_untied, svuint64_t,
     101  		z0 = svxar_n_u64 (z1, z2, 64),
     102  		z0 = svxar (z1, z2, 64))