1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" { target { ! ilp32 } } } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** ldff1sb_gather_s64_tied1:
       7  **	ldff1sb	z0\.d, p0/z, \[z0\.d\]
       8  **	ret
       9  */
      10  TEST_LOAD_GATHER_ZS (ldff1sb_gather_s64_tied1, svint64_t, svuint64_t,
      11  		     z0_res = svldff1sb_gather_u64base_s64 (p0, z0),
      12  		     z0_res = svldff1sb_gather_s64 (p0, z0))
      13  
      14  /*
      15  ** ldff1sb_gather_s64_untied:
      16  **	ldff1sb	z0\.d, p0/z, \[z1\.d\]
      17  **	ret
      18  */
      19  TEST_LOAD_GATHER_ZS (ldff1sb_gather_s64_untied, svint64_t, svuint64_t,
      20  		     z0_res = svldff1sb_gather_u64base_s64 (p0, z1),
      21  		     z0_res = svldff1sb_gather_s64 (p0, z1))
      22  
      23  /*
      24  ** ldff1sb_gather_x0_s64_offset:
      25  **	ldff1sb	z0\.d, p0/z, \[x0, z0\.d\]
      26  **	ret
      27  */
      28  TEST_LOAD_GATHER_ZS (ldff1sb_gather_x0_s64_offset, svint64_t, svuint64_t,
      29  		     z0_res = svldff1sb_gather_u64base_offset_s64 (p0, z0, x0),
      30  		     z0_res = svldff1sb_gather_offset_s64 (p0, z0, x0))
      31  
      32  /*
      33  ** ldff1sb_gather_m1_s64_offset:
      34  **	mov	(x[0-9]+), #?-1
      35  **	ldff1sb	z0\.d, p0/z, \[\1, z0\.d\]
      36  **	ret
      37  */
      38  TEST_LOAD_GATHER_ZS (ldff1sb_gather_m1_s64_offset, svint64_t, svuint64_t,
      39  		     z0_res = svldff1sb_gather_u64base_offset_s64 (p0, z0, -1),
      40  		     z0_res = svldff1sb_gather_offset_s64 (p0, z0, -1))
      41  
      42  /*
      43  ** ldff1sb_gather_0_s64_offset:
      44  **	ldff1sb	z0\.d, p0/z, \[z0\.d\]
      45  **	ret
      46  */
      47  TEST_LOAD_GATHER_ZS (ldff1sb_gather_0_s64_offset, svint64_t, svuint64_t,
      48  		     z0_res = svldff1sb_gather_u64base_offset_s64 (p0, z0, 0),
      49  		     z0_res = svldff1sb_gather_offset_s64 (p0, z0, 0))
      50  
      51  /*
      52  ** ldff1sb_gather_5_s64_offset:
      53  **	ldff1sb	z0\.d, p0/z, \[z0\.d, #5\]
      54  **	ret
      55  */
      56  TEST_LOAD_GATHER_ZS (ldff1sb_gather_5_s64_offset, svint64_t, svuint64_t,
      57  		     z0_res = svldff1sb_gather_u64base_offset_s64 (p0, z0, 5),
      58  		     z0_res = svldff1sb_gather_offset_s64 (p0, z0, 5))
      59  
      60  /*
      61  ** ldff1sb_gather_31_s64_offset:
      62  **	ldff1sb	z0\.d, p0/z, \[z0\.d, #31\]
      63  **	ret
      64  */
      65  TEST_LOAD_GATHER_ZS (ldff1sb_gather_31_s64_offset, svint64_t, svuint64_t,
      66  		     z0_res = svldff1sb_gather_u64base_offset_s64 (p0, z0, 31),
      67  		     z0_res = svldff1sb_gather_offset_s64 (p0, z0, 31))
      68  
      69  /*
      70  ** ldff1sb_gather_32_s64_offset:
      71  **	mov	(x[0-9]+), #?32
      72  **	ldff1sb	z0\.d, p0/z, \[\1, z0\.d\]
      73  **	ret
      74  */
      75  TEST_LOAD_GATHER_ZS (ldff1sb_gather_32_s64_offset, svint64_t, svuint64_t,
      76  		     z0_res = svldff1sb_gather_u64base_offset_s64 (p0, z0, 32),
      77  		     z0_res = svldff1sb_gather_offset_s64 (p0, z0, 32))
      78  
      79  /*
      80  ** ldff1sb_gather_x0_s64_s64offset:
      81  **	ldff1sb	z0\.d, p0/z, \[x0, z0\.d\]
      82  **	ret
      83  */
      84  TEST_LOAD_GATHER_SZ (ldff1sb_gather_x0_s64_s64offset, svint64_t, int8_t, svint64_t,
      85  		     z0_res = svldff1sb_gather_s64offset_s64 (p0, x0, z0),
      86  		     z0_res = svldff1sb_gather_offset_s64 (p0, x0, z0))
      87  
      88  /*
      89  ** ldff1sb_gather_tied1_s64_s64offset:
      90  **	ldff1sb	z0\.d, p0/z, \[x0, z0\.d\]
      91  **	ret
      92  */
      93  TEST_LOAD_GATHER_SZ (ldff1sb_gather_tied1_s64_s64offset, svint64_t, int8_t, svint64_t,
      94  		     z0_res = svldff1sb_gather_s64offset_s64 (p0, x0, z0),
      95  		     z0_res = svldff1sb_gather_offset_s64 (p0, x0, z0))
      96  
      97  /*
      98  ** ldff1sb_gather_untied_s64_s64offset:
      99  **	ldff1sb	z0\.d, p0/z, \[x0, z1\.d\]
     100  **	ret
     101  */
     102  TEST_LOAD_GATHER_SZ (ldff1sb_gather_untied_s64_s64offset, svint64_t, int8_t, svint64_t,
     103  		     z0_res = svldff1sb_gather_s64offset_s64 (p0, x0, z1),
     104  		     z0_res = svldff1sb_gather_offset_s64 (p0, x0, z1))
     105  
     106  /*
     107  ** ldff1sb_gather_ext_s64_s64offset:
     108  **	ldff1sb	z0\.d, p0/z, \[x0, z1\.d, sxtw\]
     109  **	ret
     110  */
     111  TEST_LOAD_GATHER_SZ (ldff1sb_gather_ext_s64_s64offset, svint64_t, int8_t, svint64_t,
     112  		     z0_res = svldff1sb_gather_s64offset_s64 (p0, x0, svextw_s64_x (p0, z1)),
     113  		     z0_res = svldff1sb_gather_offset_s64 (p0, x0, svextw_x (p0, z1)))
     114  
     115  /*
     116  ** ldff1sb_gather_x0_s64_u64offset:
     117  **	ldff1sb	z0\.d, p0/z, \[x0, z0\.d\]
     118  **	ret
     119  */
     120  TEST_LOAD_GATHER_SZ (ldff1sb_gather_x0_s64_u64offset, svint64_t, int8_t, svuint64_t,
     121  		     z0_res = svldff1sb_gather_u64offset_s64 (p0, x0, z0),
     122  		     z0_res = svldff1sb_gather_offset_s64 (p0, x0, z0))
     123  
     124  /*
     125  ** ldff1sb_gather_tied1_s64_u64offset:
     126  **	ldff1sb	z0\.d, p0/z, \[x0, z0\.d\]
     127  **	ret
     128  */
     129  TEST_LOAD_GATHER_SZ (ldff1sb_gather_tied1_s64_u64offset, svint64_t, int8_t, svuint64_t,
     130  		     z0_res = svldff1sb_gather_u64offset_s64 (p0, x0, z0),
     131  		     z0_res = svldff1sb_gather_offset_s64 (p0, x0, z0))
     132  
     133  /*
     134  ** ldff1sb_gather_untied_s64_u64offset:
     135  **	ldff1sb	z0\.d, p0/z, \[x0, z1\.d\]
     136  **	ret
     137  */
     138  TEST_LOAD_GATHER_SZ (ldff1sb_gather_untied_s64_u64offset, svint64_t, int8_t, svuint64_t,
     139  		     z0_res = svldff1sb_gather_u64offset_s64 (p0, x0, z1),
     140  		     z0_res = svldff1sb_gather_offset_s64 (p0, x0, z1))
     141  
     142  /*
     143  ** ldff1sb_gather_ext_s64_u64offset:
     144  **	ldff1sb	z0\.d, p0/z, \[x0, z1\.d, uxtw\]
     145  **	ret
     146  */
     147  TEST_LOAD_GATHER_SZ (ldff1sb_gather_ext_s64_u64offset, svint64_t, int8_t, svuint64_t,
     148  		     z0_res = svldff1sb_gather_u64offset_s64 (p0, x0, svextw_u64_x (p0, z1)),
     149  		     z0_res = svldff1sb_gather_offset_s64 (p0, x0, svextw_x (p0, z1)))