(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
ldapr-sext.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -std=c99" } */
       3  /* { dg-final { check-function-bodies "**" "" "" } } */
       4  #include <stdatomic.h>
       5  
       6  #pragma GCC target "arch=armv8.4-a"
       7  
       8  atomic_ullong u64;
       9  atomic_llong s64;
      10  atomic_uint u32;
      11  atomic_int s32;
      12  atomic_ushort u16;
      13  atomic_short s16;
      14  atomic_uchar u8;
      15  atomic_schar s8;
      16  
      17  #define TEST(name, ldsize, rettype)				\
      18  rettype								\
      19  test_##name (void)						\
      20  {								\
      21    return atomic_load_explicit (&ldsize, memory_order_acquire);	\
      22  }
      23  
      24  /*
      25  **test_s8_s64:
      26  **...
      27  **	ldapursb	x0, \[x[0-9]+\]
      28  **	ret
      29  */
      30  
      31  TEST(s8_s64, s8, long long)
      32  
      33  /*
      34  **test_s16_s64:
      35  **...
      36  **	ldapursh	x0, \[x[0-9]+\]
      37  **	ret
      38  */
      39  
      40  TEST(s16_s64, s16, long long)
      41  
      42  /*
      43  **test_s32_s64:
      44  **...
      45  **	ldapursw	x0, \[x[0-9]+\]
      46  **	ret
      47  */
      48  
      49  TEST(s32_s64, s32, long long)
      50  
      51  /*
      52  **test_s8_s32:
      53  **...
      54  **	ldapursb	w0, \[x[0-9]+\]
      55  **	ret
      56  */
      57  
      58  TEST(s8_s32, s8, int)
      59  
      60  /*
      61  **test_s16_s32:
      62  **...
      63  **	ldapursh	w0, \[x[0-9]+\]
      64  **	ret
      65  */
      66  
      67  TEST(s16_s32, s16, int)