(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
sve/
acle/
asm/
prfb_gather.c
       1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" { target { ! ilp32 } } } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** prfb_gather_u32base:
       7  **	prfb	pldl1keep, p0, \[z0\.s\]
       8  **	ret
       9  */
      10  TEST_PREFETCH_GATHER_ZS (prfb_gather_u32base, svuint32_t,
      11  			 svprfb_gather_u32base (p0, z0, SV_PLDL1KEEP),
      12  			 svprfb_gather (p0, z0, SV_PLDL1KEEP))
      13  
      14  /*
      15  ** prfb_gather_u64base:
      16  **	prfb	pldl1strm, p0, \[z0\.d\]
      17  **	ret
      18  */
      19  TEST_PREFETCH_GATHER_ZS (prfb_gather_u64base, svuint64_t,
      20  			 svprfb_gather_u64base (p0, z0, SV_PLDL1STRM),
      21  			 svprfb_gather (p0, z0, SV_PLDL1STRM))
      22  
      23  /*
      24  ** prfb_gather_x0_u32base_offset:
      25  **	prfb	pldl2keep, p0, \[x0, z0\.s, uxtw\]
      26  **	ret
      27  */
      28  TEST_PREFETCH_GATHER_ZS (prfb_gather_x0_u32base_offset, svuint32_t,
      29  			 svprfb_gather_u32base_offset (p0, z0, x0, SV_PLDL2KEEP),
      30  			 svprfb_gather_offset (p0, z0, x0, SV_PLDL2KEEP))
      31  
      32  /*
      33  ** prfb_gather_m1_u32base_offset:
      34  **	mov	(x[0-9]+), #?-1
      35  **	prfb	pldl2strm, p0, \[\1, z0\.s, uxtw\]
      36  **	ret
      37  */
      38  TEST_PREFETCH_GATHER_ZS (prfb_gather_m1_u32base_offset, svuint32_t,
      39  			 svprfb_gather_u32base_offset (p0, z0, -1, SV_PLDL2STRM),
      40  			 svprfb_gather_offset (p0, z0, -1, SV_PLDL2STRM))
      41  
      42  /*
      43  ** prfb_gather_0_u32base_offset:
      44  **	prfb	pldl3keep, p0, \[z0\.s\]
      45  **	ret
      46  */
      47  TEST_PREFETCH_GATHER_ZS (prfb_gather_0_u32base_offset, svuint32_t,
      48  			 svprfb_gather_u32base_offset (p0, z0, 0, SV_PLDL3KEEP),
      49  			 svprfb_gather_offset (p0, z0, 0, SV_PLDL3KEEP))
      50  
      51  /*
      52  ** prfb_gather_5_u32base_offset:
      53  **	prfb	pldl3strm, p0, \[z0\.s, #5\]
      54  **	ret
      55  */
      56  TEST_PREFETCH_GATHER_ZS (prfb_gather_5_u32base_offset, svuint32_t,
      57  			 svprfb_gather_u32base_offset (p0, z0, 5, SV_PLDL3STRM),
      58  			 svprfb_gather_offset (p0, z0, 5, SV_PLDL3STRM))
      59  
      60  /*
      61  ** prfb_gather_31_u32base_offset:
      62  **	prfb	pstl1keep, p0, \[z0\.s, #31\]
      63  **	ret
      64  */
      65  TEST_PREFETCH_GATHER_ZS (prfb_gather_31_u32base_offset, svuint32_t,
      66  			 svprfb_gather_u32base_offset (p0, z0, 31, SV_PSTL1KEEP),
      67  			 svprfb_gather_offset (p0, z0, 31, SV_PSTL1KEEP))
      68  
      69  /*
      70  ** prfb_gather_32_u32base_offset:
      71  **	mov	(x[0-9]+), #?32
      72  **	prfb	pstl1strm, p0, \[\1, z0\.s, uxtw\]
      73  **	ret
      74  */
      75  TEST_PREFETCH_GATHER_ZS (prfb_gather_32_u32base_offset, svuint32_t,
      76  			 svprfb_gather_u32base_offset (p0, z0, 32, SV_PSTL1STRM),
      77  			 svprfb_gather_offset (p0, z0, 32, SV_PSTL1STRM))
      78  
      79  /*
      80  ** prfb_gather_x0_u64base_offset:
      81  **	prfb	pstl2keep, p0, \[x0, z0\.d\]
      82  **	ret
      83  */
      84  TEST_PREFETCH_GATHER_ZS (prfb_gather_x0_u64base_offset, svuint64_t,
      85  			 svprfb_gather_u64base_offset (p0, z0, x0, SV_PSTL2KEEP),
      86  			 svprfb_gather_offset (p0, z0, x0, SV_PSTL2KEEP))
      87  
      88  /*
      89  ** prfb_gather_m1_u64base_offset:
      90  **	mov	(x[0-9]+), #?-1
      91  **	prfb	pstl2strm, p0, \[\1, z0\.d\]
      92  **	ret
      93  */
      94  TEST_PREFETCH_GATHER_ZS (prfb_gather_m1_u64base_offset, svuint64_t,
      95  			 svprfb_gather_u64base_offset (p0, z0, -1, SV_PSTL2STRM),
      96  			 svprfb_gather_offset (p0, z0, -1, SV_PSTL2STRM))
      97  
      98  /*
      99  ** prfb_gather_0_u64base_offset:
     100  **	prfb	pstl3keep, p0, \[z0\.d\]
     101  **	ret
     102  */
     103  TEST_PREFETCH_GATHER_ZS (prfb_gather_0_u64base_offset, svuint64_t,
     104  			 svprfb_gather_u64base_offset (p0, z0, 0, SV_PSTL3KEEP),
     105  			 svprfb_gather_offset (p0, z0, 0, SV_PSTL3KEEP))
     106  
     107  /*
     108  ** prfb_gather_5_u64base_offset:
     109  **	prfb	pstl3strm, p0, \[z0\.d, #5\]
     110  **	ret
     111  */
     112  TEST_PREFETCH_GATHER_ZS (prfb_gather_5_u64base_offset, svuint64_t,
     113  			 svprfb_gather_u64base_offset (p0, z0, 5, SV_PSTL3STRM),
     114  			 svprfb_gather_offset (p0, z0, 5, SV_PSTL3STRM))
     115  
     116  /*
     117  ** prfb_gather_31_u64base_offset:
     118  **	prfb	pldl1keep, p0, \[z0\.d, #31\]
     119  **	ret
     120  */
     121  TEST_PREFETCH_GATHER_ZS (prfb_gather_31_u64base_offset, svuint64_t,
     122  			 svprfb_gather_u64base_offset (p0, z0, 31, SV_PLDL1KEEP),
     123  			 svprfb_gather_offset (p0, z0, 31, SV_PLDL1KEEP))
     124  
     125  /*
     126  ** prfb_gather_32_u64base_offset:
     127  **	mov	(x[0-9]+), #?32
     128  **	prfb	pldl1strm, p0, \[\1, z0\.d\]
     129  **	ret
     130  */
     131  TEST_PREFETCH_GATHER_ZS (prfb_gather_32_u64base_offset, svuint64_t,
     132  			 svprfb_gather_u64base_offset (p0, z0, 32, SV_PLDL1STRM),
     133  			 svprfb_gather_offset (p0, z0, 32, SV_PLDL1STRM))
     134  
     135  /*
     136  ** prfb_gather_x0_s32offset:
     137  **	prfb	pldl2keep, p0, \[x0, z0\.s, sxtw\]
     138  **	ret
     139  */
     140  TEST_PREFETCH_GATHER_SZ (prfb_gather_x0_s32offset, svint32_t,
     141  			 svprfb_gather_s32offset (p0, x0, z0, SV_PLDL2KEEP),
     142  			 svprfb_gather_offset (p0, x0, z0, SV_PLDL2KEEP))
     143  
     144  /*
     145  ** prfb_gather_s32offset:
     146  **	prfb	pldl2strm, p0, \[x0, z1\.s, sxtw\]
     147  **	ret
     148  */
     149  TEST_PREFETCH_GATHER_SZ (prfb_gather_s32offset, svint32_t,
     150  			 svprfb_gather_s32offset (p0, x0, z1, SV_PLDL2STRM),
     151  			 svprfb_gather_offset (p0, x0, z1, SV_PLDL2STRM))
     152  
     153  /*
     154  ** prfb_gather_x0_u32offset:
     155  **	prfb	pldl3keep, p0, \[x0, z0\.s, uxtw\]
     156  **	ret
     157  */
     158  TEST_PREFETCH_GATHER_SZ (prfb_gather_x0_u32offset, svuint32_t,
     159  			 svprfb_gather_u32offset (p0, x0, z0, SV_PLDL3KEEP),
     160  			 svprfb_gather_offset (p0, x0, z0, SV_PLDL3KEEP))
     161  
     162  /*
     163  ** prfb_gather_u32offset:
     164  **	prfb	pldl3strm, p0, \[x0, z1\.s, uxtw\]
     165  **	ret
     166  */
     167  TEST_PREFETCH_GATHER_SZ (prfb_gather_u32offset, svuint32_t,
     168  			 svprfb_gather_u32offset (p0, x0, z1, SV_PLDL3STRM),
     169  			 svprfb_gather_offset (p0, x0, z1, SV_PLDL3STRM))
     170  
     171  /*
     172  ** prfb_gather_x0_s64offset:
     173  **	prfb	pstl1keep, p0, \[x0, z0\.d\]
     174  **	ret
     175  */
     176  TEST_PREFETCH_GATHER_SZ (prfb_gather_x0_s64offset, svint64_t,
     177  			 svprfb_gather_s64offset (p0, x0, z0, SV_PSTL1KEEP),
     178  			 svprfb_gather_offset (p0, x0, z0, SV_PSTL1KEEP))
     179  
     180  /*
     181  ** prfb_gather_s64offset:
     182  **	prfb	pstl1strm, p0, \[x0, z1\.d\]
     183  **	ret
     184  */
     185  TEST_PREFETCH_GATHER_SZ (prfb_gather_s64offset, svint64_t,
     186  			 svprfb_gather_s64offset (p0, x0, z1, SV_PSTL1STRM),
     187  			 svprfb_gather_offset (p0, x0, z1, SV_PSTL1STRM))
     188  
     189  /*
     190  ** prfb_gather_ext_s64offset:
     191  **	prfb	pstl1strm, p0, \[x0, z1\.d, sxtw\]
     192  **	ret
     193  */
     194  TEST_PREFETCH_GATHER_SZ (prfb_gather_ext_s64offset, svint64_t,
     195  			 svprfb_gather_s64offset (p0, x0, svextw_s64_x (p0, z1), SV_PSTL1STRM),
     196  			 svprfb_gather_offset (p0, x0, svextw_x (p0, z1), SV_PSTL1STRM))
     197  
     198  /*
     199  ** prfb_gather_x0_u64offset:
     200  **	prfb	pstl2keep, p0, \[x0, z0\.d\]
     201  **	ret
     202  */
     203  TEST_PREFETCH_GATHER_SZ (prfb_gather_x0_u64offset, svuint64_t,
     204  			 svprfb_gather_u64offset (p0, x0, z0, SV_PSTL2KEEP),
     205  			 svprfb_gather_offset (p0, x0, z0, SV_PSTL2KEEP))
     206  
     207  /*
     208  ** prfb_gather_u64offset:
     209  **	prfb	pstl2strm, p0, \[x0, z1\.d\]
     210  **	ret
     211  */
     212  TEST_PREFETCH_GATHER_SZ (prfb_gather_u64offset, svuint64_t,
     213  			 svprfb_gather_u64offset (p0, x0, z1, SV_PSTL2STRM),
     214  			 svprfb_gather_offset (p0, x0, z1, SV_PSTL2STRM))
     215  
     216  /*
     217  ** prfb_gather_ext_u64offset:
     218  **	prfb	pstl2strm, p0, \[x0, z1\.d, uxtw\]
     219  **	ret
     220  */
     221  TEST_PREFETCH_GATHER_SZ (prfb_gather_ext_u64offset, svuint64_t,
     222  			 svprfb_gather_u64offset (p0, x0, svextw_u64_x (p0, z1), SV_PSTL2STRM),
     223  			 svprfb_gather_offset (p0, x0, svextw_x (p0, z1), SV_PSTL2STRM))