// ************************************************************************** //
//                                                                            //
//    eses                   eses                                             //
//   eses                     eses                                            //
//  eses    eseses  esesese    eses   Embedded Systems Group                  //
//  ese    ese  ese ese         ese                                           //
//  ese    eseseses eseseses    ese   Department of Computer Science          //
//  eses   eses          ese   eses                                           //
//   eses   eseses  eseseses  eses    University of Kaiserslautern            //
//    eses                   eses                                             //
//                                                                            //
// ************************************************************************** //


nat x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31;
nat z;

thread BinaryTree_32 {
    nat y0,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31;
    y0 = x0;
    y1 = x1;
    y2 = x2;
    y3 = x3;
    y4 = x4;
    y5 = x5;
    y6 = x6;
    y7 = x7;
    y8 = x8;
    y9 = x9;
    y10 = x10;
    y11 = x11;
    y12 = x12;
    y13 = x13;
    y14 = x14;
    y15 = x15;
    y16 = x16;
    y17 = x17;
    y18 = x18;
    y19 = x19;
    y20 = x20;
    y21 = x21;
    y22 = x22;
    y23 = x23;
    y24 = x24;
    y25 = x25;
    y26 = x26;
    y27 = x27;
    y28 = x28;
    y29 = x29;
    y30 = x30;
    y31 = x31;
    // level 0
    y0 = y0 + y1;
    y1 = y2 + y3;
    y2 = y4 + y5;
    y3 = y6 + y7;
    y4 = y8 + y9;
    y5 = y10 + y11;
    y6 = y12 + y13;
    y7 = y14 + y15;
    y8 = y16 + y17;
    y9 = y18 + y19;
    y10 = y20 + y21;
    y11 = y22 + y23;
    y12 = y24 + y25;
    y13 = y26 + y27;
    y14 = y28 + y29;
    y15 = y30 + y31;
    // level 0
    y0 = y0 + y1;
    y1 = y2 + y3;
    y2 = y4 + y5;
    y3 = y6 + y7;
    y4 = y8 + y9;
    y5 = y10 + y11;
    y6 = y12 + y13;
    y7 = y14 + y15;
    // level 0
    y0 = y0 + y1;
    y1 = y2 + y3;
    y2 = y4 + y5;
    y3 = y6 + y7;
    // level 0
    y0 = y0 + y1;
    y1 = y2 + y3;
    // level 0
    y0 = y0 + y1;
    z = y0;
}