1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -fdump-rtl-combine" } */ 3 4 struct b1 { 5 char c; 6 char bg; 7 }; 8 9 struct bj1 { 10 char bk; 11 struct b1 bn[]; 12 }; 13 14 struct b2 { 15 short c; 16 char bg; 17 }; 18 19 struct bj2 { 20 short bk; 21 struct b2 bn[]; 22 }; 23 24 struct b3 { 25 int c; 26 char bg; 27 }; 28 29 struct bj3 { 30 int bk; 31 struct b3 bn[]; 32 }; 33 34 35 struct bj1 at1; 36 struct bj2 at2; 37 struct bj3 at3; 38 39 int bu; 40 void a(); 41 f()42void f() { 43 a(at1.bn[bu]); 44 a(at2.bn[bu]); 45 a(at3.bn[bu]); 46 } 47 48 /* { dg-final { scan-rtl-dump-times "\\*add_n" 2 "combine" } } */ 49