/* { dg-do compile } */
/* { dg-options "-march=rv64gc -mabi=lp64 -O" } */

/* Test for lshrsi3_zero_extend_3+1 pattern that uses p2m1_shift_operand.  */
unsigned int
sub1 (unsigned int i)
{
  return (i << 1) >> 1;
}

unsigned int
sub2 (unsigned int i)
{
  return (i << 20) >> 20;
}

unsigned long
sub3 (unsigned long i)
{
  return (i << 1) >> 1;
}

unsigned long
sub4 (unsigned long i)
{
  return (i << 52) >> 52;
}

unsigned int
sub5 (unsigned int i)
{
  unsigned int j;
  j = i >> 24;
  j = j * (1 << 24);
  j = i - j;
  return j;
}
/* { dg-final { scan-assembler-times "slli" 5 } } */
/* { dg-final { scan-assembler-times "srli" 5 } } */
/* { dg-final { scan-assembler-times "slliw" 1 } } */
/* { dg-final { scan-assembler-times "srliw" 1 } } */
