(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
pr93435.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2" } */
       3  
       4  typedef signed char int8_T;
       5  typedef int int32_T;
       6  
       7  typedef struct {
       8    int8_T a;
       9  } struct0_T;
      10  
      11  typedef struct {
      12    struct0_T f10[4];
      13  } struct_T;
      14  
      15  typedef struct {
      16    struct_T f9[4];
      17  } b_struct_T;
      18  
      19  typedef struct {
      20    b_struct_T f8[4];
      21  } c_struct_T;
      22  
      23  typedef struct {
      24    c_struct_T f7[4];
      25  } d_struct_T;
      26  
      27  typedef struct {
      28    d_struct_T f6[4];
      29  } e_struct_T;
      30  
      31  typedef struct {
      32    e_struct_T f5[4];
      33  } f_struct_T;
      34  
      35  typedef struct {
      36    f_struct_T f4[4];
      37  } g_struct_T;
      38  
      39  typedef struct {
      40    g_struct_T f3[4];
      41  } h_struct_T;
      42  
      43  typedef struct {
      44    h_struct_T f2[4];
      45  } i_struct_T;
      46  
      47  typedef struct {
      48    i_struct_T f1[4];
      49  } j_struct_T;
      50  
      51  typedef struct {
      52    struct {
      53      j_struct_T ds21[4];
      54      i_struct_T ds20[4];
      55      i_struct_T r9;
      56    } f0;
      57  } deep_struct_arraysStackData;
      58  
      59  /* Function Definitions */
      60  void deep_struct_arrays(deep_struct_arraysStackData *SD,
      61    int8_T in1, int8_T inCount, int8_T *out1, int8_T *out2, struct0_T out3[4])
      62  {
      63    struct0_T r;
      64    struct_T r1;
      65    b_struct_T r2;
      66    c_struct_T r3;
      67    d_struct_T r4;
      68    e_struct_T r5;
      69    f_struct_T r6;
      70    g_struct_T r7;
      71    h_struct_T r8;
      72    int32_T count;
      73    int32_T i;
      74  
      75    /*  Check properties of input in1 */
      76    /*  Check properties of input inCount */
      77    /*  Copyright 2006 The MathWorks, Inc. */
      78    r.a = in1;
      79    r1.f10[0] = r;
      80    r1.f10[1] = r;
      81    r1.f10[2] = r;
      82    r1.f10[3] = r;
      83    r2.f9[0] = r1;
      84    r2.f9[1] = r1;
      85    r2.f9[2] = r1;
      86    r2.f9[3] = r1;
      87    r3.f8[0] = r2;
      88    r3.f8[1] = r2;
      89    r3.f8[2] = r2;
      90    r3.f8[3] = r2;
      91    r4.f7[0] = r3;
      92    r4.f7[1] = r3;
      93    r4.f7[2] = r3;
      94    r4.f7[3] = r3;
      95    r5.f6[0] = r4;
      96    r5.f6[1] = r4;
      97    r5.f6[2] = r4;
      98    r5.f6[3] = r4;
      99    r6.f5[0] = r5;
     100    r6.f5[1] = r5;
     101    r6.f5[2] = r5;
     102    r6.f5[3] = r5;
     103    r7.f4[0] = r6;
     104    r7.f4[1] = r6;
     105    r7.f4[2] = r6;
     106    r7.f4[3] = r6;
     107    r8.f3[0] = r7;
     108    r8.f3[1] = r7;
     109    r8.f3[2] = r7;
     110    r8.f3[3] = r7;
     111    SD->f0.r9.f2[0] = r8;
     112    SD->f0.r9.f2[1] = r8;
     113    SD->f0.r9.f2[2] = r8;
     114    SD->f0.r9.f2[3] = r8;
     115    SD->f0.ds20[0] = SD->f0.r9;
     116    SD->f0.ds20[3] = SD->f0.r9;
     117    count = 0;
     118    while (count < inCount) {
     119      i = in1 + SD->f0.ds20[0].f2[0].f3[0].f4[0].f5[0].f6[0].f7[0].f8[0].f9[0]
     120        .f10[0].a;
     121      if (i > 127) {
     122        i = 127;
     123      } else {
     124        if (i < -128) {
     125          i = -128;
     126        }
     127      }
     128  
     129      SD->f0.ds20[0].f2[0].f3[0].f4[0].f5[0].f6[0].f7[0].f8[0].f9[0].f10[0].a =
     130        (int8_T)i;
     131      i = SD->f0.ds20[3].f2[3].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].a
     132        + 3;
     133      if (i > 127) {
     134        i = 127;
     135      }
     136  
     137      SD->f0.ds20[3].f2[3].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].a =
     138        (int8_T)i;
     139      count++;
     140    }
     141  
     142    if (inCount > 10) {
     143      SD->f0.ds21[0].f1[1].f2[2].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].
     144        a = 14;
     145    } else {
     146      SD->f0.ds21[0].f1[1].f2[2].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].
     147        a = 16;
     148    }
     149  
     150    *out1 = SD->f0.ds20[0].f2[0].f3[0].f4[0].f5[0].f6[0].f7[0].f8[0].f9[0].f10[0].
     151      a;
     152    *out2 = SD->f0.ds20[3].f2[3].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].
     153      a;
     154    out3[0] = r;
     155    out3[1] = r;
     156    out3[2] = r;
     157    out3[3] = SD->f0.ds21[0].f1[1].f2[2].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3]
     158      .f10[3];
     159  }