blob: a52dea490e554ddc885d73c49cfc73836defa87e [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O -fdump-tree-optimized-raw" } */
static inline unsigned deposit32(unsigned value, int start, int length,
unsigned fieldval)
{
unsigned mask = (~0U >> (32 - length)) << start;
return (value & ~mask) | ((fieldval << start) & mask);
}
unsigned foo(unsigned value)
{
return deposit32(value, 10, 1, 1);
}
/* { dg-final { scan-tree-dump-not "bit_and_expr" "optimized" } } */
/* { dg-final { scan-tree-dump-not "bit_xor_expr" "optimized" } } */
/* { dg-final { scan-tree-dump-not "bit_not_expr" "optimized" } } */