1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 struct Q
4 {
5   long x:20;
6   long y:4;
7   long z:8;
8 }b;
9 /* This should generate a single rl[wd]imi. */
rotins(unsigned int x)10 void rotins (unsigned int x)
11 {
12   b.y = (x<<12) | (x>>20);
13 }
14 
15 /* { dg-final { scan-assembler-not {\mrlwinm} } } */
16 /* { dg-final { scan-assembler-not {\mrldic} } } */
17 /* { dg-final { scan-assembler-not {\mrot[lr]} } } */
18 /* { dg-final { scan-assembler-not {\ms[lr][wd]} } } */
19 /* { dg-final { scan-assembler-times {\mrl[wd]imi} 1 } } */
20