aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/pr86637-2.c
blob: 2f69c292f7e9d205e92f797b78cebd769e0c1dc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/* { dg-do compile } */
/* { dg-require-effective-target fgraphite } */
/* { dg-require-effective-target pthread } */
/* { dg-options "-floop-parallelize-all -fsave-optimization-record -ftree-parallelize-loops=2 -ftree-slp-vectorize" } */

#include <stdint.h>
#include <stdlib.h>

signed char qq;
int rm, mu, l9;
long long unsigned int ip;

void
fi (void)
{
}

void
il (long long unsigned int c5)
{
  int *na = &mu;

  while (l9 < 1)
    {
      if (qq < 1)
        {
          short int ds = 0;

          if ((ip - *na - ip / c5 != 0) && (*na / ((c5 + c5) && !!ip) != 0))
            __builtin_trap ();

          rm = -1 / (!!rm && !!c5);

          while (qq < 1)
            {
              ++*na;
              ++ip;
              if (*na < (int) ip)
                while (ds < 2)
                  {
                    ++qq;
                    ++ds;
                  }
            }
        }

      ++l9;
    }

  for (;;)
    {
    }
}

void
uu (short int wk)
{
  int64_t tl = ip;

  while (ip < 2)
    {
      signed char vn;

      for (vn = 1; vn != 0; ++vn)
        {
          int rh;

          if (qq < 1)
            {
              while (mu < 1)
                ip = 0;

              while (rm != 0)
                ++rm;
            }

          for (rh = 0; rh < 3; ++rh)
            {
              int ab;

              for (ab = 0; ab < 5; ++ab)
                {
                  tl -= qq;
                  wk += rh - tl;
                  ip += (ab < wk) + wk;
                }
            }
        }
    }
}

void
im (uint8_t kt)
{
  int wu = 0;

  for (;;)
    {
      ++rm;
      if (rm < 1)
        {
          short int ms = 0;

          while (kt < 1)
            {
              ms += rm < 0;

              if (wu != 0)
                for (;;)
                  {
                  }

              while (ms < 4)
                {
                  while (wu < 1)
                    wu += 2;

                  ++ms;
                }
            }

          if (ms == 0 || wu == 0)
            break;
        }
    }

  while (wu < 1)
    while (qq < 1)
      ++qq;
}