https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89769
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- --- pr89769.c.126t.pre_ 2019-03-19 07:17:59.000000000 -0400 +++ pr89769.c.126t.pre 2019-03-19 07:18:28.000000000 -0400 @@ -120,7 +120,7 @@ main () goto <bb 4>; <bb 4>: - pretmp_5 = bid_Kx192[1].w[1]; + pretmp_5 = bid_Kx192[1]{lb: 0 sz: 16}.w[1]; <bb 5>: # i_24 = PHI <0(4), i_14(5)> is the first difference and that difference is there up to *.optimized. sizeof(bid_Kx192) is 768 bytes, so the aligned(16) attribute looks bogus, so maybe just invalid testcase? If one uses typedef struct __attribute__((aligned(16))) { unsigned long long w[3]; } UINT192; where the type then has 32 bytes in size, 16 byte alignment, rather than 24 bytes in size, then it works fine.