// ************************************************************************** // // // // 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,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62,x63,x64,x65,x66,x67,x68,x69,x70,x71,x72,x73,x74,x75,x76,x77,x78,x79,x80,x81,x82,x83,x84,x85,x86,x87,x88,x89,x90,x91,x92,x93,x94,x95,x96,x97,x98,x99,x100,x101,x102,x103,x104,x105,x106,x107,x108,x109,x110,x111,x112,x113,x114,x115,x116,x117,x118,x119,x120,x121,x122,x123,x124,x125,x126,x127; thread ParallelPrefixTree_128 { 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,y32,y33,y34,y35,y36,y37,y38,y39,y40,y41,y42,y43,y44,y45,y46,y47,y48,y49,y50,y51,y52,y53,y54,y55,y56,y57,y58,y59,y60,y61,y62,y63,y64,y65,y66,y67,y68,y69,y70,y71,y72,y73,y74,y75,y76,y77,y78,y79,y80,y81,y82,y83,y84,y85,y86,y87,y88,y89,y90,y91,y92,y93,y94,y95,y96,y97,y98,y99,y100,y101,y102,y103,y104,y105,y106,y107,y108,y109,y110,y111,y112,y113,y114,y115,y116,y117,y118,y119,y120,y121,y122,y123,y124,y125,y126,y127; 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; y32 = x32; y33 = x33; y34 = x34; y35 = x35; y36 = x36; y37 = x37; y38 = x38; y39 = x39; y40 = x40; y41 = x41; y42 = x42; y43 = x43; y44 = x44; y45 = x45; y46 = x46; y47 = x47; y48 = x48; y49 = x49; y50 = x50; y51 = x51; y52 = x52; y53 = x53; y54 = x54; y55 = x55; y56 = x56; y57 = x57; y58 = x58; y59 = x59; y60 = x60; y61 = x61; y62 = x62; y63 = x63; y64 = x64; y65 = x65; y66 = x66; y67 = x67; y68 = x68; y69 = x69; y70 = x70; y71 = x71; y72 = x72; y73 = x73; y74 = x74; y75 = x75; y76 = x76; y77 = x77; y78 = x78; y79 = x79; y80 = x80; y81 = x81; y82 = x82; y83 = x83; y84 = x84; y85 = x85; y86 = x86; y87 = x87; y88 = x88; y89 = x89; y90 = x90; y91 = x91; y92 = x92; y93 = x93; y94 = x94; y95 = x95; y96 = x96; y97 = x97; y98 = x98; y99 = x99; y100 = x100; y101 = x101; y102 = x102; y103 = x103; y104 = x104; y105 = x105; y106 = x106; y107 = x107; y108 = x108; y109 = x109; y110 = x110; y111 = x111; y112 = x112; y113 = x113; y114 = x114; y115 = x115; y116 = x116; y117 = x117; y118 = x118; y119 = x119; y120 = x120; y121 = x121; y122 = x122; y123 = x123; y124 = x124; y125 = x125; y126 = x126; y127 = x127; // up-level 0 y1 = y0 + y1; y3 = y2 + y3; y5 = y4 + y5; y7 = y6 + y7; y9 = y8 + y9; y11 = y10 + y11; y13 = y12 + y13; y15 = y14 + y15; y17 = y16 + y17; y19 = y18 + y19; y21 = y20 + y21; y23 = y22 + y23; y25 = y24 + y25; y27 = y26 + y27; y29 = y28 + y29; y31 = y30 + y31; y33 = y32 + y33; y35 = y34 + y35; y37 = y36 + y37; y39 = y38 + y39; y41 = y40 + y41; y43 = y42 + y43; y45 = y44 + y45; y47 = y46 + y47; y49 = y48 + y49; y51 = y50 + y51; y53 = y52 + y53; y55 = y54 + y55; y57 = y56 + y57; y59 = y58 + y59; y61 = y60 + y61; y63 = y62 + y63; y65 = y64 + y65; y67 = y66 + y67; y69 = y68 + y69; y71 = y70 + y71; y73 = y72 + y73; y75 = y74 + y75; y77 = y76 + y77; y79 = y78 + y79; y81 = y80 + y81; y83 = y82 + y83; y85 = y84 + y85; y87 = y86 + y87; y89 = y88 + y89; y91 = y90 + y91; y93 = y92 + y93; y95 = y94 + y95; y97 = y96 + y97; y99 = y98 + y99; y101 = y100 + y101; y103 = y102 + y103; y105 = y104 + y105; y107 = y106 + y107; y109 = y108 + y109; y111 = y110 + y111; y113 = y112 + y113; y115 = y114 + y115; y117 = y116 + y117; y119 = y118 + y119; y121 = y120 + y121; y123 = y122 + y123; y125 = y124 + y125; y127 = y126 + y127; // up-level 1 y3 = y1 + y3; y7 = y5 + y7; y11 = y9 + y11; y15 = y13 + y15; y19 = y17 + y19; y23 = y21 + y23; y27 = y25 + y27; y31 = y29 + y31; y35 = y33 + y35; y39 = y37 + y39; y43 = y41 + y43; y47 = y45 + y47; y51 = y49 + y51; y55 = y53 + y55; y59 = y57 + y59; y63 = y61 + y63; y67 = y65 + y67; y71 = y69 + y71; y75 = y73 + y75; y79 = y77 + y79; y83 = y81 + y83; y87 = y85 + y87; y91 = y89 + y91; y95 = y93 + y95; y99 = y97 + y99; y103 = y101 + y103; y107 = y105 + y107; y111 = y109 + y111; y115 = y113 + y115; y119 = y117 + y119; y123 = y121 + y123; y127 = y125 + y127; // up-level 2 y7 = y3 + y7; y15 = y11 + y15; y23 = y19 + y23; y31 = y27 + y31; y39 = y35 + y39; y47 = y43 + y47; y55 = y51 + y55; y63 = y59 + y63; y71 = y67 + y71; y79 = y75 + y79; y87 = y83 + y87; y95 = y91 + y95; y103 = y99 + y103; y111 = y107 + y111; y119 = y115 + y119; y127 = y123 + y127; // up-level 3 y15 = y7 + y15; y31 = y23 + y31; y47 = y39 + y47; y63 = y55 + y63; y79 = y71 + y79; y95 = y87 + y95; y111 = y103 + y111; y127 = y119 + y127; // up-level 4 y31 = y15 + y31; y63 = y47 + y63; y95 = y79 + y95; y127 = y111 + y127; // up-level 5 y63 = y31 + y63; y127 = y95 + y127; // up-level 6 y127 = y63 + y127; // up-level 7 // down-level 8 // down-level 9 y95 = y63 + y95; // down-level 10 y47 = y31 + y47; y79 = y63 + y79; y111 = y95 + y111; // down-level 11 y23 = y15 + y23; y39 = y31 + y39; y55 = y47 + y55; y71 = y63 + y71; y87 = y79 + y87; y103 = y95 + y103; y119 = y111 + y119; // down-level 12 y11 = y7 + y11; y19 = y15 + y19; y27 = y23 + y27; y35 = y31 + y35; y43 = y39 + y43; y51 = y47 + y51; y59 = y55 + y59; y67 = y63 + y67; y75 = y71 + y75; y83 = y79 + y83; y91 = y87 + y91; y99 = y95 + y99; y107 = y103 + y107; y115 = y111 + y115; y123 = y119 + y123; // down-level 13 y5 = y3 + y5; y9 = y7 + y9; y13 = y11 + y13; y17 = y15 + y17; y21 = y19 + y21; y25 = y23 + y25; y29 = y27 + y29; y33 = y31 + y33; y37 = y35 + y37; y41 = y39 + y41; y45 = y43 + y45; y49 = y47 + y49; y53 = y51 + y53; y57 = y55 + y57; y61 = y59 + y61; y65 = y63 + y65; y69 = y67 + y69; y73 = y71 + y73; y77 = y75 + y77; y81 = y79 + y81; y85 = y83 + y85; y89 = y87 + y89; y93 = y91 + y93; y97 = y95 + y97; y101 = y99 + y101; y105 = y103 + y105; y109 = y107 + y109; y113 = y111 + y113; y117 = y115 + y117; y121 = y119 + y121; y125 = y123 + y125; // down-level 14 y2 = y1 + y2; y4 = y3 + y4; y6 = y5 + y6; y8 = y7 + y8; y10 = y9 + y10; y12 = y11 + y12; y14 = y13 + y14; y16 = y15 + y16; y18 = y17 + y18; y20 = y19 + y20; y22 = y21 + y22; y24 = y23 + y24; y26 = y25 + y26; y28 = y27 + y28; y30 = y29 + y30; y32 = y31 + y32; y34 = y33 + y34; y36 = y35 + y36; y38 = y37 + y38; y40 = y39 + y40; y42 = y41 + y42; y44 = y43 + y44; y46 = y45 + y46; y48 = y47 + y48; y50 = y49 + y50; y52 = y51 + y52; y54 = y53 + y54; y56 = y55 + y56; y58 = y57 + y58; y60 = y59 + y60; y62 = y61 + y62; y64 = y63 + y64; y66 = y65 + y66; y68 = y67 + y68; y70 = y69 + y70; y72 = y71 + y72; y74 = y73 + y74; y76 = y75 + y76; y78 = y77 + y78; y80 = y79 + y80; y82 = y81 + y82; y84 = y83 + y84; y86 = y85 + y86; y88 = y87 + y88; y90 = y89 + y90; y92 = y91 + y92; y94 = y93 + y94; y96 = y95 + y96; y98 = y97 + y98; y100 = y99 + y100; y102 = y101 + y102; y104 = y103 + y104; y106 = y105 + y106; y108 = y107 + y108; y110 = y109 + y110; y112 = y111 + y112; y114 = y113 + y114; y116 = y115 + y116; y118 = y117 + y118; y120 = y119 + y120; y122 = y121 + y122; y124 = y123 + y124; y126 = y125 + y126; x0 = y0; x1 = y1; x2 = y2; x3 = y3; x4 = y4; x5 = y5; x6 = y6; x7 = y7; x8 = y8; x9 = y9; x10 = y10; x11 = y11; x12 = y12; x13 = y13; x14 = y14; x15 = y15; x16 = y16; x17 = y17; x18 = y18; x19 = y19; x20 = y20; x21 = y21; x22 = y22; x23 = y23; x24 = y24; x25 = y25; x26 = y26; x27 = y27; x28 = y28; x29 = y29; x30 = y30; x31 = y31; x32 = y32; x33 = y33; x34 = y34; x35 = y35; x36 = y36; x37 = y37; x38 = y38; x39 = y39; x40 = y40; x41 = y41; x42 = y42; x43 = y43; x44 = y44; x45 = y45; x46 = y46; x47 = y47; x48 = y48; x49 = y49; x50 = y50; x51 = y51; x52 = y52; x53 = y53; x54 = y54; x55 = y55; x56 = y56; x57 = y57; x58 = y58; x59 = y59; x60 = y60; x61 = y61; x62 = y62; x63 = y63; x64 = y64; x65 = y65; x66 = y66; x67 = y67; x68 = y68; x69 = y69; x70 = y70; x71 = y71; x72 = y72; x73 = y73; x74 = y74; x75 = y75; x76 = y76; x77 = y77; x78 = y78; x79 = y79; x80 = y80; x81 = y81; x82 = y82; x83 = y83; x84 = y84; x85 = y85; x86 = y86; x87 = y87; x88 = y88; x89 = y89; x90 = y90; x91 = y91; x92 = y92; x93 = y93; x94 = y94; x95 = y95; x96 = y96; x97 = y97; x98 = y98; x99 = y99; x100 = y100; x101 = y101; x102 = y102; x103 = y103; x104 = y104; x105 = y105; x106 = y106; x107 = y107; x108 = y108; x109 = y109; x110 = y110; x111 = y111; x112 = y112; x113 = y113; x114 = y114; x115 = y115; x116 = y116; x117 = y117; x118 = y118; x119 = y119; x120 = y120; x121 = y121; x122 = y122; x123 = y123; x124 = y124; x125 = y125; x126 = y126; x127 = y127; }