(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
sve/
acle/
asm/
dup_f16.c
       1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** dup_1_f16:
       7  **	fmov	z0\.h, #1\.0(?:e\+0)?
       8  **	ret
       9  */
      10  TEST_UNIFORM_Z (dup_1_f16, svfloat16_t,
      11  		z0 = svdup_n_f16 (1),
      12  		z0 = svdup_f16 (1))
      13  
      14  /*
      15  ** dup_0_f16:
      16  **	mov	z0\.h, #0
      17  **	ret
      18  */
      19  TEST_UNIFORM_Z (dup_0_f16, svfloat16_t,
      20  		z0 = svdup_n_f16 (0),
      21  		z0 = svdup_f16 (0))
      22  
      23  /*
      24  ** dup_8_f16:
      25  **	fmov	z0\.h, #8\.0(?:e\+0)?
      26  **	ret
      27  */
      28  TEST_UNIFORM_Z (dup_8_f16, svfloat16_t,
      29  		z0 = svdup_n_f16 (8),
      30  		z0 = svdup_f16 (8))
      31  
      32  /*
      33  ** dup_512_f16:
      34  **	mov	z0\.h, #24576
      35  **	ret
      36  */
      37  TEST_UNIFORM_Z (dup_512_f16, svfloat16_t,
      38  		z0 = svdup_n_f16 (512),
      39  		z0 = svdup_f16 (512))
      40  
      41  /*
      42  ** dup_513_f16:
      43  **	mov	(w[0-7]+), 24578
      44  **	mov	z0\.h, \1
      45  **	ret
      46  */
      47  TEST_UNIFORM_Z (dup_513_f16, svfloat16_t,
      48  		z0 = svdup_n_f16 (513),
      49  		z0 = svdup_f16 (513))
      50  
      51  /*
      52  ** dup_h4_f16:
      53  **	mov	z0\.h, h4
      54  **	ret
      55  */
      56  TEST_UNIFORM_ZD (dup_h4_f16, svfloat16_t, __fp16,
      57  		z0 = svdup_n_f16 (d4),
      58  		z0 = svdup_f16 (d4))
      59  
      60  /*
      61  ** dup_1_f16_m:
      62  **	mov	z0\.h, p0/m, #15360
      63  **	ret
      64  */
      65  TEST_UNIFORM_Z (dup_1_f16_m, svfloat16_t,
      66  		z0 = svdup_n_f16_m (z0, p0, 1),
      67  		z0 = svdup_f16_m (z0, p0, 1))
      68  
      69  /*
      70  ** dup_0_f16_m:
      71  **	mov	z0\.h, p0/m, #0
      72  **	ret
      73  */
      74  TEST_UNIFORM_Z (dup_0_f16_m, svfloat16_t,
      75  		z0 = svdup_n_f16_m (z0, p0, 0),
      76  		z0 = svdup_f16_m (z0, p0, 0))
      77  
      78  /*
      79  ** dup_8_f16_m:
      80  **	mov	z0\.h, p0/m, #18432
      81  **	ret
      82  */
      83  TEST_UNIFORM_Z (dup_8_f16_m, svfloat16_t,
      84  		z0 = svdup_n_f16_m (z0, p0, 8),
      85  		z0 = svdup_f16_m (z0, p0, 8))
      86  
      87  /*
      88  ** dup_512_f16_m:
      89  **	mov	z0\.h, p0/m, #24576
      90  **	ret
      91  */
      92  TEST_UNIFORM_Z (dup_512_f16_m, svfloat16_t,
      93  		z0 = svdup_n_f16_m (z0, p0, 512),
      94  		z0 = svdup_f16_m (z0, p0, 512))
      95  
      96  
      97  /* TODO: Bad code and needs fixing.  */
      98  TEST_UNIFORM_Z (dup_513_f16_m, svfloat16_t,
      99  		z0 = svdup_n_f16_m (z0, p0, 513),
     100  		z0 = svdup_f16_m (z0, p0, 513))
     101  
     102  /*
     103  ** dup_h4_f16_m:
     104  **	movprfx	z0, z1
     105  **	mov	z0\.h, p0/m, h4
     106  **	ret
     107  */
     108  TEST_UNIFORM_ZD (dup_h4_f16_m, svfloat16_t, __fp16,
     109  		z0 = svdup_n_f16_m (z1, p0, d4),
     110  		z0 = svdup_f16_m (z1, p0, d4))
     111  
     112  /*
     113  ** dup_1_f16_z:
     114  **	mov	z0\.h, p0/z, #15360
     115  **	ret
     116  */
     117  TEST_UNIFORM_Z (dup_1_f16_z, svfloat16_t,
     118  		z0 = svdup_n_f16_z (p0, 1),
     119  		z0 = svdup_f16_z (p0, 1))
     120  
     121  /*
     122  ** dup_0_f16_z:
     123  **	mov	z0\.[bhsd], #0
     124  **	ret
     125  */
     126  TEST_UNIFORM_Z (dup_0_f16_z, svfloat16_t,
     127  		z0 = svdup_n_f16_z (p0, 0),
     128  		z0 = svdup_f16_z (p0, 0))
     129  
     130  /*
     131  ** dup_8_f16_z:
     132  **	mov	z0\.h, p0/z, #18432
     133  **	ret
     134  */
     135  TEST_UNIFORM_Z (dup_8_f16_z, svfloat16_t,
     136  		z0 = svdup_n_f16_z (p0, 8),
     137  		z0 = svdup_f16_z (p0, 8))
     138  
     139  /*
     140  ** dup_512_f16_z:
     141  **	mov	z0\.h, p0/z, #24576
     142  **	ret
     143  */
     144  TEST_UNIFORM_Z (dup_512_f16_z, svfloat16_t,
     145  		z0 = svdup_n_f16_z (p0, 512),
     146  		z0 = svdup_f16_z (p0, 512))
     147  
     148  /* TODO: Bad code and needs fixing.  */
     149  TEST_UNIFORM_Z (dup_513_f16_z, svfloat16_t,
     150  		z0 = svdup_n_f16_z (p0, 513),
     151  		z0 = svdup_f16_z (p0, 513))
     152  /*
     153  ** dup_h4_f16_z:
     154  **	movprfx	z0\.h, p0/z, z0\.h
     155  **	mov	z0\.h, p0/m, h4
     156  **	ret
     157  */
     158  TEST_UNIFORM_ZD (dup_h4_f16_z, svfloat16_t, __fp16,
     159  		z0 = svdup_n_f16_z (p0, d4),
     160  		z0 = svdup_f16_z (p0, d4))
     161  
     162  /*
     163  ** dup_1_f16_x:
     164  **	fmov	z0\.h, #1\.0(?:e\+0)?
     165  **	ret
     166  */
     167  TEST_UNIFORM_Z (dup_1_f16_x, svfloat16_t,
     168  		z0 = svdup_n_f16_x (p0, 1),
     169  		z0 = svdup_f16_x (p0, 1))
     170  
     171  /*
     172  ** dup_0_f16_x:
     173  **	mov	z0\.h, #0
     174  **	ret
     175  */
     176  TEST_UNIFORM_Z (dup_0_f16_x, svfloat16_t,
     177  		z0 = svdup_n_f16_x (p0, 0),
     178  		z0 = svdup_f16_x (p0, 0))
     179  
     180  /*
     181  ** dup_8_f16_x:
     182  **	fmov	z0\.h, #8\.0(?:e\+0)?
     183  **	ret
     184  */
     185  TEST_UNIFORM_Z (dup_8_f16_x, svfloat16_t,
     186  		z0 = svdup_n_f16_x (p0, 8),
     187  		z0 = svdup_f16_x (p0, 8))
     188  
     189  /*
     190  ** dup_512_f16_x:
     191  **	mov	z0\.h, #24576
     192  **	ret
     193  */
     194  TEST_UNIFORM_Z (dup_512_f16_x, svfloat16_t,
     195  		z0 = svdup_n_f16_x (p0, 512),
     196  		z0 = svdup_f16_x (p0, 512))
     197  
     198  /*
     199  ** dup_513_f16_x:
     200  **	mov	(w[0-7]+), 24578
     201  **	mov	z0\.h, \1
     202  **	ret
     203  */
     204  TEST_UNIFORM_Z (dup_513_f16_x, svfloat16_t,
     205  		z0 = svdup_n_f16_x (p0, 513),
     206  		z0 = svdup_f16_x (p0, 513))
     207  
     208  /*
     209  ** dup_h4_f16_x:
     210  **	mov	z0\.h, h4
     211  **	ret
     212  */
     213  TEST_UNIFORM_ZD (dup_h4_f16_x, svfloat16_t, __fp16,
     214  		z0 = svdup_n_f16_x (p0, d4),
     215  		z0 = svdup_f16_x (p0, d4))