1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** eor3_s8_tied1:
       7  **	eor3	z0\.d, z0\.d, (z1\.d, z2\.d|z2\.d, z1\.d)
       8  **	ret
       9  */
      10  TEST_UNIFORM_Z (eor3_s8_tied1, svint8_t,
      11  		z0 = sveor3_s8 (z0, z1, z2),
      12  		z0 = sveor3 (z0, z1, z2))
      13  
      14  /*
      15  ** eor3_s8_tied2:
      16  **	eor3	z0\.d, z0\.d, (z1\.d, z2\.d|z2\.d, z1\.d)
      17  **	ret
      18  */
      19  TEST_UNIFORM_Z (eor3_s8_tied2, svint8_t,
      20  		z0 = sveor3_s8 (z1, z0, z2),
      21  		z0 = sveor3 (z1, z0, z2))
      22  
      23  /*
      24  ** eor3_s8_tied3:
      25  **	eor3	z0\.d, z0\.d, (z1\.d, z2\.d|z2\.d, z1\.d)
      26  **	ret
      27  */
      28  TEST_UNIFORM_Z (eor3_s8_tied3, svint8_t,
      29  		z0 = sveor3_s8 (z1, z2, z0),
      30  		z0 = sveor3 (z1, z2, z0))
      31  
      32  /*
      33  ** eor3_s8_untied:
      34  ** (
      35  **	movprfx	z0, z1
      36  **	eor3	z0\.d, z0\.d, (z2\.d, z3\.d|z3\.d, z2\.d)
      37  ** |
      38  **	movprfx	z0, z2
      39  **	eor3	z0\.d, z0\.d, (z1\.d, z3\.d|z3\.d, z1\.d)
      40  ** |
      41  **	movprfx	z0, z3
      42  **	eor3	z0\.d, z0\.d, (z1\.d, z2\.d|z2\.d, z1\.d)
      43  ** )
      44  **	ret
      45  */
      46  TEST_UNIFORM_Z (eor3_s8_untied, svint8_t,
      47  		z0 = sveor3_s8 (z1, z2, z3),
      48  		z0 = sveor3 (z1, z2, z3))
      49  
      50  /*
      51  ** eor3_w0_s8_tied1:
      52  **	mov	(z[0-9]+)\.b, w0
      53  **	eor3	z0\.d, z0\.d, (z1\.d, \1\.d|\1\.d, z1\.d)
      54  **	ret
      55  */
      56  TEST_UNIFORM_ZX (eor3_w0_s8_tied1, svint8_t, int8_t,
      57  		 z0 = sveor3_n_s8 (z0, z1, x0),
      58  		 z0 = sveor3 (z0, z1, x0))
      59  
      60  /*
      61  ** eor3_w0_s8_tied2:
      62  **	mov	(z[0-9]+)\.b, w0
      63  **	eor3	z0\.d, z0\.d, (z1\.d, \1\.d|\1\.d, z1\.d)
      64  **	ret
      65  */
      66  TEST_UNIFORM_ZX (eor3_w0_s8_tied2, svint8_t, int8_t,
      67  		 z0 = sveor3_n_s8 (z1, z0, x0),
      68  		 z0 = sveor3 (z1, z0, x0))
      69  
      70  /*
      71  ** eor3_w0_s8_untied:
      72  **	mov	z0\.b, w0
      73  **	eor3	z0\.d, z0\.d, (z1\.d, z2\.d|z2\.d, z1\.d)
      74  **	ret
      75  */
      76  TEST_UNIFORM_ZX (eor3_w0_s8_untied, svint8_t, int8_t,
      77  		 z0 = sveor3_n_s8 (z1, z2, x0),
      78  		 z0 = sveor3 (z1, z2, x0))
      79  
      80  /*
      81  ** eor3_11_s8_tied1:
      82  **	mov	(z[0-9]+)\.b, #11
      83  **	eor3	z0\.d, z0\.d, (z1\.d, \1\.d|\1\.d, z1\.d)
      84  **	ret
      85  */
      86  TEST_UNIFORM_Z (eor3_11_s8_tied1, svint8_t,
      87  		z0 = sveor3_n_s8 (z0, z1, 11),
      88  		z0 = sveor3 (z0, z1, 11))
      89  
      90  /*
      91  ** eor3_11_s8_tied2:
      92  **	mov	(z[0-9]+)\.b, #11
      93  **	eor3	z0\.d, z0\.d, (z1\.d, \1\.d|\1\.d, z1\.d)
      94  **	ret
      95  */
      96  TEST_UNIFORM_Z (eor3_11_s8_tied2, svint8_t,
      97  		z0 = sveor3_n_s8 (z1, z0, 11),
      98  		z0 = sveor3 (z1, z0, 11))
      99  
     100  /*
     101  ** eor3_11_s8_untied:
     102  **	mov	z0\.b, #11
     103  **	eor3	z0\.d, z0\.d, (z1\.d, z2\.d|z2\.d, z1\.d)
     104  **	ret
     105  */
     106  TEST_UNIFORM_Z (eor3_11_s8_untied, svint8_t,
     107  		z0 = sveor3_n_s8 (z1, z2, 11),
     108  		z0 = sveor3 (z1, z2, 11))