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
      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" } } */