(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
riscv/
zbs-bset.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-march=rv64gc_zbs -mabi=lp64" } */
       3  /* { dg-skip-if "" { *-*-* } { "-O0" } } */
       4  
       5  /* bset */
       6  long
       7  sub0 (long i, long j)
       8  {
       9    return i | (1L << j);
      10  }
      11  
      12  /* bset_mask */
      13  long
      14  sub1 (long i, long j)
      15  {
      16    return i | (1L << (j & 0x3f));
      17  }
      18  
      19  /* bset_1 */
      20  long
      21  sub2 (long i)
      22  {
      23    return 1L << i;
      24  }
      25  
      26  /* bset_1_mask */
      27  long
      28  sub3 (long i)
      29  {
      30    return 1L << (i & 0x3f);
      31  }
      32  
      33  /* bseti */
      34  long
      35  sub4 (long i)
      36  {
      37    return i | (1L << 20);
      38  }
      39  
      40  /* { dg-final { scan-assembler-times "bset\t" 4 } } */
      41  /* { dg-final { scan-assembler-times "bseti\t" 1 } } */
      42  /* { dg-final { scan-assembler-not "andi" } } */