Merge all additions before output.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
diff --git a/diablo120222.cl b/diablo120222.cl
index effb618..73d2edb 100644
--- a/diablo120222.cl
+++ b/diablo120222.cl
@@ -1119,119 +1119,86 @@ __kernel __attribute__((reqd_work_group_size(WORKSIZE, 1, 1))) void search(
ZA[699] = ZA[667] + ZA[698];
ZA[697] = ZA[696] + 0x1e376c08U;
- ZA[702] = ZR25(ZA[640]) + ZA[636];
ZA[700] = ZR15(ZA[692]) + ZA[699];
ZA[877] = ZA[858] + ZA[697];
ZA[874] = ZA[855] + ZA[873];
ZA[870] = ZA[867] + ZA[869];
ZA[878] = (ZCh(ZA[874], ZA[868], ZA[863]) + ZA[877]) + ZR26(ZA[874]);
- ZA[875] = ZMa(ZA[865], ZA[860], ZA[870]) + ZR30(ZA[870]);
- ZA[703] = ZA[671] + ZA[702];
- ZA[701] = ZA[700] + 0x2748774cU;
- ZA[706] = ZR25(ZA[644]) + ZA[640];
- ZA[704] = ZR15(ZA[696]) + ZA[703];
- ZA[882] = ZA[863] + ZA[701];
+ ZA[704] = ZR15(ZA[696]) + ZA[671] + ZR25(ZA[640]) + ZA[636];
ZA[879] = ZA[860] + ZA[878];
- ZA[876] = ZA[873] + ZA[875];
+ ZA[876] = ZA[873] + ZMa(ZA[865], ZA[860], ZA[870]) + ZR30(ZA[870]);
- ZA[883] = (ZCh(ZA[879], ZA[874], ZA[868]) + ZA[882]) + ZR26(ZA[879]);
- ZA[880] = ZMa(ZA[870], ZA[865], ZA[876]) + ZR30(ZA[876]);
- ZA[707] = ZA[679] + ZA[706];
- ZA[705] = ZA[704] + 0x34b0bcb5U;
+ ZA[883] = (ZCh(ZA[879], ZA[874], ZA[868]) + ZA[863] + ZA[700] +
+ 0x2748774cU) + ZR26(ZA[879]);
- ZA[710] = ZR25(ZA[648]) + ZA[644];
- ZA[708] = ZR15(ZA[700]) + ZA[707];
- ZA[887] = ZA[868] + ZA[705];
+ ZA[708] = ZR15(ZA[700]) + ZA[679] + ZR25(ZA[644]) + ZA[640];
ZA[884] = ZA[865] + ZA[883];
- ZA[881] = ZA[878] + ZA[880];
+ ZA[881] = ZA[878] + ZMa(ZA[870], ZA[865], ZA[876]) + ZR30(ZA[876]);
- ZA[888] = (ZCh(ZA[884], ZA[879], ZA[874]) + ZA[887]) + ZR26(ZA[884]);
- ZA[885] = ZMa(ZA[876], ZA[870], ZA[881]) + ZR30(ZA[881]);
- ZA[711] = ZA[684] + ZA[710];
- ZA[709] = ZA[708] + 0x391c0cb3U;
+ ZA[888] = (ZCh(ZA[884], ZA[879], ZA[874]) + ZA[868] + ZA[704] +
+ 0x34b0bcb5U) + ZR26(ZA[884]);
- ZA[714] = ZR25(ZA[651]) + ZA[648];
- ZA[712] = ZR15(ZA[704]) + ZA[711];
- ZA[892] = ZA[874] + ZA[709];
+ ZA[712] = ZR15(ZA[704]) + ZA[684] + ZR25(ZA[648]) + ZA[644];
ZA[889] = ZA[870] + ZA[888];
- ZA[886] = ZA[883] + ZA[885];
+ ZA[886] = ZA[883] + ZMa(ZA[876], ZA[870], ZA[881]) + ZR30(ZA[881]);
- ZA[893] = (ZCh(ZA[889], ZA[884], ZA[879]) + ZA[892]) + ZR26(ZA[889]);
- ZA[890] = ZMa(ZA[881], ZA[876], ZA[886]) + ZR30(ZA[886]);
- ZA[715] = ZA[688] + ZA[714];
- ZA[713] = ZA[712] + 0x4ed8aa4aU;
+ ZA[893] = (ZCh(ZA[889], ZA[884], ZA[879]) + ZA[874] + ZA[708] +
+ 0x391c0cb3U) + ZR26(ZA[889]);
- ZA[718] = ZR25(ZA[655]) + ZA[651];
- ZA[716] = ZR15(ZA[708]) + ZA[715];
- ZA[897] = ZA[879] + ZA[713];
+ ZA[716] = ZR15(ZA[708]) + ZA[688] + ZR25(ZA[651]) + ZA[648];
ZA[894] = ZA[876] + ZA[893];
- ZA[891] = ZA[888] + ZA[890];
+ ZA[891] = ZA[888] + ZMa(ZA[881], ZA[876], ZA[886]) + ZR30(ZA[886]);
- ZA[898] = (ZCh(ZA[894], ZA[889], ZA[884]) + ZA[897]) + ZR26(ZA[894]);
- ZA[895] = ZMa(ZA[886], ZA[881], ZA[891]) + ZR30(ZA[891]);
- ZA[719] = ZA[692] + ZA[718];
- ZA[717] = ZA[716] + 0x5b9cca4fU;
+ ZA[898] = (ZCh(ZA[894], ZA[889], ZA[884]) + ZA[879] + ZA[712] +
+ 0x4ed8aa4aU) + ZR26(ZA[894]);
- ZA[722] = ZR25(ZA[659]) + ZA[655];
- ZA[720] = ZR15(ZA[712]) + ZA[719];
- ZA[902] = ZA[884] + ZA[717];
+ ZA[720] = ZR15(ZA[712]) + ZA[692] + ZR25(ZA[655]) + ZA[651];
ZA[899] = ZA[881] + ZA[898];
- ZA[896] = ZA[893] + ZA[895];
+ ZA[896] = ZA[893] + ZMa(ZA[886], ZA[881], ZA[891]) + ZR30(ZA[891]);
- ZA[903] = (ZCh(ZA[899], ZA[894], ZA[889]) + ZA[902]) + ZR26(ZA[899]);
- ZA[900] = ZMa(ZA[891], ZA[886], ZA[896]) + ZR30(ZA[896]);
- ZA[723] = ZA[696] + ZA[722];
- ZA[721] = ZA[720] + 0x682e6ff3U;
+ ZA[903] = (ZCh(ZA[899], ZA[894], ZA[889]) + ZA[884] + ZA[716] +
+ 0x5b9cca4fU) + ZR26(ZA[899]);
- ZA[672] = ZR25(ZA[663]) + ZA[659];
- ZA[724] = ZR15(ZA[716]) + ZA[723];
- ZA[907] = ZA[889] + ZA[721];
+ ZA[724] = ZR15(ZA[716]) + ZA[696] + ZR25(ZA[659]) + ZA[655];
ZA[904] = ZA[886] + ZA[903];
- ZA[901] = ZA[898] + ZA[900];
+ ZA[901] = ZA[898] + ZMa(ZA[891], ZA[886], ZA[896]) + ZR30(ZA[896]);
- ZA[908] = (ZCh(ZA[904], ZA[899], ZA[894]) + ZA[907]) + ZR26(ZA[904]);
- ZA[905] = ZMa(ZA[896], ZA[891], ZA[901]) + ZR30(ZA[901]);
- ZA[673] = ZR25(ZA[667]) + ZA[663];
- ZA[726] = ZA[700] + ZA[672];
- ZA[725] = ZA[724] + 0x748f82eeU;
+ ZA[908] = (ZCh(ZA[904], ZA[899], ZA[894]) + ZA[889] + ZA[720] +
+ 0x682e6ff3U) + ZR26(ZA[904]);
- ZA[727] = ZR15(ZA[720]) + ZA[726];
- ZA[912] = ZA[894] + ZA[725];
+ ZA[727] = ZR15(ZA[720]) + ZA[700] + ZR25(ZA[663]) + ZA[659];
ZA[909] = ZA[891] + ZA[908];
- ZA[906] = ZA[903] + ZA[905];
- ZA[675] = ZA[667] + 0x8cc70208U;
- ZA[729] = ZA[704] + ZA[673];
-
- ZA[913] = (ZCh(ZA[909], ZA[904], ZA[899]) + ZA[912]) + ZR26(ZA[909]);
- ZA[910] = ZMa(ZA[901], ZA[896], ZA[906]) + ZR30(ZA[906]);
- ZA[674] = ZR25(ZA[671]) + ZA[675];
- ZA[730] = ZR15(ZA[724]) + ZA[729];
- ZA[728] = ZA[727] + 0x78a5636fU;
-
- ZA[681] = ZR25(ZA[679]) + ZA[671];
- ZA[917] = ZA[899] + ZA[901] + ZA[728];
- ZA[914] = ZA[896] + ZA[913];
- ZA[911] = ZA[908] + ZA[910];
- ZA[732] = ZA[708] + ZA[674];
- ZA[731] = ZA[730] + 0x84c87814U;
-
- ZA[918] = (ZCh(ZA[914], ZA[909], ZA[904]) + ZA[917]) + ZR26(ZA[914]);
- ZA[915] = ZMa(ZA[906], ZA[901], ZA[911]) + ZR30(ZA[911]);
- ZA[733] = ZR15(ZA[727]) + ZA[732];
- ZA[919] = ZA[906] + ZA[904] + ZA[731];
- ZA[734] = ZA[712] + ZA[681];
+ ZA[906] = ZA[903] + ZMa(ZA[896], ZA[891], ZA[901]) + ZR30(ZA[901]);
- ZA[920] = (ZCh(ZA[918], ZA[914], ZA[909]) + ZA[919]) + ZR26(ZA[918]);
- ZA[735] = ZR15(ZA[730]) + ZA[734];
- ZA[921] = ZA[911] + ZA[909] + ZA[733];
- ZA[916] = ZA[913] + ZA[915];
+ ZA[913] = (ZCh(ZA[909], ZA[904], ZA[899]) + ZA[894] + ZA[724] +
+ 0x748f82eeU) + ZR26(ZA[909]);
+ ZA[730] = ZR15(ZA[724]) + ZA[704] + ZR25(ZA[667]) + ZA[663];
- ZA[922] = (ZCh(ZA[920], ZA[918], ZA[914]) + ZA[921]) + ZR26(ZA[920]);
- ZA[923] = ZA[916] + ZA[914] + ZA[735];
-
- ZA[924] = (ZCh(ZA[922], ZA[920], ZA[918]) + ZA[923]) + ZR26(ZA[922]);
+ ZA[914] = ZA[896] + ZA[913];
+ ZA[911] = ZA[908] + ZMa(ZA[901], ZA[896], ZA[906]) + ZR30(ZA[906]);
+
+ ZA[918] = (ZCh(ZA[914], ZA[909], ZA[904]) + ZA[899] + ZA[901] + ZA[727] +
+ 0x78a5636fU) + ZR26(ZA[914]);
+
+ ZA[920] = (ZCh(ZA[918], ZA[914], ZA[909]) + ZA[906] + ZA[904] + ZA[730] +
+ 0x84c87814U) + ZR26(ZA[918]);
+
+ ZA[922] = (ZCh(ZA[920], ZA[918], ZA[914]) + ZA[911] + ZA[909] +
+ ZR15(ZA[727]) + ZA[708] + ZR25(ZA[671]) + ZA[667] +
+ 0x8cc70208U) +
+ ZR26(ZA[920]);
+
+ ZA[924] = (ZCh(ZA[922], ZA[920], ZA[918]) +
+ ZA[913] +
+ ZMa(ZA[906], ZA[901], ZA[911]) + ZR30(ZA[911]) +
+ ZA[914] +
+ ZR15(ZA[730]) +
+ ZA[712] +
+ ZR25(ZA[679]) +
+ ZA[671]) +
+ ZR26(ZA[922]);
#define FOUND (0x80)
#define NFLAG (0x7F)