(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
nios2/
r2-atomic.c
       1  /* { dg-do assemble } */
       2  /* { dg-options "-O -march=r2" } */
       3  
       4  int test_stex (unsigned char* p1, unsigned char* p2)
       5  {
       6    int a, b, c, d;
       7    a = __builtin_stex (p1, *p2);
       8    b = __builtin_stex (p2, 0);
       9    c = __builtin_stex (p2 + 1, 0x80);
      10    d = __builtin_stex (p2 + 2, 0x7f);
      11  
      12    return a + b + c + d;
      13  }
      14  
      15  int test_stsex (unsigned short* p1, unsigned short* p2)
      16  {
      17    int a, b, c, d;
      18    
      19    a = __builtin_stsex (p1, *p2);
      20    b = __builtin_stsex (p2, 0);
      21    c = __builtin_stsex (p2 + 1, 0x8000);
      22    d = __builtin_stsex (p2 + 2, 0x7fff);
      23  
      24    return a + b + c + d;
      25  }
      26  
      27  int test_ldex (unsigned char* p1, unsigned char* p2)
      28  {
      29    int a, b, c, d;
      30    
      31    a = __builtin_ldex (p1);
      32    b = __builtin_ldex (p2);
      33    c = __builtin_ldex (p2 + 1);
      34    d = __builtin_ldex (p2 + 2);
      35  
      36    return a + b + c + d;
      37  }
      38  
      39  int test_ldsex (unsigned char* p1, unsigned char* p2)
      40  {
      41    int a, b, c, d;
      42    
      43    a = __builtin_ldsex (p1);
      44    b = __builtin_ldsex (p2);
      45    c = __builtin_ldsex (p2 + 1);
      46    d = __builtin_ldsex (p2 + 2);
      47  
      48    return a + b + c + d;
      49  }