1 /* { dg-do compile } */
2 /* { dg-options "-O -fdump-tree-optimized-raw" } */
4 static inline unsigned deposit32(unsigned value
, int start
, int length
,
7 unsigned mask
= (~0U >> (32 - length
)) << start
;
8 return (value
& ~mask
) | ((fieldval
<< start
) & mask
);
11 unsigned foo(unsigned value
)
13 return deposit32(value
, 10, 1, 1);
16 /* { dg-final { scan-tree-dump-not "bit_and_expr" "optimized" } } */
17 /* { dg-final { scan-tree-dump-not "bit_xor_expr" "optimized" } } */
18 /* { dg-final { scan-tree-dump-not "bit_not_expr" "optimized" } } */