1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 /* { dg-require-effective-target arm_dsp } */
4 
5 struct bf
6 {
7   int a : 3;
8   unsigned int b : 15;
9   int c : 3;
10 };
11 
12 long long
foo(long long a,struct bf b,struct bf c)13 foo (long long a, struct bf b, struct bf c)
14 {
15   return a + b.b * c.c;
16 }
17 
18 /* { dg-final { scan-assembler "smlalbb" } } */
19