1 /* PR target/100028 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2" } */
4
5 #define W 3
6 #define L 11
7
8 int
9 foo (int d, int s)
10 {
11 int wmask = (1 << W) - 1;
12 return (d & ~wmask) | ((s >> L) & wmask);
13 }
14
15 long long int
16 bar (long long int d, long long int s)
17 {
18 long long int wmask = (1LL << W) - 1;
19 return (d & ~wmask) | ((s >> L) & wmask);
20 }
21
22 /* { dg-final { scan-assembler-times {\tbfxil\t} 2 } } */