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