(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
sve/
acle/
asm/
st1w_scatter_u64.c
       1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" { target { ! ilp32 } } } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** st1w_scatter_u64:
       7  **	st1w	z0\.d, p0, \[z1\.d\]
       8  **	ret
       9  */
      10  TEST_STORE_SCATTER_ZS (st1w_scatter_u64, svuint64_t, svuint64_t,
      11  		       svst1w_scatter_u64base_u64 (p0, z1, z0),
      12  		       svst1w_scatter (p0, z1, z0))
      13  
      14  /*
      15  ** st1w_scatter_x0_u64_offset:
      16  **	st1w	z0\.d, p0, \[x0, z1\.d\]
      17  **	ret
      18  */
      19  TEST_STORE_SCATTER_ZS (st1w_scatter_x0_u64_offset, svuint64_t, svuint64_t,
      20  		       svst1w_scatter_u64base_offset_u64 (p0, z1, x0, z0),
      21  		       svst1w_scatter_offset (p0, z1, x0, z0))
      22  
      23  /*
      24  ** st1w_scatter_m4_u64_offset:
      25  **	mov	(x[0-9]+), #?-4
      26  **	st1w	z0\.d, p0, \[\1, z1\.d\]
      27  **	ret
      28  */
      29  TEST_STORE_SCATTER_ZS (st1w_scatter_m4_u64_offset, svuint64_t, svuint64_t,
      30  		       svst1w_scatter_u64base_offset_u64 (p0, z1, -4, z0),
      31  		       svst1w_scatter_offset (p0, z1, -4, z0))
      32  
      33  /*
      34  ** st1w_scatter_0_u64_offset:
      35  **	st1w	z0\.d, p0, \[z1\.d\]
      36  **	ret
      37  */
      38  TEST_STORE_SCATTER_ZS (st1w_scatter_0_u64_offset, svuint64_t, svuint64_t,
      39  		       svst1w_scatter_u64base_offset_u64 (p0, z1, 0, z0),
      40  		       svst1w_scatter_offset (p0, z1, 0, z0))
      41  
      42  /*
      43  ** st1w_scatter_5_u64_offset:
      44  **	mov	(x[0-9]+), #?5
      45  **	st1w	z0\.d, p0, \[\1, z1\.d\]
      46  **	ret
      47  */
      48  TEST_STORE_SCATTER_ZS (st1w_scatter_5_u64_offset, svuint64_t, svuint64_t,
      49  		       svst1w_scatter_u64base_offset_u64 (p0, z1, 5, z0),
      50  		       svst1w_scatter_offset (p0, z1, 5, z0))
      51  
      52  /*
      53  ** st1w_scatter_6_u64_offset:
      54  **	mov	(x[0-9]+), #?6
      55  **	st1w	z0\.d, p0, \[\1, z1\.d\]
      56  **	ret
      57  */
      58  TEST_STORE_SCATTER_ZS (st1w_scatter_6_u64_offset, svuint64_t, svuint64_t,
      59  		       svst1w_scatter_u64base_offset_u64 (p0, z1, 6, z0),
      60  		       svst1w_scatter_offset (p0, z1, 6, z0))
      61  
      62  /*
      63  ** st1w_scatter_7_u64_offset:
      64  **	mov	(x[0-9]+), #?7
      65  **	st1w	z0\.d, p0, \[\1, z1\.d\]
      66  **	ret
      67  */
      68  TEST_STORE_SCATTER_ZS (st1w_scatter_7_u64_offset, svuint64_t, svuint64_t,
      69  		       svst1w_scatter_u64base_offset_u64 (p0, z1, 7, z0),
      70  		       svst1w_scatter_offset (p0, z1, 7, z0))
      71  
      72  /*
      73  ** st1w_scatter_8_u64_offset:
      74  **	st1w	z0\.d, p0, \[z1\.d, #8\]
      75  **	ret
      76  */
      77  TEST_STORE_SCATTER_ZS (st1w_scatter_8_u64_offset, svuint64_t, svuint64_t,
      78  		       svst1w_scatter_u64base_offset_u64 (p0, z1, 8, z0),
      79  		       svst1w_scatter_offset (p0, z1, 8, z0))
      80  
      81  /*
      82  ** st1w_scatter_124_u64_offset:
      83  **	st1w	z0\.d, p0, \[z1\.d, #124\]
      84  **	ret
      85  */
      86  TEST_STORE_SCATTER_ZS (st1w_scatter_124_u64_offset, svuint64_t, svuint64_t,
      87  		       svst1w_scatter_u64base_offset_u64 (p0, z1, 124, z0),
      88  		       svst1w_scatter_offset (p0, z1, 124, z0))
      89  
      90  /*
      91  ** st1w_scatter_128_u64_offset:
      92  **	mov	(x[0-9]+), #?128
      93  **	st1w	z0\.d, p0, \[\1, z1\.d\]
      94  **	ret
      95  */
      96  TEST_STORE_SCATTER_ZS (st1w_scatter_128_u64_offset, svuint64_t, svuint64_t,
      97  		       svst1w_scatter_u64base_offset_u64 (p0, z1, 128, z0),
      98  		       svst1w_scatter_offset (p0, z1, 128, z0))
      99  
     100  /*
     101  ** st1w_scatter_x0_u64_index:
     102  **	lsl	(x[0-9]+), x0, #?2
     103  **	st1w	z0\.d, p0, \[\1, z1\.d\]
     104  **	ret
     105  */
     106  TEST_STORE_SCATTER_ZS (st1w_scatter_x0_u64_index, svuint64_t, svuint64_t,
     107  		       svst1w_scatter_u64base_index_u64 (p0, z1, x0, z0),
     108  		       svst1w_scatter_index (p0, z1, x0, z0))
     109  
     110  /*
     111  ** st1w_scatter_m1_u64_index:
     112  **	mov	(x[0-9]+), #?-4
     113  **	st1w	z0\.d, p0, \[\1, z1\.d\]
     114  **	ret
     115  */
     116  TEST_STORE_SCATTER_ZS (st1w_scatter_m1_u64_index, svuint64_t, svuint64_t,
     117  		       svst1w_scatter_u64base_index_u64 (p0, z1, -1, z0),
     118  		       svst1w_scatter_index (p0, z1, -1, z0))
     119  
     120  /*
     121  ** st1w_scatter_0_u64_index:
     122  **	st1w	z0\.d, p0, \[z1\.d\]
     123  **	ret
     124  */
     125  TEST_STORE_SCATTER_ZS (st1w_scatter_0_u64_index, svuint64_t, svuint64_t,
     126  		       svst1w_scatter_u64base_index_u64 (p0, z1, 0, z0),
     127  		       svst1w_scatter_index (p0, z1, 0, z0))
     128  
     129  /*
     130  ** st1w_scatter_5_u64_index:
     131  **	st1w	z0\.d, p0, \[z1\.d, #20\]
     132  **	ret
     133  */
     134  TEST_STORE_SCATTER_ZS (st1w_scatter_5_u64_index, svuint64_t, svuint64_t,
     135  		       svst1w_scatter_u64base_index_u64 (p0, z1, 5, z0),
     136  		       svst1w_scatter_index (p0, z1, 5, z0))
     137  
     138  /*
     139  ** st1w_scatter_31_u64_index:
     140  **	st1w	z0\.d, p0, \[z1\.d, #124\]
     141  **	ret
     142  */
     143  TEST_STORE_SCATTER_ZS (st1w_scatter_31_u64_index, svuint64_t, svuint64_t,
     144  		       svst1w_scatter_u64base_index_u64 (p0, z1, 31, z0),
     145  		       svst1w_scatter_index (p0, z1, 31, z0))
     146  
     147  /*
     148  ** st1w_scatter_32_u64_index:
     149  **	mov	(x[0-9]+), #?128
     150  **	st1w	z0\.d, p0, \[\1, z1\.d\]
     151  **	ret
     152  */
     153  TEST_STORE_SCATTER_ZS (st1w_scatter_32_u64_index, svuint64_t, svuint64_t,
     154  		       svst1w_scatter_u64base_index_u64 (p0, z1, 32, z0),
     155  		       svst1w_scatter_index (p0, z1, 32, z0))
     156  
     157  /*
     158  ** st1w_scatter_x0_u64_s64offset:
     159  **	st1w	z0\.d, p0, \[x0, z1\.d\]
     160  **	ret
     161  */
     162  TEST_STORE_SCATTER_SZ (st1w_scatter_x0_u64_s64offset, svuint64_t, uint32_t, svint64_t,
     163  		       svst1w_scatter_s64offset_u64 (p0, x0, z1, z0),
     164  		       svst1w_scatter_offset (p0, x0, z1, z0))
     165  
     166  /*
     167  ** st1w_scatter_u64_s64offset:
     168  **	st1w	z0\.d, p0, \[x0, z1\.d\]
     169  **	ret
     170  */
     171  TEST_STORE_SCATTER_SZ (st1w_scatter_u64_s64offset, svuint64_t, uint32_t, svint64_t,
     172  		       svst1w_scatter_s64offset_u64 (p0, x0, z1, z0),
     173  		       svst1w_scatter_offset (p0, x0, z1, z0))
     174  
     175  /*
     176  ** st1w_scatter_ext_u64_s64offset:
     177  **	st1w	z0\.d, p0, \[x0, z1\.d, sxtw\]
     178  **	ret
     179  */
     180  TEST_STORE_SCATTER_SZ (st1w_scatter_ext_u64_s64offset, svuint64_t, uint32_t, svint64_t,
     181  		       svst1w_scatter_s64offset_u64 (p0, x0, svextw_s64_x (p0, z1), z0),
     182  		       svst1w_scatter_offset (p0, x0, svextw_x (p0, z1), z0))
     183  
     184  /*
     185  ** st1w_scatter_x0_u64_u64offset:
     186  **	st1w	z0\.d, p0, \[x0, z1\.d\]
     187  **	ret
     188  */
     189  TEST_STORE_SCATTER_SZ (st1w_scatter_x0_u64_u64offset, svuint64_t, uint32_t, svuint64_t,
     190  		       svst1w_scatter_u64offset_u64 (p0, x0, z1, z0),
     191  		       svst1w_scatter_offset (p0, x0, z1, z0))
     192  
     193  /*
     194  ** st1w_scatter_u64_u64offset:
     195  **	st1w	z0\.d, p0, \[x0, z1\.d\]
     196  **	ret
     197  */
     198  TEST_STORE_SCATTER_SZ (st1w_scatter_u64_u64offset, svuint64_t, uint32_t, svuint64_t,
     199  		       svst1w_scatter_u64offset_u64 (p0, x0, z1, z0),
     200  		       svst1w_scatter_offset (p0, x0, z1, z0))
     201  
     202  /*
     203  ** st1w_scatter_ext_u64_u64offset:
     204  **	st1w	z0\.d, p0, \[x0, z1\.d, uxtw\]
     205  **	ret
     206  */
     207  TEST_STORE_SCATTER_SZ (st1w_scatter_ext_u64_u64offset, svuint64_t, uint32_t, svuint64_t,
     208  		       svst1w_scatter_u64offset_u64 (p0, x0, svextw_u64_x (p0, z1), z0),
     209  		       svst1w_scatter_offset (p0, x0, svextw_x (p0, z1), z0))
     210  
     211  /*
     212  ** st1w_scatter_x0_u64_s64index:
     213  **	st1w	z0\.d, p0, \[x0, z1\.d, lsl 2\]
     214  **	ret
     215  */
     216  TEST_STORE_SCATTER_SZ (st1w_scatter_x0_u64_s64index, svuint64_t, uint32_t, svint64_t,
     217  		       svst1w_scatter_s64index_u64 (p0, x0, z1, z0),
     218  		       svst1w_scatter_index (p0, x0, z1, z0))
     219  
     220  /*
     221  ** st1w_scatter_u64_s64index:
     222  **	st1w	z0\.d, p0, \[x0, z1\.d, lsl 2\]
     223  **	ret
     224  */
     225  TEST_STORE_SCATTER_SZ (st1w_scatter_u64_s64index, svuint64_t, uint32_t, svint64_t,
     226  		       svst1w_scatter_s64index_u64 (p0, x0, z1, z0),
     227  		       svst1w_scatter_index (p0, x0, z1, z0))
     228  
     229  /*
     230  ** st1w_scatter_ext_u64_s64index:
     231  **	st1w	z0\.d, p0, \[x0, z1\.d, sxtw 2\]
     232  **	ret
     233  */
     234  TEST_STORE_SCATTER_SZ (st1w_scatter_ext_u64_s64index, svuint64_t, uint32_t, svint64_t,
     235  		       svst1w_scatter_s64index_u64 (p0, x0, svextw_s64_x (p0, z1), z0),
     236  		       svst1w_scatter_index (p0, x0, svextw_x (p0, z1), z0))
     237  
     238  /*
     239  ** st1w_scatter_x0_u64_u64index:
     240  **	st1w	z0\.d, p0, \[x0, z1\.d, lsl 2\]
     241  **	ret
     242  */
     243  TEST_STORE_SCATTER_SZ (st1w_scatter_x0_u64_u64index, svuint64_t, uint32_t, svuint64_t,
     244  		       svst1w_scatter_u64index_u64 (p0, x0, z1, z0),
     245  		       svst1w_scatter_index (p0, x0, z1, z0))
     246  
     247  /*
     248  ** st1w_scatter_u64_u64index:
     249  **	st1w	z0\.d, p0, \[x0, z1\.d, lsl 2\]
     250  **	ret
     251  */
     252  TEST_STORE_SCATTER_SZ (st1w_scatter_u64_u64index, svuint64_t, uint32_t, svuint64_t,
     253  		       svst1w_scatter_u64index_u64 (p0, x0, z1, z0),
     254  		       svst1w_scatter_index (p0, x0, z1, z0))
     255  
     256  /*
     257  ** st1w_scatter_ext_u64_u64index:
     258  **	st1w	z0\.d, p0, \[x0, z1\.d, uxtw 2\]
     259  **	ret
     260  */
     261  TEST_STORE_SCATTER_SZ (st1w_scatter_ext_u64_u64index, svuint64_t, uint32_t, svuint64_t,
     262  		       svst1w_scatter_u64index_u64 (p0, x0, svextw_u64_x (p0, z1), z0),
     263  		       svst1w_scatter_index (p0, x0, svextw_x (p0, z1), z0))