1  /* { dg-do compile } */
       2  /* { dg-options "-Os -mtune=generic" } */
       3  
       4  typedef struct {
       5    int a;
       6  } VCR;
       7  
       8  typedef struct {
       9    VCR vcr[8];
      10  } VCRC;
      11  
      12  typedef struct {
      13    char vcr;
      14  } OWN;
      15  
      16  OWN Own[16];
      17  
      18  void
      19  f (VCRC *x, OWN *own)
      20  {
      21    x[own->vcr / 8].vcr[own->vcr % 8].a--;
      22    x[own->vcr / 8].vcr[own->vcr % 8].a = x[own->vcr / 8].vcr[own->vcr % 8].a;
      23  }
      24  
      25  /* { dg-final { scan-assembler-times "idivb" 1 } } */
      26  /* { dg-final { scan-assembler-not "incl" } } */
      27  /* { dg-final { scan-assembler-not "orl" } } */
      28  /* { dg-final { scan-assembler-not "andb" } } */
      29  /* { dg-final { scan-assembler-not "jns" } } */