1f08c3bdfSopenharmony_ci#define S1	2
2f08c3bdfSopenharmony_ci#define S2	5
3f08c3bdfSopenharmony_ci#define S	(S2 - S1)
4f08c3bdfSopenharmony_ci
5f08c3bdfSopenharmony_ci#define	A	(1 << S1)
6f08c3bdfSopenharmony_ci#define	B	(1 << S2)
7f08c3bdfSopenharmony_ci
8f08c3bdfSopenharmony_ciint foo(int p) { return ((p & A) ? B : 0) == ((((unsigned)p) & A) << S); }
9f08c3bdfSopenharmony_ciint bar(int p) { return ((p & B) ? A : 0) == ((((unsigned)p) & B) >> S); }
10f08c3bdfSopenharmony_ci
11f08c3bdfSopenharmony_ci/*
12f08c3bdfSopenharmony_ci * check-name: select-and-shift
13f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file
14f08c3bdfSopenharmony_ci *
15f08c3bdfSopenharmony_ci * check-output-ignore
16f08c3bdfSopenharmony_ci * check-output-returns: 1
17f08c3bdfSopenharmony_ci */
18