// ************************************************************************** //
//                                                                            //
//    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;

thread ParallelPrefixTree_4 {
nat y0,y1,y2,y3;
    y0 = x0;
    y1 = x1;
    y2 = x2;
    y3 = x3;
    // up-level 0
    y1 = y0 + y1;
    y3 = y2 + y3;
    // up-level 1
    y3 = y1 + y3;
    // up-level 2
    // down-level 3
    // down-level 4
    y2 = y1 + y2;
    x0 = y0;
    x1 = y1;
    x2 = y2;
    x3 = y3;
}