1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** cvt_f16_f32_m_tied1:
       7  **	fcvt	z0\.h, p0/m, z4\.s
       8  **	ret
       9  */
      10  TEST_DUAL_Z (cvt_f16_f32_m_tied1, svfloat16_t, svfloat32_t,
      11  	     z0 = svcvt_f16_f32_m (z0, p0, z4),
      12  	     z0 = svcvt_f16_m (z0, p0, z4))
      13  
      14  /*
      15  ** cvt_f16_f32_m_tied2:
      16  **	mov	(z[0-9]+)\.d, z0\.d
      17  **	movprfx	z0, z4
      18  **	fcvt	z0\.h, p0/m, \1\.s
      19  **	ret
      20  */
      21  TEST_DUAL_Z_REV (cvt_f16_f32_m_tied2, svfloat16_t, svfloat32_t,
      22  		 z0_res = svcvt_f16_f32_m (z4, p0, z0),
      23  		 z0_res = svcvt_f16_m (z4, p0, z0))
      24  
      25  /*
      26  ** cvt_f16_f32_m_untied:
      27  **	movprfx	z0, z1
      28  **	fcvt	z0\.h, p0/m, z4\.s
      29  **	ret
      30  */
      31  TEST_DUAL_Z (cvt_f16_f32_m_untied, svfloat16_t, svfloat32_t,
      32  	     z0 = svcvt_f16_f32_m (z1, p0, z4),
      33  	     z0 = svcvt_f16_m (z1, p0, z4))
      34  
      35  /*
      36  ** cvt_f16_f64_m_tied1:
      37  **	fcvt	z0\.h, p0/m, z4\.d
      38  **	ret
      39  */
      40  TEST_DUAL_Z (cvt_f16_f64_m_tied1, svfloat16_t, svfloat64_t,
      41  	     z0 = svcvt_f16_f64_m (z0, p0, z4),
      42  	     z0 = svcvt_f16_m (z0, p0, z4))
      43  
      44  /*
      45  ** cvt_f16_f64_m_tied2:
      46  **	mov	(z[0-9]+\.d), z0\.d
      47  **	movprfx	z0, z4
      48  **	fcvt	z0\.h, p0/m, \1
      49  **	ret
      50  */
      51  TEST_DUAL_Z_REV (cvt_f16_f64_m_tied2, svfloat16_t, svfloat64_t,
      52  		 z0_res = svcvt_f16_f64_m (z4, p0, z0),
      53  		 z0_res = svcvt_f16_m (z4, p0, z0))
      54  
      55  /*
      56  ** cvt_f16_f64_m_untied:
      57  **	movprfx	z0, z1
      58  **	fcvt	z0\.h, p0/m, z4\.d
      59  **	ret
      60  */
      61  TEST_DUAL_Z (cvt_f16_f64_m_untied, svfloat16_t, svfloat64_t,
      62  	     z0 = svcvt_f16_f64_m (z1, p0, z4),
      63  	     z0 = svcvt_f16_m (z1, p0, z4))
      64  
      65  /*
      66  ** cvt_f16_s16_m_tied1:
      67  **	scvtf	z0\.h, p0/m, z4\.h
      68  **	ret
      69  */
      70  TEST_DUAL_Z (cvt_f16_s16_m_tied1, svfloat16_t, svint16_t,
      71  	     z0 = svcvt_f16_s16_m (z0, p0, z4),
      72  	     z0 = svcvt_f16_m (z0, p0, z4))
      73  
      74  /*
      75  ** cvt_f16_s16_m_tied2:
      76  **	mov	(z[0-9]+)\.d, z0\.d
      77  **	movprfx	z0, z4
      78  **	scvtf	z0\.h, p0/m, \1\.h
      79  **	ret
      80  */
      81  TEST_DUAL_Z_REV (cvt_f16_s16_m_tied2, svfloat16_t, svint16_t,
      82  		 z0_res = svcvt_f16_s16_m (z4, p0, z0),
      83  		 z0_res = svcvt_f16_m (z4, p0, z0))
      84  
      85  /*
      86  ** cvt_f16_s16_m_untied:
      87  **	movprfx	z0, z1
      88  **	scvtf	z0\.h, p0/m, z4\.h
      89  **	ret
      90  */
      91  TEST_DUAL_Z (cvt_f16_s16_m_untied, svfloat16_t, svint16_t,
      92  	     z0 = svcvt_f16_s16_m (z1, p0, z4),
      93  	     z0 = svcvt_f16_m (z1, p0, z4))
      94  
      95  /*
      96  ** cvt_f16_s32_m_tied1:
      97  **	scvtf	z0\.h, p0/m, z4\.s
      98  **	ret
      99  */
     100  TEST_DUAL_Z (cvt_f16_s32_m_tied1, svfloat16_t, svint32_t,
     101  	     z0 = svcvt_f16_s32_m (z0, p0, z4),
     102  	     z0 = svcvt_f16_m (z0, p0, z4))
     103  
     104  /*
     105  ** cvt_f16_s32_m_tied2:
     106  **	mov	(z[0-9]+)\.d, z0\.d
     107  **	movprfx	z0, z4
     108  **	scvtf	z0\.h, p0/m, \1\.s
     109  **	ret
     110  */
     111  TEST_DUAL_Z_REV (cvt_f16_s32_m_tied2, svfloat16_t, svint32_t,
     112  		 z0_res = svcvt_f16_s32_m (z4, p0, z0),
     113  		 z0_res = svcvt_f16_m (z4, p0, z0))
     114  
     115  /*
     116  ** cvt_f16_s32_m_untied:
     117  **	movprfx	z0, z1
     118  **	scvtf	z0\.h, p0/m, z4\.s
     119  **	ret
     120  */
     121  TEST_DUAL_Z (cvt_f16_s32_m_untied, svfloat16_t, svint32_t,
     122  	     z0 = svcvt_f16_s32_m (z1, p0, z4),
     123  	     z0 = svcvt_f16_m (z1, p0, z4))
     124  
     125  /*
     126  ** cvt_f16_s64_m_tied1:
     127  **	scvtf	z0\.h, p0/m, z4\.d
     128  **	ret
     129  */
     130  TEST_DUAL_Z (cvt_f16_s64_m_tied1, svfloat16_t, svint64_t,
     131  	     z0 = svcvt_f16_s64_m (z0, p0, z4),
     132  	     z0 = svcvt_f16_m (z0, p0, z4))
     133  
     134  /*
     135  ** cvt_f16_s64_m_tied2:
     136  **	mov	(z[0-9]+\.d), z0\.d
     137  **	movprfx	z0, z4
     138  **	scvtf	z0\.h, p0/m, \1
     139  **	ret
     140  */
     141  TEST_DUAL_Z_REV (cvt_f16_s64_m_tied2, svfloat16_t, svint64_t,
     142  		 z0_res = svcvt_f16_s64_m (z4, p0, z0),
     143  		 z0_res = svcvt_f16_m (z4, p0, z0))
     144  
     145  /*
     146  ** cvt_f16_s64_m_untied:
     147  **	movprfx	z0, z1
     148  **	scvtf	z0\.h, p0/m, z4\.d
     149  **	ret
     150  */
     151  TEST_DUAL_Z (cvt_f16_s64_m_untied, svfloat16_t, svint64_t,
     152  	     z0 = svcvt_f16_s64_m (z1, p0, z4),
     153  	     z0 = svcvt_f16_m (z1, p0, z4))
     154  
     155  /*
     156  ** cvt_f16_u16_m_tied1:
     157  **	ucvtf	z0\.h, p0/m, z4\.h
     158  **	ret
     159  */
     160  TEST_DUAL_Z (cvt_f16_u16_m_tied1, svfloat16_t, svuint16_t,
     161  	     z0 = svcvt_f16_u16_m (z0, p0, z4),
     162  	     z0 = svcvt_f16_m (z0, p0, z4))
     163  
     164  /*
     165  ** cvt_f16_u16_m_tied2:
     166  **	mov	(z[0-9]+)\.d, z0\.d
     167  **	movprfx	z0, z4
     168  **	ucvtf	z0\.h, p0/m, \1\.h
     169  **	ret
     170  */
     171  TEST_DUAL_Z_REV (cvt_f16_u16_m_tied2, svfloat16_t, svuint16_t,
     172  		 z0_res = svcvt_f16_u16_m (z4, p0, z0),
     173  		 z0_res = svcvt_f16_m (z4, p0, z0))
     174  
     175  /*
     176  ** cvt_f16_u16_m_untied:
     177  **	movprfx	z0, z1
     178  **	ucvtf	z0\.h, p0/m, z4\.h
     179  **	ret
     180  */
     181  TEST_DUAL_Z (cvt_f16_u16_m_untied, svfloat16_t, svuint16_t,
     182  	     z0 = svcvt_f16_u16_m (z1, p0, z4),
     183  	     z0 = svcvt_f16_m (z1, p0, z4))
     184  
     185  /*
     186  ** cvt_f16_u32_m_tied1:
     187  **	ucvtf	z0\.h, p0/m, z4\.s
     188  **	ret
     189  */
     190  TEST_DUAL_Z (cvt_f16_u32_m_tied1, svfloat16_t, svuint32_t,
     191  	     z0 = svcvt_f16_u32_m (z0, p0, z4),
     192  	     z0 = svcvt_f16_m (z0, p0, z4))
     193  
     194  /*
     195  ** cvt_f16_u32_m_tied2:
     196  **	mov	(z[0-9]+)\.d, z0\.d
     197  **	movprfx	z0, z4
     198  **	ucvtf	z0\.h, p0/m, \1\.s
     199  **	ret
     200  */
     201  TEST_DUAL_Z_REV (cvt_f16_u32_m_tied2, svfloat16_t, svuint32_t,
     202  		 z0_res = svcvt_f16_u32_m (z4, p0, z0),
     203  		 z0_res = svcvt_f16_m (z4, p0, z0))
     204  
     205  /*
     206  ** cvt_f16_u32_m_untied:
     207  **	movprfx	z0, z1
     208  **	ucvtf	z0\.h, p0/m, z4\.s
     209  **	ret
     210  */
     211  TEST_DUAL_Z (cvt_f16_u32_m_untied, svfloat16_t, svuint32_t,
     212  	     z0 = svcvt_f16_u32_m (z1, p0, z4),
     213  	     z0 = svcvt_f16_m (z1, p0, z4))
     214  
     215  /*
     216  ** cvt_f16_u64_m_tied1:
     217  **	ucvtf	z0\.h, p0/m, z4\.d
     218  **	ret
     219  */
     220  TEST_DUAL_Z (cvt_f16_u64_m_tied1, svfloat16_t, svuint64_t,
     221  	     z0 = svcvt_f16_u64_m (z0, p0, z4),
     222  	     z0 = svcvt_f16_m (z0, p0, z4))
     223  
     224  /*
     225  ** cvt_f16_u64_m_tied2:
     226  **	mov	(z[0-9]+\.d), z0\.d
     227  **	movprfx	z0, z4
     228  **	ucvtf	z0\.h, p0/m, \1
     229  **	ret
     230  */
     231  TEST_DUAL_Z_REV (cvt_f16_u64_m_tied2, svfloat16_t, svuint64_t,
     232  		 z0_res = svcvt_f16_u64_m (z4, p0, z0),
     233  		 z0_res = svcvt_f16_m (z4, p0, z0))
     234  
     235  /*
     236  ** cvt_f16_u64_m_untied:
     237  **	movprfx	z0, z1
     238  **	ucvtf	z0\.h, p0/m, z4\.d
     239  **	ret
     240  */
     241  TEST_DUAL_Z (cvt_f16_u64_m_untied, svfloat16_t, svuint64_t,
     242  	     z0 = svcvt_f16_u64_m (z1, p0, z4),
     243  	     z0 = svcvt_f16_m (z1, p0, z4))
     244  
     245  /*
     246  ** cvt_f16_f32_z_tied1:
     247  **	mov	(z[0-9]+)\.d, z0\.d
     248  **	movprfx	z0\.s, p0/z, \1\.s
     249  **	fcvt	z0\.h, p0/m, \1\.s
     250  **	ret
     251  */
     252  TEST_DUAL_Z_REV (cvt_f16_f32_z_tied1, svfloat16_t, svfloat32_t,
     253  		 z0_res = svcvt_f16_f32_z (p0, z0),
     254  		 z0_res = svcvt_f16_z (p0, z0))
     255  
     256  /*
     257  ** cvt_f16_f32_z_untied:
     258  **	movprfx	z0\.s, p0/z, z4\.s
     259  **	fcvt	z0\.h, p0/m, z4\.s
     260  **	ret
     261  */
     262  TEST_DUAL_Z (cvt_f16_f32_z_untied, svfloat16_t, svfloat32_t,
     263  	     z0 = svcvt_f16_f32_z (p0, z4),
     264  	     z0 = svcvt_f16_z (p0, z4))
     265  
     266  /*
     267  ** cvt_f16_f64_z_tied1:
     268  **	mov	(z[0-9]+\.d), z0\.d
     269  **	movprfx	z0\.d, p0/z, \1
     270  **	fcvt	z0\.h, p0/m, \1
     271  **	ret
     272  */
     273  TEST_DUAL_Z_REV (cvt_f16_f64_z_tied1, svfloat16_t, svfloat64_t,
     274  		 z0_res = svcvt_f16_f64_z (p0, z0),
     275  		 z0_res = svcvt_f16_z (p0, z0))
     276  
     277  /*
     278  ** cvt_f16_f64_z_untied:
     279  **	movprfx	z0\.d, p0/z, z4\.d
     280  **	fcvt	z0\.h, p0/m, z4\.d
     281  **	ret
     282  */
     283  TEST_DUAL_Z (cvt_f16_f64_z_untied, svfloat16_t, svfloat64_t,
     284  	     z0 = svcvt_f16_f64_z (p0, z4),
     285  	     z0 = svcvt_f16_z (p0, z4))
     286  
     287  /*
     288  ** cvt_f16_s16_z_tied1:
     289  **	mov	(z[0-9]+)\.d, z0\.d
     290  **	movprfx	z0\.h, p0/z, \1\.h
     291  **	scvtf	z0\.h, p0/m, \1\.h
     292  **	ret
     293  */
     294  TEST_DUAL_Z_REV (cvt_f16_s16_z_tied1, svfloat16_t, svint16_t,
     295  		 z0_res = svcvt_f16_s16_z (p0, z0),
     296  		 z0_res = svcvt_f16_z (p0, z0))
     297  
     298  /*
     299  ** cvt_f16_s16_z_untied:
     300  **	movprfx	z0\.h, p0/z, z4\.h
     301  **	scvtf	z0\.h, p0/m, z4\.h
     302  **	ret
     303  */
     304  TEST_DUAL_Z (cvt_f16_s16_z_untied, svfloat16_t, svint16_t,
     305  	     z0 = svcvt_f16_s16_z (p0, z4),
     306  	     z0 = svcvt_f16_z (p0, z4))
     307  
     308  /*
     309  ** cvt_f16_s32_z_tied1:
     310  **	mov	(z[0-9]+)\.d, z0\.d
     311  **	movprfx	z0\.s, p0/z, \1\.s
     312  **	scvtf	z0\.h, p0/m, \1\.s
     313  **	ret
     314  */
     315  TEST_DUAL_Z_REV (cvt_f16_s32_z_tied1, svfloat16_t, svint32_t,
     316  		 z0_res = svcvt_f16_s32_z (p0, z0),
     317  		 z0_res = svcvt_f16_z (p0, z0))
     318  
     319  /*
     320  ** cvt_f16_s32_z_untied:
     321  **	movprfx	z0\.s, p0/z, z4\.s
     322  **	scvtf	z0\.h, p0/m, z4\.s
     323  **	ret
     324  */
     325  TEST_DUAL_Z (cvt_f16_s32_z_untied, svfloat16_t, svint32_t,
     326  	     z0 = svcvt_f16_s32_z (p0, z4),
     327  	     z0 = svcvt_f16_z (p0, z4))
     328  
     329  /*
     330  ** cvt_f16_s64_z_tied1:
     331  **	mov	(z[0-9]+\.d), z0\.d
     332  **	movprfx	z0\.d, p0/z, \1
     333  **	scvtf	z0\.h, p0/m, \1
     334  **	ret
     335  */
     336  TEST_DUAL_Z_REV (cvt_f16_s64_z_tied1, svfloat16_t, svint64_t,
     337  		 z0_res = svcvt_f16_s64_z (p0, z0),
     338  		 z0_res = svcvt_f16_z (p0, z0))
     339  
     340  /*
     341  ** cvt_f16_s64_z_untied:
     342  **	movprfx	z0\.d, p0/z, z4\.d
     343  **	scvtf	z0\.h, p0/m, z4\.d
     344  **	ret
     345  */
     346  TEST_DUAL_Z (cvt_f16_s64_z_untied, svfloat16_t, svint64_t,
     347  	     z0 = svcvt_f16_s64_z (p0, z4),
     348  	     z0 = svcvt_f16_z (p0, z4))
     349  
     350  /*
     351  ** cvt_f16_u16_z_tied1:
     352  **	mov	(z[0-9]+)\.d, z0\.d
     353  **	movprfx	z0\.h, p0/z, \1\.h
     354  **	ucvtf	z0\.h, p0/m, \1\.h
     355  **	ret
     356  */
     357  TEST_DUAL_Z_REV (cvt_f16_u16_z_tied1, svfloat16_t, svuint16_t,
     358  		 z0_res = svcvt_f16_u16_z (p0, z0),
     359  		 z0_res = svcvt_f16_z (p0, z0))
     360  
     361  /*
     362  ** cvt_f16_u16_z_untied:
     363  **	movprfx	z0\.h, p0/z, z4\.h
     364  **	ucvtf	z0\.h, p0/m, z4\.h
     365  **	ret
     366  */
     367  TEST_DUAL_Z (cvt_f16_u16_z_untied, svfloat16_t, svuint16_t,
     368  	     z0 = svcvt_f16_u16_z (p0, z4),
     369  	     z0 = svcvt_f16_z (p0, z4))
     370  
     371  /*
     372  ** cvt_f16_u32_z_tied1:
     373  **	mov	(z[0-9]+)\.d, z0\.d
     374  **	movprfx	z0\.s, p0/z, \1\.s
     375  **	ucvtf	z0\.h, p0/m, \1\.s
     376  **	ret
     377  */
     378  TEST_DUAL_Z_REV (cvt_f16_u32_z_tied1, svfloat16_t, svuint32_t,
     379  		 z0_res = svcvt_f16_u32_z (p0, z0),
     380  		 z0_res = svcvt_f16_z (p0, z0))
     381  
     382  /*
     383  ** cvt_f16_u32_z_untied:
     384  **	movprfx	z0\.s, p0/z, z4\.s
     385  **	ucvtf	z0\.h, p0/m, z4\.s
     386  **	ret
     387  */
     388  TEST_DUAL_Z (cvt_f16_u32_z_untied, svfloat16_t, svuint32_t,
     389  	     z0 = svcvt_f16_u32_z (p0, z4),
     390  	     z0 = svcvt_f16_z (p0, z4))
     391  
     392  /*
     393  ** cvt_f16_u64_z_tied1:
     394  **	mov	(z[0-9]+\.d), z0\.d
     395  **	movprfx	z0\.d, p0/z, \1
     396  **	ucvtf	z0\.h, p0/m, \1
     397  **	ret
     398  */
     399  TEST_DUAL_Z_REV (cvt_f16_u64_z_tied1, svfloat16_t, svuint64_t,
     400  		 z0_res = svcvt_f16_u64_z (p0, z0),
     401  		 z0_res = svcvt_f16_z (p0, z0))
     402  
     403  /*
     404  ** cvt_f16_u64_z_untied:
     405  **	movprfx	z0\.d, p0/z, z4\.d
     406  **	ucvtf	z0\.h, p0/m, z4\.d
     407  **	ret
     408  */
     409  TEST_DUAL_Z (cvt_f16_u64_z_untied, svfloat16_t, svuint64_t,
     410  	     z0 = svcvt_f16_u64_z (p0, z4),
     411  	     z0 = svcvt_f16_z (p0, z4))
     412  
     413  /*
     414  ** cvt_f16_f32_x_tied1:
     415  **	fcvt	z0\.h, p0/m, z0\.s
     416  **	ret
     417  */
     418  TEST_DUAL_Z_REV (cvt_f16_f32_x_tied1, svfloat16_t, svfloat32_t,
     419  		 z0_res = svcvt_f16_f32_x (p0, z0),
     420  		 z0_res = svcvt_f16_x (p0, z0))
     421  
     422  /*
     423  ** cvt_f16_f32_x_untied:
     424  **	movprfx	z0, z4
     425  **	fcvt	z0\.h, p0/m, z4\.s
     426  **	ret
     427  */
     428  TEST_DUAL_Z (cvt_f16_f32_x_untied, svfloat16_t, svfloat32_t,
     429  	     z0 = svcvt_f16_f32_x (p0, z4),
     430  	     z0 = svcvt_f16_x (p0, z4))
     431  
     432  /*
     433  ** cvt_f16_f64_x_tied1:
     434  **	fcvt	z0\.h, p0/m, z0\.d
     435  **	ret
     436  */
     437  TEST_DUAL_Z_REV (cvt_f16_f64_x_tied1, svfloat16_t, svfloat64_t,
     438  		 z0_res = svcvt_f16_f64_x (p0, z0),
     439  		 z0_res = svcvt_f16_x (p0, z0))
     440  
     441  /*
     442  ** cvt_f16_f64_x_untied:
     443  **	movprfx	z0, z4
     444  **	fcvt	z0\.h, p0/m, z4\.d
     445  **	ret
     446  */
     447  TEST_DUAL_Z (cvt_f16_f64_x_untied, svfloat16_t, svfloat64_t,
     448  	     z0 = svcvt_f16_f64_x (p0, z4),
     449  	     z0 = svcvt_f16_x (p0, z4))
     450  
     451  /*
     452  ** cvt_f16_s16_x_tied1:
     453  **	scvtf	z0\.h, p0/m, z0\.h
     454  **	ret
     455  */
     456  TEST_DUAL_Z_REV (cvt_f16_s16_x_tied1, svfloat16_t, svint16_t,
     457  		 z0_res = svcvt_f16_s16_x (p0, z0),
     458  		 z0_res = svcvt_f16_x (p0, z0))
     459  
     460  /*
     461  ** cvt_f16_s16_x_untied:
     462  **	movprfx	z0, z4
     463  **	scvtf	z0\.h, p0/m, z4\.h
     464  **	ret
     465  */
     466  TEST_DUAL_Z (cvt_f16_s16_x_untied, svfloat16_t, svint16_t,
     467  	     z0 = svcvt_f16_s16_x (p0, z4),
     468  	     z0 = svcvt_f16_x (p0, z4))
     469  
     470  /*
     471  ** cvt_f16_s32_x_tied1:
     472  **	scvtf	z0\.h, p0/m, z0\.s
     473  **	ret
     474  */
     475  TEST_DUAL_Z_REV (cvt_f16_s32_x_tied1, svfloat16_t, svint32_t,
     476  		 z0_res = svcvt_f16_s32_x (p0, z0),
     477  		 z0_res = svcvt_f16_x (p0, z0))
     478  
     479  /*
     480  ** cvt_f16_s32_x_untied:
     481  **	movprfx	z0, z4
     482  **	scvtf	z0\.h, p0/m, z4\.s
     483  **	ret
     484  */
     485  TEST_DUAL_Z (cvt_f16_s32_x_untied, svfloat16_t, svint32_t,
     486  	     z0 = svcvt_f16_s32_x (p0, z4),
     487  	     z0 = svcvt_f16_x (p0, z4))
     488  
     489  /*
     490  ** cvt_f16_s64_x_tied1:
     491  **	scvtf	z0\.h, p0/m, z0\.d
     492  **	ret
     493  */
     494  TEST_DUAL_Z_REV (cvt_f16_s64_x_tied1, svfloat16_t, svint64_t,
     495  		 z0_res = svcvt_f16_s64_x (p0, z0),
     496  		 z0_res = svcvt_f16_x (p0, z0))
     497  
     498  /*
     499  ** cvt_f16_s64_x_untied:
     500  **	movprfx	z0, z4
     501  **	scvtf	z0\.h, p0/m, z4\.d
     502  **	ret
     503  */
     504  TEST_DUAL_Z (cvt_f16_s64_x_untied, svfloat16_t, svint64_t,
     505  	     z0 = svcvt_f16_s64_x (p0, z4),
     506  	     z0 = svcvt_f16_x (p0, z4))
     507  
     508  /*
     509  ** cvt_f16_u16_x_tied1:
     510  **	ucvtf	z0\.h, p0/m, z0\.h
     511  **	ret
     512  */
     513  TEST_DUAL_Z_REV (cvt_f16_u16_x_tied1, svfloat16_t, svuint16_t,
     514  		 z0_res = svcvt_f16_u16_x (p0, z0),
     515  		 z0_res = svcvt_f16_x (p0, z0))
     516  
     517  /*
     518  ** cvt_f16_u16_x_untied:
     519  **	movprfx	z0, z4
     520  **	ucvtf	z0\.h, p0/m, z4\.h
     521  **	ret
     522  */
     523  TEST_DUAL_Z (cvt_f16_u16_x_untied, svfloat16_t, svuint16_t,
     524  	     z0 = svcvt_f16_u16_x (p0, z4),
     525  	     z0 = svcvt_f16_x (p0, z4))
     526  
     527  /*
     528  ** cvt_f16_u32_x_tied1:
     529  **	ucvtf	z0\.h, p0/m, z0\.s
     530  **	ret
     531  */
     532  TEST_DUAL_Z_REV (cvt_f16_u32_x_tied1, svfloat16_t, svuint32_t,
     533  		 z0_res = svcvt_f16_u32_x (p0, z0),
     534  		 z0_res = svcvt_f16_x (p0, z0))
     535  
     536  /*
     537  ** cvt_f16_u32_x_untied:
     538  **	movprfx	z0, z4
     539  **	ucvtf	z0\.h, p0/m, z4\.s
     540  **	ret
     541  */
     542  TEST_DUAL_Z (cvt_f16_u32_x_untied, svfloat16_t, svuint32_t,
     543  	     z0 = svcvt_f16_u32_x (p0, z4),
     544  	     z0 = svcvt_f16_x (p0, z4))
     545  
     546  /*
     547  ** cvt_f16_u64_x_tied1:
     548  **	ucvtf	z0\.h, p0/m, z0\.d
     549  **	ret
     550  */
     551  TEST_DUAL_Z_REV (cvt_f16_u64_x_tied1, svfloat16_t, svuint64_t,
     552  		 z0_res = svcvt_f16_u64_x (p0, z0),
     553  		 z0_res = svcvt_f16_x (p0, z0))
     554  
     555  /*
     556  ** cvt_f16_u64_x_untied:
     557  **	movprfx	z0, z4
     558  **	ucvtf	z0\.h, p0/m, z4\.d
     559  **	ret
     560  */
     561  TEST_DUAL_Z (cvt_f16_u64_x_untied, svfloat16_t, svuint64_t,
     562  	     z0 = svcvt_f16_u64_x (p0, z4),
     563  	     z0 = svcvt_f16_x (p0, z4))
     564  
     565  /*
     566  ** ptrue_cvt_f16_f32_x_tied1:
     567  **	...
     568  **	ptrue	p[0-9]+\.b[^\n]*
     569  **	...
     570  **	ret
     571  */
     572  TEST_DUAL_Z_REV (ptrue_cvt_f16_f32_x_tied1, svfloat16_t, svfloat32_t,
     573  		 z0_res = svcvt_f16_f32_x (svptrue_b32 (), z0),
     574  		 z0_res = svcvt_f16_x (svptrue_b32 (), z0))
     575  
     576  /*
     577  ** ptrue_cvt_f16_f32_x_untied:
     578  **	...
     579  **	ptrue	p[0-9]+\.b[^\n]*
     580  **	...
     581  **	ret
     582  */
     583  TEST_DUAL_Z (ptrue_cvt_f16_f32_x_untied, svfloat16_t, svfloat32_t,
     584  	     z0 = svcvt_f16_f32_x (svptrue_b32 (), z4),
     585  	     z0 = svcvt_f16_x (svptrue_b32 (), z4))
     586  
     587  /*
     588  ** ptrue_cvt_f16_f64_x_tied1:
     589  **	...
     590  **	ptrue	p[0-9]+\.b[^\n]*
     591  **	...
     592  **	ret
     593  */
     594  TEST_DUAL_Z_REV (ptrue_cvt_f16_f64_x_tied1, svfloat16_t, svfloat64_t,
     595  		 z0_res = svcvt_f16_f64_x (svptrue_b64 (), z0),
     596  		 z0_res = svcvt_f16_x (svptrue_b64 (), z0))
     597  
     598  /*
     599  ** ptrue_cvt_f16_f64_x_untied:
     600  **	...
     601  **	ptrue	p[0-9]+\.b[^\n]*
     602  **	...
     603  **	ret
     604  */
     605  TEST_DUAL_Z (ptrue_cvt_f16_f64_x_untied, svfloat16_t, svfloat64_t,
     606  	     z0 = svcvt_f16_f64_x (svptrue_b64 (), z4),
     607  	     z0 = svcvt_f16_x (svptrue_b64 (), z4))
     608  
     609  /*
     610  ** ptrue_cvt_f16_s16_x_tied1:
     611  **	...
     612  **	ptrue	p[0-9]+\.b[^\n]*
     613  **	...
     614  **	ret
     615  */
     616  TEST_DUAL_Z_REV (ptrue_cvt_f16_s16_x_tied1, svfloat16_t, svint16_t,
     617  		 z0_res = svcvt_f16_s16_x (svptrue_b16 (), z0),
     618  		 z0_res = svcvt_f16_x (svptrue_b16 (), z0))
     619  
     620  /*
     621  ** ptrue_cvt_f16_s16_x_untied:
     622  **	...
     623  **	ptrue	p[0-9]+\.b[^\n]*
     624  **	...
     625  **	ret
     626  */
     627  TEST_DUAL_Z (ptrue_cvt_f16_s16_x_untied, svfloat16_t, svint16_t,
     628  	     z0 = svcvt_f16_s16_x (svptrue_b16 (), z4),
     629  	     z0 = svcvt_f16_x (svptrue_b16 (), z4))
     630  
     631  /*
     632  ** ptrue_cvt_f16_s32_x_tied1:
     633  **	...
     634  **	ptrue	p[0-9]+\.b[^\n]*
     635  **	...
     636  **	ret
     637  */
     638  TEST_DUAL_Z_REV (ptrue_cvt_f16_s32_x_tied1, svfloat16_t, svint32_t,
     639  		 z0_res = svcvt_f16_s32_x (svptrue_b32 (), z0),
     640  		 z0_res = svcvt_f16_x (svptrue_b32 (), z0))
     641  
     642  /*
     643  ** ptrue_cvt_f16_s32_x_untied:
     644  **	...
     645  **	ptrue	p[0-9]+\.b[^\n]*
     646  **	...
     647  **	ret
     648  */
     649  TEST_DUAL_Z (ptrue_cvt_f16_s32_x_untied, svfloat16_t, svint32_t,
     650  	     z0 = svcvt_f16_s32_x (svptrue_b32 (), z4),
     651  	     z0 = svcvt_f16_x (svptrue_b32 (), z4))
     652  
     653  /*
     654  ** ptrue_cvt_f16_s64_x_tied1:
     655  **	...
     656  **	ptrue	p[0-9]+\.b[^\n]*
     657  **	...
     658  **	ret
     659  */
     660  TEST_DUAL_Z_REV (ptrue_cvt_f16_s64_x_tied1, svfloat16_t, svint64_t,
     661  		 z0_res = svcvt_f16_s64_x (svptrue_b64 (), z0),
     662  		 z0_res = svcvt_f16_x (svptrue_b64 (), z0))
     663  
     664  /*
     665  ** ptrue_cvt_f16_s64_x_untied:
     666  **	...
     667  **	ptrue	p[0-9]+\.b[^\n]*
     668  **	...
     669  **	ret
     670  */
     671  TEST_DUAL_Z (ptrue_cvt_f16_s64_x_untied, svfloat16_t, svint64_t,
     672  	     z0 = svcvt_f16_s64_x (svptrue_b64 (), z4),
     673  	     z0 = svcvt_f16_x (svptrue_b64 (), z4))
     674  
     675  /*
     676  ** ptrue_cvt_f16_u16_x_tied1:
     677  **	...
     678  **	ptrue	p[0-9]+\.b[^\n]*
     679  **	...
     680  **	ret
     681  */
     682  TEST_DUAL_Z_REV (ptrue_cvt_f16_u16_x_tied1, svfloat16_t, svuint16_t,
     683  		 z0_res = svcvt_f16_u16_x (svptrue_b16 (), z0),
     684  		 z0_res = svcvt_f16_x (svptrue_b16 (), z0))
     685  
     686  /*
     687  ** ptrue_cvt_f16_u16_x_untied:
     688  **	...
     689  **	ptrue	p[0-9]+\.b[^\n]*
     690  **	...
     691  **	ret
     692  */
     693  TEST_DUAL_Z (ptrue_cvt_f16_u16_x_untied, svfloat16_t, svuint16_t,
     694  	     z0 = svcvt_f16_u16_x (svptrue_b16 (), z4),
     695  	     z0 = svcvt_f16_x (svptrue_b16 (), z4))
     696  
     697  /*
     698  ** ptrue_cvt_f16_u32_x_tied1:
     699  **	...
     700  **	ptrue	p[0-9]+\.b[^\n]*
     701  **	...
     702  **	ret
     703  */
     704  TEST_DUAL_Z_REV (ptrue_cvt_f16_u32_x_tied1, svfloat16_t, svuint32_t,
     705  		 z0_res = svcvt_f16_u32_x (svptrue_b32 (), z0),
     706  		 z0_res = svcvt_f16_x (svptrue_b32 (), z0))
     707  
     708  /*
     709  ** ptrue_cvt_f16_u32_x_untied:
     710  **	...
     711  **	ptrue	p[0-9]+\.b[^\n]*
     712  **	...
     713  **	ret
     714  */
     715  TEST_DUAL_Z (ptrue_cvt_f16_u32_x_untied, svfloat16_t, svuint32_t,
     716  	     z0 = svcvt_f16_u32_x (svptrue_b32 (), z4),
     717  	     z0 = svcvt_f16_x (svptrue_b32 (), z4))
     718  
     719  /*
     720  ** ptrue_cvt_f16_u64_x_tied1:
     721  **	...
     722  **	ptrue	p[0-9]+\.b[^\n]*
     723  **	...
     724  **	ret
     725  */
     726  TEST_DUAL_Z_REV (ptrue_cvt_f16_u64_x_tied1, svfloat16_t, svuint64_t,
     727  		 z0_res = svcvt_f16_u64_x (svptrue_b64 (), z0),
     728  		 z0_res = svcvt_f16_x (svptrue_b64 (), z0))
     729  
     730  /*
     731  ** ptrue_cvt_f16_u64_x_untied:
     732  **	...
     733  **	ptrue	p[0-9]+\.b[^\n]*
     734  **	...
     735  **	ret
     736  */
     737  TEST_DUAL_Z (ptrue_cvt_f16_u64_x_untied, svfloat16_t, svuint64_t,
     738  	     z0 = svcvt_f16_u64_x (svptrue_b64 (), z4),
     739  	     z0 = svcvt_f16_x (svptrue_b64 (), z4))