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
f(VCRC * x,OWN * own)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" } } */
30