#define W 3 #define S 8 #define M (W << S) static inline int fun(unsigned int x, unsigned int y) { return ((x & M) | (y << S)) >> S; } int foo(unsigned int x, unsigned int y) { return fun(x, y) & W; } /* * check-name: and-or-mask3u * check-command: test-linearize -Wno-decl $file * check-known-to-fail * * check-output-ignore * check-output-pattern(1): lsr\\. * check-output-pattern(1): or\\. * check-output-pattern(1): and\\. * check-output-excludes: shl\\. */