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)19f (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