(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
nvptx/
rotate.c
       1  /* { dg-do assemble } */
       2  /* { dg-options "-O2 -save-temps -misa=sm_35" } */
       3  
       4  #define MASK 0x1f
       5  
       6  unsigned int
       7  rotl (unsigned int val, unsigned int cnt) {
       8    cnt &= MASK;
       9    return (val << cnt) | (val >> (-cnt & MASK));
      10  }
      11  
      12  unsigned int
      13  rotr (unsigned int val, unsigned int cnt) {
      14    cnt &= MASK;
      15    return (val >> cnt) | (val << (-cnt & MASK));
      16  }
      17  
      18  /* { dg-final { scan-assembler-times "shf.l.wrap.b32" 1 } } */
      19  /* { dg-final { scan-assembler-times "shf.r.wrap.b32" 1 } } */
      20  /* { dg-final { scan-assembler-not "and.b32" } } */