1*c85f09ccSJohn Levon #define W	3
2*c85f09ccSJohn Levon #define	S	8
3*c85f09ccSJohn Levon #define M	(W << S)
4*c85f09ccSJohn Levon 
fun(unsigned int x,unsigned int y)5*c85f09ccSJohn Levon static inline int fun(unsigned int x, unsigned int y)
6*c85f09ccSJohn Levon {
7*c85f09ccSJohn Levon 	return ((x & W) | (y >> S)) << S;
8*c85f09ccSJohn Levon }
9*c85f09ccSJohn Levon 
foo(unsigned int x,unsigned int y)10*c85f09ccSJohn Levon int foo(unsigned int x, unsigned int y)
11*c85f09ccSJohn Levon {
12*c85f09ccSJohn Levon 	return fun(x, y) & M;
13*c85f09ccSJohn Levon }
14*c85f09ccSJohn Levon 
15*c85f09ccSJohn Levon /*
16*c85f09ccSJohn Levon  * check-name: and-or-mask4
17*c85f09ccSJohn Levon  * check-command: test-linearize -Wno-decl $file
18*c85f09ccSJohn Levon  * check-known-to-fail
19*c85f09ccSJohn Levon  *
20*c85f09ccSJohn Levon  * check-output-ignore
21*c85f09ccSJohn Levon  * check-output-pattern(1): shl\\.
22*c85f09ccSJohn Levon  * check-output-pattern(1): or\\.
23*c85f09ccSJohn Levon  * check-output-pattern(1): and\\.
24*c85f09ccSJohn Levon  * check-output-excludes: lsr\\.
25*c85f09ccSJohn Levon  */
26