(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
sh/
pr64660-0.h
       1  /* Check that the appropriate atomic insns are used if the result values
       2     are unused.  */
       3  
       4  #define concat_1(x, y) x ## y
       5  #define concat(x, y) concat_1 (x, y)
       6  #define makefuncname(name) concat (concat (test_, __LINE__), name)
       7  
       8  #define emitfuncs(name,val)\
       9    void makefuncname (_0) (char* mem)\
      10    {\
      11      name (mem, val, __ATOMIC_ACQ_REL);\
      12    }\
      13    void makefuncname (_1) (short* mem)\
      14    {\
      15      name (mem, val, __ATOMIC_ACQ_REL);\
      16    }\
      17    void makefuncname (_2) (int* mem)\
      18    {\
      19      name (mem, val, __ATOMIC_ACQ_REL);\
      20    }\
      21  
      22  emitfuncs (__atomic_add_fetch, 1)
      23  emitfuncs (__atomic_fetch_add, 1)
      24  
      25  emitfuncs (__atomic_sub_fetch, 1)
      26  emitfuncs (__atomic_fetch_sub, 1)
      27  
      28  emitfuncs (__atomic_and_fetch, 1)
      29  emitfuncs (__atomic_fetch_and, 1)
      30  
      31  emitfuncs (__atomic_or_fetch, 1)
      32  emitfuncs (__atomic_fetch_or, 1)
      33  
      34  emitfuncs (__atomic_xor_fetch, 1)
      35  emitfuncs (__atomic_fetch_xor, 1)
      36  
      37  emitfuncs (__atomic_nand_fetch, 1)
      38  emitfuncs (__atomic_fetch_nand, 1)
      39  
      40  emitfuncs (__atomic_xor_fetch, -1)
      41  emitfuncs (__atomic_fetch_xor, -1)
      42  
      43  emitfuncs (__atomic_nand_fetch, -1)
      44  emitfuncs (__atomic_fetch_nand, -1)