(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr84431.c
       1  /* PR target/84431 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2" } */
       4  
       5  #ifdef __SIZEOF_INT128__
       6  typedef unsigned __int128 U;
       7  typedef signed __int128 S;
       8  # define M 63
       9  #else
      10  typedef unsigned long long U;
      11  typedef signed long long S;
      12  # define M 31
      13  #endif
      14  
      15  S f1 (S a, int s) { return a >> (s & M); }
      16  U f2 (U a, int s) { return a >> (s & M); }
      17  U f3 (U a, int s) { return a << (s & M); }
      18  
      19  /* { dg-final { scan-assembler-not "and" } } */