* tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr78413.c
blob049ecd79d4c0ba7b1de9dee1087395240128ec81
1 /* PR78413. These previously failed in tree if-conversion due to a loop
2 latch with multiple predecessors that the code did not anticipate. */
3 /* { dg-do compile } */
4 /* { dg-options "-O3 -ffast-math -fno-strict-aliasing" } */
6 extern long long int llrint(double x);
7 int a;
8 double b;
9 __attribute__((cold)) void decode_init() {
10 int c, d = 0;
11 for (; d < 12; d++) {
12 if (d)
13 b = 0;
14 c = 0;
15 for (; c < 6; c++)
16 a = b ? llrint(b) : 0;
20 struct S {
21 _Bool bo;
23 int a, bb, c, d;
24 void fn1() {
27 do {
28 struct S *e = (struct S *)1;
30 bb = a / (e->bo ? 2 : 1);
31 while (bb);
32 } while (0);
33 while (d);
34 while (c);