(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
sve/
acle/
asm/
bic_u16.c
       1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** bic_u16_m_tied1:
       7  **	bic	z0\.h, p0/m, z0\.h, z1\.h
       8  **	ret
       9  */
      10  TEST_UNIFORM_Z (bic_u16_m_tied1, svuint16_t,
      11  		z0 = svbic_u16_m (p0, z0, z1),
      12  		z0 = svbic_m (p0, z0, z1))
      13  
      14  /*
      15  ** bic_u16_m_tied2:
      16  **	mov	(z[0-9]+)\.d, z0\.d
      17  **	movprfx	z0, z1
      18  **	bic	z0\.h, p0/m, z0\.h, \1\.h
      19  **	ret
      20  */
      21  TEST_UNIFORM_Z (bic_u16_m_tied2, svuint16_t,
      22  		z0 = svbic_u16_m (p0, z1, z0),
      23  		z0 = svbic_m (p0, z1, z0))
      24  
      25  /*
      26  ** bic_u16_m_untied:
      27  **	movprfx	z0, z1
      28  **	bic	z0\.h, p0/m, z0\.h, z2\.h
      29  **	ret
      30  */
      31  TEST_UNIFORM_Z (bic_u16_m_untied, svuint16_t,
      32  		z0 = svbic_u16_m (p0, z1, z2),
      33  		z0 = svbic_m (p0, z1, z2))
      34  
      35  /*
      36  ** bic_w0_u16_m_tied1:
      37  **	mov	(z[0-9]+\.h), w0
      38  **	bic	z0\.h, p0/m, z0\.h, \1
      39  **	ret
      40  */
      41  TEST_UNIFORM_ZX (bic_w0_u16_m_tied1, svuint16_t, uint16_t,
      42  		 z0 = svbic_n_u16_m (p0, z0, x0),
      43  		 z0 = svbic_m (p0, z0, x0))
      44  
      45  /*
      46  ** bic_w0_u16_m_untied: { xfail *-*-* }
      47  **	mov	(z[0-9]+\.h), w0
      48  **	movprfx	z0, z1
      49  **	bic	z0\.h, p0/m, z0\.h, \1
      50  **	ret
      51  */
      52  TEST_UNIFORM_ZX (bic_w0_u16_m_untied, svuint16_t, uint16_t,
      53  		 z0 = svbic_n_u16_m (p0, z1, x0),
      54  		 z0 = svbic_m (p0, z1, x0))
      55  
      56  /*
      57  ** bic_1_u16_m_tied1:
      58  **	mov	(z[0-9]+\.h), #-2
      59  **	and	z0\.h, p0/m, z0\.h, \1
      60  **	ret
      61  */
      62  TEST_UNIFORM_Z (bic_1_u16_m_tied1, svuint16_t,
      63  		z0 = svbic_n_u16_m (p0, z0, 1),
      64  		z0 = svbic_m (p0, z0, 1))
      65  
      66  /*
      67  ** bic_1_u16_m_untied: { xfail *-*-* }
      68  **	mov	(z[0-9]+\.h), #-2
      69  **	movprfx	z0, z1
      70  **	and	z0\.h, p0/m, z0\.h, \1
      71  **	ret
      72  */
      73  TEST_UNIFORM_Z (bic_1_u16_m_untied, svuint16_t,
      74  		z0 = svbic_n_u16_m (p0, z1, 1),
      75  		z0 = svbic_m (p0, z1, 1))
      76  
      77  /*
      78  ** bic_m2_u16_m:
      79  **	mov	(z[0-9]+\.h), #1
      80  **	and	z0\.h, p0/m, z0\.h, \1
      81  **	ret
      82  */
      83  TEST_UNIFORM_Z (bic_m2_u16_m, svuint16_t,
      84  		z0 = svbic_n_u16_m (p0, z0, -2),
      85  		z0 = svbic_m (p0, z0, -2))
      86  
      87  /*
      88  ** bic_u16_z_tied1:
      89  **	movprfx	z0\.h, p0/z, z0\.h
      90  **	bic	z0\.h, p0/m, z0\.h, z1\.h
      91  **	ret
      92  */
      93  TEST_UNIFORM_Z (bic_u16_z_tied1, svuint16_t,
      94  		z0 = svbic_u16_z (p0, z0, z1),
      95  		z0 = svbic_z (p0, z0, z1))
      96  
      97  /*
      98  ** bic_u16_z_tied2:
      99  **	mov	(z[0-9]+)\.d, z0\.d
     100  **	movprfx	z0\.h, p0/z, z1\.h
     101  **	bic	z0\.h, p0/m, z0\.h, \1\.h
     102  **	ret
     103  */
     104  TEST_UNIFORM_Z (bic_u16_z_tied2, svuint16_t,
     105  		z0 = svbic_u16_z (p0, z1, z0),
     106  		z0 = svbic_z (p0, z1, z0))
     107  
     108  /*
     109  ** bic_u16_z_untied:
     110  **	movprfx	z0\.h, p0/z, z1\.h
     111  **	bic	z0\.h, p0/m, z0\.h, z2\.h
     112  **	ret
     113  */
     114  TEST_UNIFORM_Z (bic_u16_z_untied, svuint16_t,
     115  		z0 = svbic_u16_z (p0, z1, z2),
     116  		z0 = svbic_z (p0, z1, z2))
     117  
     118  /*
     119  ** bic_w0_u16_z_tied1:
     120  **	mov	(z[0-9]+\.h), w0
     121  **	movprfx	z0\.h, p0/z, z0\.h
     122  **	bic	z0\.h, p0/m, z0\.h, \1
     123  **	ret
     124  */
     125  TEST_UNIFORM_ZX (bic_w0_u16_z_tied1, svuint16_t, uint16_t,
     126  		 z0 = svbic_n_u16_z (p0, z0, x0),
     127  		 z0 = svbic_z (p0, z0, x0))
     128  
     129  /*
     130  ** bic_w0_u16_z_untied: { xfail *-*-* }
     131  **	mov	(z[0-9]+\.h), w0
     132  **	movprfx	z0\.h, p0/z, z1\.h
     133  **	bic	z0\.h, p0/m, z0\.h, \1
     134  **	ret
     135  */
     136  TEST_UNIFORM_ZX (bic_w0_u16_z_untied, svuint16_t, uint16_t,
     137  		 z0 = svbic_n_u16_z (p0, z1, x0),
     138  		 z0 = svbic_z (p0, z1, x0))
     139  
     140  /*
     141  ** bic_1_u16_z_tied1:
     142  **	mov	(z[0-9]+\.h), #-2
     143  **	movprfx	z0\.h, p0/z, z0\.h
     144  **	and	z0\.h, p0/m, z0\.h, \1
     145  **	ret
     146  */
     147  TEST_UNIFORM_Z (bic_1_u16_z_tied1, svuint16_t,
     148  		z0 = svbic_n_u16_z (p0, z0, 1),
     149  		z0 = svbic_z (p0, z0, 1))
     150  
     151  /*
     152  ** bic_1_u16_z_untied:
     153  **	mov	(z[0-9]+\.h), #-2
     154  ** (
     155  **	movprfx	z0\.h, p0/z, z1\.h
     156  **	and	z0\.h, p0/m, z0\.h, \1
     157  ** |
     158  **	movprfx	z0\.h, p0/z, \1
     159  **	and	z0\.h, p0/m, z0\.h, z1\.h
     160  ** )
     161  **	ret
     162  */
     163  TEST_UNIFORM_Z (bic_1_u16_z_untied, svuint16_t,
     164  		z0 = svbic_n_u16_z (p0, z1, 1),
     165  		z0 = svbic_z (p0, z1, 1))
     166  
     167  /*
     168  ** bic_u16_x_tied1:
     169  **	bic	z0\.d, z0\.d, z1\.d
     170  **	ret
     171  */
     172  TEST_UNIFORM_Z (bic_u16_x_tied1, svuint16_t,
     173  		z0 = svbic_u16_x (p0, z0, z1),
     174  		z0 = svbic_x (p0, z0, z1))
     175  
     176  /*
     177  ** bic_u16_x_tied2:
     178  **	bic	z0\.d, z1\.d, z0\.d
     179  **	ret
     180  */
     181  TEST_UNIFORM_Z (bic_u16_x_tied2, svuint16_t,
     182  		z0 = svbic_u16_x (p0, z1, z0),
     183  		z0 = svbic_x (p0, z1, z0))
     184  
     185  /*
     186  ** bic_u16_x_untied:
     187  **	bic	z0\.d, z1\.d, z2\.d
     188  **	ret
     189  */
     190  TEST_UNIFORM_Z (bic_u16_x_untied, svuint16_t,
     191  		z0 = svbic_u16_x (p0, z1, z2),
     192  		z0 = svbic_x (p0, z1, z2))
     193  
     194  /*
     195  ** bic_w0_u16_x_tied1:
     196  **	mov	(z[0-9]+)\.h, w0
     197  **	bic	z0\.d, z0\.d, \1\.d
     198  **	ret
     199  */
     200  TEST_UNIFORM_ZX (bic_w0_u16_x_tied1, svuint16_t, uint16_t,
     201  		 z0 = svbic_n_u16_x (p0, z0, x0),
     202  		 z0 = svbic_x (p0, z0, x0))
     203  
     204  /*
     205  ** bic_w0_u16_x_untied:
     206  **	mov	(z[0-9]+)\.h, w0
     207  **	bic	z0\.d, z1\.d, \1\.d
     208  **	ret
     209  */
     210  TEST_UNIFORM_ZX (bic_w0_u16_x_untied, svuint16_t, uint16_t,
     211  		 z0 = svbic_n_u16_x (p0, z1, x0),
     212  		 z0 = svbic_x (p0, z1, x0))
     213  
     214  /*
     215  ** bic_1_u16_x_tied1:
     216  **	and	z0\.h, z0\.h, #0xfffe
     217  **	ret
     218  */
     219  TEST_UNIFORM_Z (bic_1_u16_x_tied1, svuint16_t,
     220  		z0 = svbic_n_u16_x (p0, z0, 1),
     221  		z0 = svbic_x (p0, z0, 1))
     222  
     223  /*
     224  ** bic_1_u16_x_untied:
     225  **	movprfx	z0, z1
     226  **	and	z0\.h, z0\.h, #0xfffe
     227  **	ret
     228  */
     229  TEST_UNIFORM_Z (bic_1_u16_x_untied, svuint16_t,
     230  		z0 = svbic_n_u16_x (p0, z1, 1),
     231  		z0 = svbic_x (p0, z1, 1))
     232  
     233  /*
     234  ** bic_127_u16_x:
     235  **	and	z0\.h, z0\.h, #0xff80
     236  **	ret
     237  */
     238  TEST_UNIFORM_Z (bic_127_u16_x, svuint16_t,
     239  		z0 = svbic_n_u16_x (p0, z0, 127),
     240  		z0 = svbic_x (p0, z0, 127))
     241  
     242  /*
     243  ** bic_128_u16_x:
     244  **	and	z0\.h, z0\.h, #0xff7f
     245  **	ret
     246  */
     247  TEST_UNIFORM_Z (bic_128_u16_x, svuint16_t,
     248  		z0 = svbic_n_u16_x (p0, z0, 128),
     249  		z0 = svbic_x (p0, z0, 128))
     250  
     251  /*
     252  ** bic_255_u16_x:
     253  **	and	z0\.h, z0\.h, #0xff00
     254  **	ret
     255  */
     256  TEST_UNIFORM_Z (bic_255_u16_x, svuint16_t,
     257  		z0 = svbic_n_u16_x (p0, z0, 255),
     258  		z0 = svbic_x (p0, z0, 255))
     259  
     260  /*
     261  ** bic_256_u16_x:
     262  **	and	z0\.h, z0\.h, #0xfeff
     263  **	ret
     264  */
     265  TEST_UNIFORM_Z (bic_256_u16_x, svuint16_t,
     266  		z0 = svbic_n_u16_x (p0, z0, 256),
     267  		z0 = svbic_x (p0, z0, 256))
     268  
     269  /*
     270  ** bic_257_u16_x:
     271  **	and	z0\.h, z0\.h, #0xfefe
     272  **	ret
     273  */
     274  TEST_UNIFORM_Z (bic_257_u16_x, svuint16_t,
     275  		z0 = svbic_n_u16_x (p0, z0, 257),
     276  		z0 = svbic_x (p0, z0, 257))
     277  
     278  /*
     279  ** bic_512_u16_x:
     280  **	and	z0\.h, z0\.h, #0xfdff
     281  **	ret
     282  */
     283  TEST_UNIFORM_Z (bic_512_u16_x, svuint16_t,
     284  		z0 = svbic_n_u16_x (p0, z0, 512),
     285  		z0 = svbic_x (p0, z0, 512))
     286  
     287  /*
     288  ** bic_65280_u16_x:
     289  **	and	z0\.h, z0\.h, #0xff
     290  **	ret
     291  */
     292  TEST_UNIFORM_Z (bic_65280_u16_x, svuint16_t,
     293  		z0 = svbic_n_u16_x (p0, z0, 0xff00),
     294  		z0 = svbic_x (p0, z0, 0xff00))
     295  
     296  /*
     297  ** bic_m127_u16_x:
     298  **	and	z0\.h, z0\.h, #0x7e
     299  **	ret
     300  */
     301  TEST_UNIFORM_Z (bic_m127_u16_x, svuint16_t,
     302  		z0 = svbic_n_u16_x (p0, z0, -127),
     303  		z0 = svbic_x (p0, z0, -127))
     304  
     305  /*
     306  ** bic_m128_u16_x:
     307  **	and	z0\.h, z0\.h, #0x7f
     308  **	ret
     309  */
     310  TEST_UNIFORM_Z (bic_m128_u16_x, svuint16_t,
     311  		z0 = svbic_n_u16_x (p0, z0, -128),
     312  		z0 = svbic_x (p0, z0, -128))
     313  
     314  /*
     315  ** bic_m255_u16_x:
     316  **	and	z0\.h, z0\.h, #0xfe
     317  **	ret
     318  */
     319  TEST_UNIFORM_Z (bic_m255_u16_x, svuint16_t,
     320  		z0 = svbic_n_u16_x (p0, z0, -255),
     321  		z0 = svbic_x (p0, z0, -255))
     322  
     323  /*
     324  ** bic_m256_u16_x:
     325  **	and	z0\.h, z0\.h, #0xff
     326  **	ret
     327  */
     328  TEST_UNIFORM_Z (bic_m256_u16_x, svuint16_t,
     329  		z0 = svbic_n_u16_x (p0, z0, -256),
     330  		z0 = svbic_x (p0, z0, -256))
     331  
     332  /*
     333  ** bic_m257_u16_x:
     334  **	and	z0\.h, z0\.h, #0x100
     335  **	ret
     336  */
     337  TEST_UNIFORM_Z (bic_m257_u16_x, svuint16_t,
     338  		z0 = svbic_n_u16_x (p0, z0, -257),
     339  		z0 = svbic_x (p0, z0, -257))
     340  
     341  /*
     342  ** bic_m512_u16_x:
     343  **	and	z0\.h, z0\.h, #0x1ff
     344  **	ret
     345  */
     346  TEST_UNIFORM_Z (bic_m512_u16_x, svuint16_t,
     347  		z0 = svbic_n_u16_x (p0, z0, -512),
     348  		z0 = svbic_x (p0, z0, -512))
     349  
     350  /*
     351  ** bic_m32768_u16_x:
     352  **	and	z0\.h, z0\.h, #0x7fff
     353  **	ret
     354  */
     355  TEST_UNIFORM_Z (bic_m32768_u16_x, svuint16_t,
     356  		z0 = svbic_n_u16_x (p0, z0, -0x8000),
     357  		z0 = svbic_x (p0, z0, -0x8000))
     358  
     359  /*
     360  ** bic_5_u16_x:
     361  **	mov	(z[0-9]+)\.h, #-6
     362  **	and	z0\.d, (z0\.d, \1\.d|\1\.d, z0\.d)
     363  **	ret
     364  */
     365  TEST_UNIFORM_Z (bic_5_u16_x, svuint16_t,
     366  		z0 = svbic_n_u16_x (p0, z0, 5),
     367  		z0 = svbic_x (p0, z0, 5))