summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr69097-2.c
blob: bf7ac0eb0795314b4e766e6774b58317a96878f0 (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
131
132
133
134
135
136
137
138
/* PR tree-optimization/69097 */
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
/* { dg-final { scan-tree-dump-times "-y" 17 "optimized" } } */

int
f1 (int x, int y)
{
  if (x == -__INT_MAX__)
    __builtin_unreachable ();
  return x % -y;
}

int
f2 (int x, int y)
{
  if (x >= -__INT_MAX__ + 1)
    __builtin_unreachable ();
  return x % -y;
}

int
f3 (int x, int y)
{
  if (y == -2)
    __builtin_unreachable ();
  return x % -y;
}

int
f4 (int x, int y)
{
  if (y < -1)
    __builtin_unreachable ();
  return x % -y;
}

int
f5 (int x, int y)
{
  if (y >= 0)
    __builtin_unreachable ();
  return x % -y;
}

int
f6 (int x, int y)
{
  if (y < -1 || y > 24)
    __builtin_unreachable ();
  return x % -y;
}

int
f7 (int x, int y)
{
  if (y <= -17 || y >= 0)
    __builtin_unreachable ();
  return x % -y;
}

int
f8 (int x, int y)
{
  if (y >= -13 && y <= -2)
    __builtin_unreachable ();
  return x % -y;
}

int
f9 (int x, int y)
{
  return x % -y;
}

int
f10 (int x, int y)
{
  if (x != -__INT_MAX__)
    return x % -y;
  return 34;
}

int
f11 (int x, int y)
{
  if (x < -__INT_MAX__ + 2)
    return x % -y;
  return 34;
}

int
f12 (int x, int y)
{
  if (y != -2)
    return x % -y;
  return 34;
}

int
f13 (int x, int y)
{
  if (y >= -1)
    return x % -y;
  return 34;
}

int
f14 (int x, int y)
{
  if (y < 0)
    return x % -y;
  return 34;
}

int
f15 (int x, int y)
{
  if (y >= -1 && y <= 24)
    return x % -y;
  return 34;
}

int
f16 (int x, int y)
{
  if (y > -17 && y < 0)
    return x % -y;
  return 34;
}

int
f17 (int x, int y)
{
  if (y < -13 || y > -4)
    return x % -y;
  return 34;
}