1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" { target { ! ilp32 } } } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** stnt1_scatter_u32:
       7  **	stnt1w	z0\.s, p0, \[z1\.s\]
       8  **	ret
       9  */
      10  TEST_STORE_SCATTER_ZS (stnt1_scatter_u32, svuint32_t, svuint32_t,
      11  		       svstnt1_scatter_u32base_u32 (p0, z1, z0),
      12  		       svstnt1_scatter (p0, z1, z0))
      13  
      14  /*
      15  ** stnt1_scatter_x0_u32_offset:
      16  **	stnt1w	z0\.s, p0, \[z1\.s, x0\]
      17  **	ret
      18  */
      19  TEST_STORE_SCATTER_ZS (stnt1_scatter_x0_u32_offset, svuint32_t, svuint32_t,
      20  		       svstnt1_scatter_u32base_offset_u32 (p0, z1, x0, z0),
      21  		       svstnt1_scatter_offset (p0, z1, x0, z0))
      22  
      23  /*
      24  ** stnt1_scatter_m4_u32_offset:
      25  **	mov	(x[0-9]+), #?-4
      26  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
      27  **	ret
      28  */
      29  TEST_STORE_SCATTER_ZS (stnt1_scatter_m4_u32_offset, svuint32_t, svuint32_t,
      30  		       svstnt1_scatter_u32base_offset_u32 (p0, z1, -4, z0),
      31  		       svstnt1_scatter_offset (p0, z1, -4, z0))
      32  
      33  /*
      34  ** stnt1_scatter_0_u32_offset:
      35  **	stnt1w	z0\.s, p0, \[z1\.s\]
      36  **	ret
      37  */
      38  TEST_STORE_SCATTER_ZS (stnt1_scatter_0_u32_offset, svuint32_t, svuint32_t,
      39  		       svstnt1_scatter_u32base_offset_u32 (p0, z1, 0, z0),
      40  		       svstnt1_scatter_offset (p0, z1, 0, z0))
      41  
      42  /*
      43  ** stnt1_scatter_5_u32_offset:
      44  **	mov	(x[0-9]+), #?5
      45  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
      46  **	ret
      47  */
      48  TEST_STORE_SCATTER_ZS (stnt1_scatter_5_u32_offset, svuint32_t, svuint32_t,
      49  		       svstnt1_scatter_u32base_offset_u32 (p0, z1, 5, z0),
      50  		       svstnt1_scatter_offset (p0, z1, 5, z0))
      51  
      52  /*
      53  ** stnt1_scatter_6_u32_offset:
      54  **	mov	(x[0-9]+), #?6
      55  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
      56  **	ret
      57  */
      58  TEST_STORE_SCATTER_ZS (stnt1_scatter_6_u32_offset, svuint32_t, svuint32_t,
      59  		       svstnt1_scatter_u32base_offset_u32 (p0, z1, 6, z0),
      60  		       svstnt1_scatter_offset (p0, z1, 6, z0))
      61  
      62  /*
      63  ** stnt1_scatter_7_u32_offset:
      64  **	mov	(x[0-9]+), #?7
      65  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
      66  **	ret
      67  */
      68  TEST_STORE_SCATTER_ZS (stnt1_scatter_7_u32_offset, svuint32_t, svuint32_t,
      69  		       svstnt1_scatter_u32base_offset_u32 (p0, z1, 7, z0),
      70  		       svstnt1_scatter_offset (p0, z1, 7, z0))
      71  
      72  /*
      73  ** stnt1_scatter_8_u32_offset:
      74  **	mov	(x[0-9]+), #?8
      75  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
      76  **	ret
      77  */
      78  TEST_STORE_SCATTER_ZS (stnt1_scatter_8_u32_offset, svuint32_t, svuint32_t,
      79  		       svstnt1_scatter_u32base_offset_u32 (p0, z1, 8, z0),
      80  		       svstnt1_scatter_offset (p0, z1, 8, z0))
      81  
      82  /*
      83  ** stnt1_scatter_124_u32_offset:
      84  **	mov	(x[0-9]+), #?124
      85  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
      86  **	ret
      87  */
      88  TEST_STORE_SCATTER_ZS (stnt1_scatter_124_u32_offset, svuint32_t, svuint32_t,
      89  		       svstnt1_scatter_u32base_offset_u32 (p0, z1, 124, z0),
      90  		       svstnt1_scatter_offset (p0, z1, 124, z0))
      91  
      92  /*
      93  ** stnt1_scatter_128_u32_offset:
      94  **	mov	(x[0-9]+), #?128
      95  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
      96  **	ret
      97  */
      98  TEST_STORE_SCATTER_ZS (stnt1_scatter_128_u32_offset, svuint32_t, svuint32_t,
      99  		       svstnt1_scatter_u32base_offset_u32 (p0, z1, 128, z0),
     100  		       svstnt1_scatter_offset (p0, z1, 128, z0))
     101  
     102  /*
     103  ** stnt1_scatter_x0_u32_index:
     104  **	lsl	(x[0-9]+), x0, #?2
     105  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
     106  **	ret
     107  */
     108  TEST_STORE_SCATTER_ZS (stnt1_scatter_x0_u32_index, svuint32_t, svuint32_t,
     109  		       svstnt1_scatter_u32base_index_u32 (p0, z1, x0, z0),
     110  		       svstnt1_scatter_index (p0, z1, x0, z0))
     111  
     112  /*
     113  ** stnt1_scatter_m1_u32_index:
     114  **	mov	(x[0-9]+), #?-4
     115  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
     116  **	ret
     117  */
     118  TEST_STORE_SCATTER_ZS (stnt1_scatter_m1_u32_index, svuint32_t, svuint32_t,
     119  		       svstnt1_scatter_u32base_index_u32 (p0, z1, -1, z0),
     120  		       svstnt1_scatter_index (p0, z1, -1, z0))
     121  
     122  /*
     123  ** stnt1_scatter_0_u32_index:
     124  **	stnt1w	z0\.s, p0, \[z1\.s\]
     125  **	ret
     126  */
     127  TEST_STORE_SCATTER_ZS (stnt1_scatter_0_u32_index, svuint32_t, svuint32_t,
     128  		       svstnt1_scatter_u32base_index_u32 (p0, z1, 0, z0),
     129  		       svstnt1_scatter_index (p0, z1, 0, z0))
     130  
     131  /*
     132  ** stnt1_scatter_5_u32_index:
     133  **	mov	(x[0-9]+), #?20
     134  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
     135  **	ret
     136  */
     137  TEST_STORE_SCATTER_ZS (stnt1_scatter_5_u32_index, svuint32_t, svuint32_t,
     138  		       svstnt1_scatter_u32base_index_u32 (p0, z1, 5, z0),
     139  		       svstnt1_scatter_index (p0, z1, 5, z0))
     140  
     141  /*
     142  ** stnt1_scatter_31_u32_index:
     143  **	mov	(x[0-9]+), #?124
     144  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
     145  **	ret
     146  */
     147  TEST_STORE_SCATTER_ZS (stnt1_scatter_31_u32_index, svuint32_t, svuint32_t,
     148  		       svstnt1_scatter_u32base_index_u32 (p0, z1, 31, z0),
     149  		       svstnt1_scatter_index (p0, z1, 31, z0))
     150  
     151  /*
     152  ** stnt1_scatter_32_u32_index:
     153  **	mov	(x[0-9]+), #?128
     154  **	stnt1w	z0\.s, p0, \[z1\.s, \1\]
     155  **	ret
     156  */
     157  TEST_STORE_SCATTER_ZS (stnt1_scatter_32_u32_index, svuint32_t, svuint32_t,
     158  		       svstnt1_scatter_u32base_index_u32 (p0, z1, 32, z0),
     159  		       svstnt1_scatter_index (p0, z1, 32, z0))
     160  
     161  /*
     162  ** stnt1_scatter_x0_u32_u32offset:
     163  **	stnt1w	z0\.s, p0, \[z1\.s, x0\]
     164  **	ret
     165  */
     166  TEST_STORE_SCATTER_SZ (stnt1_scatter_x0_u32_u32offset, svuint32_t, uint32_t, svuint32_t,
     167  		       svstnt1_scatter_u32offset_u32 (p0, x0, z1, z0),
     168  		       svstnt1_scatter_offset (p0, x0, z1, z0))
     169  
     170  /*
     171  ** stnt1_scatter_u32_u32offset:
     172  **	stnt1w	z0\.s, p0, \[z1\.s, x0\]
     173  **	ret
     174  */
     175  TEST_STORE_SCATTER_SZ (stnt1_scatter_u32_u32offset, svuint32_t, uint32_t, svuint32_t,
     176  		       svstnt1_scatter_u32offset_u32 (p0, x0, z1, z0),
     177  		       svstnt1_scatter_offset (p0, x0, z1, z0))