(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
nvptx/
atomic-bit-bucket-dest.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -misa=sm_35" } */
       3  
       4  enum memmodel
       5  {
       6    MEMMODEL_RELAXED = 0
       7  };
       8  
       9  unsigned long long int *p64;
      10  unsigned long long int v64;
      11  
      12  int
      13  main()
      14  {
      15    __atomic_fetch_add (p64, v64, MEMMODEL_RELAXED);
      16    __atomic_fetch_and (p64, v64, MEMMODEL_RELAXED);
      17    __atomic_fetch_or (p64, v64, MEMMODEL_RELAXED);
      18    __atomic_fetch_xor (p64, v64, MEMMODEL_RELAXED);
      19    __atomic_exchange_n (p64, v64, MEMMODEL_RELAXED);
      20  
      21    {
      22      unsigned long long expected = v64;
      23      __atomic_compare_exchange_n (p64, &expected, 0, 0, MEMMODEL_RELAXED,
      24  				 MEMMODEL_RELAXED);
      25    }
      26  
      27    return 0;
      28  }
      29  
      30  /* { dg-final { scan-assembler-times "atom.add.u64\[\t \]+_," 1 } } */
      31  /* { dg-final { scan-assembler-times "atom.and.b64\[\t \]+_," 1 } } */
      32  /* { dg-final { scan-assembler-times "atom.or.b64\[\t \]+_," 1 } } */
      33  /* { dg-final { scan-assembler-times "atom.xor.b64\[\t \]+_," 1 } } */
      34  /* { dg-final { scan-assembler-times "atom.exch.b64\[\t \]+_," 1 } } */
      35  /* { dg-final { scan-assembler-times "atom.cas.b64\[\t \]+_," 1 } } */