(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
riscv/
xtheadbb-srri.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-march=rv32gc_xtheadbb" { target { rv32 } } } */
       3  /* { dg-options "-march=rv64gc_xtheadbb" { target { rv64 } } } */
       4  /* { dg-skip-if "" { *-*-* } { "-O0" } } */
       5  
       6  unsigned long
       7  foo1 (unsigned long rs1)
       8  {
       9      unsigned sz = sizeof(unsigned long) * 8;
      10      unsigned shamt = sz - 11;
      11      return (rs1 << shamt) | (rs1 >> (sz - shamt));
      12  }
      13  
      14  unsigned int
      15  foo2 (unsigned int rs1)
      16  {
      17      unsigned sz = sizeof(unsigned int) * 8;
      18      unsigned shamt = sz - 11;
      19      return (rs1 << shamt) | (rs1 >> (sz - shamt));
      20  }
      21  
      22  /* { dg-final { scan-assembler-times "th.srri\t" 2 { target { rv32 } } } } */
      23  
      24  /* { dg-final { scan-assembler-times "th.srri\t" 1 { target { rv64 } } } } */
      25  /* { dg-final { scan-assembler-times "th.srriw\t" 1 { target { rv64 } } } } */