// ************************************************************************** // // // // 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; thread ParallelPrefixTree_32 { // up-level 0 x1 = x0 + x1; x3 = x2 + x3; x5 = x4 + x5; x7 = x6 + x7; x9 = x8 + x9; x11 = x10 + x11; x13 = x12 + x13; x15 = x14 + x15; x17 = x16 + x17; x19 = x18 + x19; x21 = x20 + x21; x23 = x22 + x23; x25 = x24 + x25; x27 = x26 + x27; x29 = x28 + x29; x31 = x30 + x31; // up-level 1 x3 = x1 + x3; x7 = x5 + x7; x11 = x9 + x11; x15 = x13 + x15; x19 = x17 + x19; x23 = x21 + x23; x27 = x25 + x27; x31 = x29 + x31; // up-level 2 x7 = x3 + x7; x15 = x11 + x15; x23 = x19 + x23; x31 = x27 + x31; // up-level 3 x15 = x7 + x15; x31 = x23 + x31; // up-level 4 x31 = x15 + x31; // up-level 5 // down-level 6 // down-level 7 x23 = x15 + x23; // down-level 8 x11 = x7 + x11; x19 = x15 + x19; x27 = x23 + x27; // down-level 9 x5 = x3 + x5; x9 = x7 + x9; x13 = x11 + x13; x17 = x15 + x17; x21 = x19 + x21; x25 = x23 + x25; x29 = x27 + x29; // down-level 10 x2 = x1 + x2; x4 = x3 + x4; x6 = x5 + x6; x8 = x7 + x8; x10 = x9 + x10; x12 = x11 + x12; x14 = x13 + x14; x16 = x15 + x16; x18 = x17 + x18; x20 = x19 + x20; x22 = x21 + x22; x24 = x23 + x24; x26 = x25 + x26; x28 = x27 + x28; x30 = x29 + x30; }