blob: 6cbbb552cd12da71febf9c870587cd36be027fc6 [file] [log] [blame]
/* Check that we do not emit & 63 via risbg for rotating. */
/* { dg-options "-O1 -m64" } */
/* { dg-final { scan-assembler-not "risbg" } } */
/* { dg-final { scan-assembler-not "nilf" } } */
long shiftl (long in, unsigned long sh)
{
sh %= 64;
return (in << sh);
}
unsigned long shiftll (unsigned long in, unsigned long sh)
{
sh %= 64;
return (in << sh);
}
long shiftr (long in, unsigned long sh)
{
sh %= 64;
return (in >> sh);
}
unsigned long shiftrl (unsigned long in, unsigned long sh)
{
sh %= 64;
return (in >> sh);
}
unsigned long rotlmod (unsigned long in, unsigned long sh)
{
sh %= 64;
return (in << sh) | (in >> (64 - sh));
}