| /* { dg-do run } */ | 
 | /* { dg-options "-O2" } */ | 
 |  | 
 | char a[] = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23 + 1 }; | 
 | char b[] = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1 }; | 
 | char c[] = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2 }; | 
 | char d[] = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3 }; | 
 | char e[] = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3 }; | 
 | struct A { char a[64]; int b; } f = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23 + 1, | 
 |   101 }; | 
 | struct A g = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   101 }; | 
 | struct A h = { | 
 | { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23 }, | 
 |   101 }; | 
 | struct B { char a[65]; int b; } k = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2 }; | 
 | struct C { char a[66]; int b; } l = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3 }; | 
 | struct D { char a[67]; int b; } m = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4 }; | 
 | struct E { char a[227]; int b; } n = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4 }; | 
 | char o[] = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, (char) -3, 4 }; | 
 | char p[] = { | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, | 
 |   109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, | 
 |   1, 2, 3 + 1, 5 }; | 
 |  | 
 | int | 
 | main () | 
 | { | 
 |   if (sizeof (a) != 64 | 
 |       || sizeof (b) != 65 | 
 |       || sizeof (c) != 66 | 
 |       || sizeof (d) != 67 | 
 |       || sizeof (e) != 227 | 
 |       || sizeof (o) != 228 | 
 |       || sizeof (p) != 228) | 
 |     __builtin_abort (); | 
 |   for (int i = 0; i < 32; ++i) | 
 |     { | 
 |       int j; | 
 |       if (i < 14) | 
 | 	j = i + 1; | 
 |       else if (i & 1) | 
 | 	j = 15 + (i - 15) / 2; | 
 |       else | 
 | 	j = 110 - (i - 14) / 2; | 
 |       if (a[i] != j | 
 | 	  || (i != 31 && a[i + 32] != j) | 
 | 	  || b[i] != j | 
 | 	  || b[i + 32] != j | 
 | 	  || c[i] != j | 
 | 	  || c[i + 32] != j | 
 | 	  || d[i] != j | 
 | 	  || d[i + 32] != j | 
 | 	  || e[i] != j | 
 | 	  || e[i + 32] != j | 
 | 	  || e[i + 64] != j | 
 | 	  || e[i + 96] != j | 
 | 	  || e[i + 128] != j | 
 | 	  || e[i + 160] != j | 
 | 	  || e[i + 192] != j | 
 | 	  || f.a[i] != j | 
 | 	  || (i != 31 && f.a[i + 32] != j) | 
 | 	  || g.a[i] != j | 
 | 	  || g.a[i + 32] != j | 
 | 	  || h.a[i] != j | 
 | 	  || h.a[i + 32] != j | 
 | 	  || k.a[i] != j | 
 | 	  || k.a[i + 32] != j | 
 | 	  || l.a[i] != j | 
 | 	  || l.a[i + 32] != j | 
 | 	  || m.a[i] != j | 
 | 	  || m.a[i + 32] != j | 
 | 	  || n.a[i] != j | 
 | 	  || n.a[i + 32] != j | 
 | 	  || n.a[i + 64] != j | 
 | 	  || n.a[i + 96] != j | 
 | 	  || n.a[i + 128] != j | 
 | 	  || n.a[i + 160] != j | 
 | 	  || n.a[i + 192] != j) | 
 | 	__builtin_abort (); | 
 |     } | 
 |   if (a[63] != 24 | 
 |       || b[64] != 1 | 
 |       || c[64] != 1 | 
 |       || c[65] != 2 | 
 |       || d[64] != 1 | 
 |       || d[65] != 2 | 
 |       || d[66] != 3 | 
 |       || e[224] != 1 | 
 |       || e[225] != 2 | 
 |       || e[226] != 3 | 
 |       || f.a[63] != 24 | 
 |       || f.b != 101 | 
 |       || g.b != 101 | 
 |       || h.b != 101 | 
 |       || k.a[64] != 1 | 
 |       || k.b != 2 | 
 |       || l.a[64] != 1 | 
 |       || l.a[65] != 2 | 
 |       || l.b != 3 | 
 |       || m.a[64] != 1 | 
 |       || m.a[65] != 2 | 
 |       || m.a[66] != 3 | 
 |       || m.b != 4 | 
 |       || n.a[224] != 1 | 
 |       || n.a[225] != 2 | 
 |       || n.a[226] != 3 | 
 |       || n.b != 4 | 
 |       || __builtin_memcmp (e, o, 226) | 
 |       || o[226] != (char) -3 | 
 |       || o[227] != 4 | 
 |       || __builtin_memcmp (e, p, 226) | 
 |       || p[226] != 4 | 
 |       || p[227] != 5) | 
 |     __builtin_abort (); | 
 | } |