aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/tree-ssa/pr93435.c
blob: ca2e091ed25e15671210fcfeaba3bf64e4ba01b3 (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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
/* { dg-do compile } */
/* { dg-options "-O2" } */
/* { dg-require-effective-target size32plus } */

typedef signed char int8_T;
typedef int int32_T;

typedef struct {
  int8_T a;
} struct0_T;

typedef struct {
  struct0_T f10[4];
} struct_T;

typedef struct {
  struct_T f9[4];
} b_struct_T;

typedef struct {
  b_struct_T f8[4];
} c_struct_T;

typedef struct {
  c_struct_T f7[4];
} d_struct_T;

typedef struct {
  d_struct_T f6[4];
} e_struct_T;

typedef struct {
  e_struct_T f5[4];
} f_struct_T;

typedef struct {
  f_struct_T f4[4];
} g_struct_T;

typedef struct {
  g_struct_T f3[4];
} h_struct_T;

typedef struct {
  h_struct_T f2[4];
} i_struct_T;

typedef struct {
  i_struct_T f1[4];
} j_struct_T;

typedef struct {
  struct {
    j_struct_T ds21[4];
    i_struct_T ds20[4];
    i_struct_T r9;
  } f0;
} deep_struct_arraysStackData;

/* Function Definitions */
void deep_struct_arrays(deep_struct_arraysStackData *SD,
  int8_T in1, int8_T inCount, int8_T *out1, int8_T *out2, struct0_T out3[4])
{
  struct0_T r;
  struct_T r1;
  b_struct_T r2;
  c_struct_T r3;
  d_struct_T r4;
  e_struct_T r5;
  f_struct_T r6;
  g_struct_T r7;
  h_struct_T r8;
  int32_T count;
  int32_T i;

  /*  Check properties of input in1 */
  /*  Check properties of input inCount */
  /*  Copyright 2006 The MathWorks, Inc. */
  r.a = in1;
  r1.f10[0] = r;
  r1.f10[1] = r;
  r1.f10[2] = r;
  r1.f10[3] = r;
  r2.f9[0] = r1;
  r2.f9[1] = r1;
  r2.f9[2] = r1;
  r2.f9[3] = r1;
  r3.f8[0] = r2;
  r3.f8[1] = r2;
  r3.f8[2] = r2;
  r3.f8[3] = r2;
  r4.f7[0] = r3;
  r4.f7[1] = r3;
  r4.f7[2] = r3;
  r4.f7[3] = r3;
  r5.f6[0] = r4;
  r5.f6[1] = r4;
  r5.f6[2] = r4;
  r5.f6[3] = r4;
  r6.f5[0] = r5;
  r6.f5[1] = r5;
  r6.f5[2] = r5;
  r6.f5[3] = r5;
  r7.f4[0] = r6;
  r7.f4[1] = r6;
  r7.f4[2] = r6;
  r7.f4[3] = r6;
  r8.f3[0] = r7;
  r8.f3[1] = r7;
  r8.f3[2] = r7;
  r8.f3[3] = r7;
  SD->f0.r9.f2[0] = r8;
  SD->f0.r9.f2[1] = r8;
  SD->f0.r9.f2[2] = r8;
  SD->f0.r9.f2[3] = r8;
  SD->f0.ds20[0] = SD->f0.r9;
  SD->f0.ds20[3] = SD->f0.r9;
  count = 0;
  while (count < inCount) {
    i = in1 + SD->f0.ds20[0].f2[0].f3[0].f4[0].f5[0].f6[0].f7[0].f8[0].f9[0]
      .f10[0].a;
    if (i > 127) {
      i = 127;
    } else {
      if (i < -128) {
        i = -128;
      }
    }

    SD->f0.ds20[0].f2[0].f3[0].f4[0].f5[0].f6[0].f7[0].f8[0].f9[0].f10[0].a =
      (int8_T)i;
    i = SD->f0.ds20[3].f2[3].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].a
      + 3;
    if (i > 127) {
      i = 127;
    }

    SD->f0.ds20[3].f2[3].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].a =
      (int8_T)i;
    count++;
  }

  if (inCount > 10) {
    SD->f0.ds21[0].f1[1].f2[2].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].
      a = 14;
  } else {
    SD->f0.ds21[0].f1[1].f2[2].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].
      a = 16;
  }

  *out1 = SD->f0.ds20[0].f2[0].f3[0].f4[0].f5[0].f6[0].f7[0].f8[0].f9[0].f10[0].
    a;
  *out2 = SD->f0.ds20[3].f2[3].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].
    a;
  out3[0] = r;
  out3[1] = r;
  out3[2] = r;
  out3[3] = SD->f0.ds21[0].f1[1].f2[2].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3]
    .f10[3];
}