/* 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)); }