Reinstate the old output mechanism setting output[FOUND] per vector.
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
diff --git a/diablo120222.cl b/diablo120222.cl
index 4bc7394..effb618 100644
--- a/diablo120222.cl
+++ b/diablo120222.cl
@@ -1240,25 +1240,23 @@ __kernel __attribute__((reqd_work_group_size(WORKSIZE, 1, 1))) void search(
bool result = any(ZA[924] == 0x136032EDU);
if (result) {
- output[FOUND] = FOUND;
if (ZA[924].x == 0x136032EDU)
- output[NFLAG & Znonce.x] = Znonce.x;
+ output[FOUND] = output[NFLAG & Znonce.x] = Znonce.x;
if (ZA[924].y == 0x136032EDU)
- output[NFLAG & Znonce.y] = Znonce.y;
+ output[FOUND] = output[NFLAG & Znonce.y] = Znonce.y;
if (ZA[924].z == 0x136032EDU)
- output[NFLAG & Znonce.z] = Znonce.z;
+ output[FOUND] = output[NFLAG & Znonce.z] = Znonce.z;
if (ZA[924].w == 0x136032EDU)
- output[NFLAG & Znonce.w] = Znonce.w;
+ output[FOUND] = output[NFLAG & Znonce.w] = Znonce.w;
}
#elif defined(VECTORS2)
bool result = any(ZA[924] == 0x136032EDU);
if (result) {
- output[FOUND] = FOUND;
if (ZA[924].x == 0x136032EDU)
- output[NFLAG & Znonce.x] = Znonce.x;
+ output[FOUND] = output[NFLAG & Znonce.x] = Znonce.x;
if (ZA[924].y == 0x136032EDU)
- output[NFLAG & Znonce.y] = Znonce.y;
+ output[FOUND] = output[NFLAG & Znonce.y] = Znonce.y;
}
#else
if (ZA[924] == 0x136032EDU)
diff --git a/diakgcn120223.cl b/diakgcn120223.cl
index 9635ff5..6e637f5 100644
--- a/diakgcn120223.cl
+++ b/diakgcn120223.cl
@@ -582,23 +582,22 @@ __kernel
bool result = V[7].s0 & V[7].s1 & V[7].s2 & V[7].s3 & V[7].s4 & V[7].s5 & V[7].s6 & V[7].s7;
if (!result) {
- output[FOUND] = FOUND;
if (!V[7].s0)
- output[NFLAG & nonce.s0] = nonce.s0;
+ output[FOUND] = output[NFLAG & nonce.s0] = nonce.s0;
if (!V[7].s1)
- output[NFLAG & nonce.s1] = nonce.s1;
+ output[FOUND] = output[NFLAG & nonce.s1] = nonce.s1;
if (!V[7].s2)
- output[NFLAG & nonce.s2] = nonce.s2;
+ output[FOUND] = output[NFLAG & nonce.s2] = nonce.s2;
if (!V[7].s3)
- output[NFLAG & nonce.s3] = nonce.s3;
+ output[FOUND] = output[NFLAG & nonce.s3] = nonce.s3;
if (!V[7].s4)
- output[NFLAG & nonce.s4] = nonce.s4;
+ output[FOUND] = output[NFLAG & nonce.s4] = nonce.s4;
if (!V[7].s5)
- output[NFLAG & nonce.s5] = nonce.s5;
+ output[FOUND] = output[NFLAG & nonce.s5] = nonce.s5;
if (!V[7].s6)
- output[NFLAG & nonce.s6] = nonce.s6;
+ output[FOUND] = output[NFLAG & nonce.s6] = nonce.s6;
if (!V[7].s7)
- output[NFLAG & nonce.s7] = nonce.s7;
+ output[FOUND] = output[NFLAG & nonce.s7] = nonce.s7;
}
#elif defined VECTORS4
V[7] ^= 0x136032edU;
@@ -606,15 +605,14 @@ __kernel
bool result = V[7].x & V[7].y & V[7].z & V[7].w;
if (!result) {
- output[FOUND] = FOUND;
if (!V[7].x)
- output[NFLAG & nonce.x] = nonce.x;
+ output[FOUND] = output[NFLAG & nonce.x] = nonce.x;
if (!V[7].y)
- output[NFLAG & nonce.y] = nonce.y;
+ output[FOUND] = output[NFLAG & nonce.y] = nonce.y;
if (!V[7].z)
- output[NFLAG & nonce.z] = nonce.z;
+ output[FOUND] = output[NFLAG & nonce.z] = nonce.z;
if (!V[7].w)
- output[NFLAG & nonce.w] = nonce.w;
+ output[FOUND] = output[NFLAG & nonce.w] = nonce.w;
}
#elif defined VECTORS2
V[7] ^= 0x136032edU;
@@ -622,7 +620,6 @@ __kernel
bool result = V[7].x & V[7].y;
if (!result) {
- output[FOUND] = FOUND;
if (!V[7].x)
output[FOUND] = output[NFLAG & nonce.x] = nonce.x;
if (!V[7].y)
diff --git a/poclbm120222.cl b/poclbm120222.cl
index e7ba623..c56ded2 100644
--- a/poclbm120222.cl
+++ b/poclbm120222.cl
@@ -1261,15 +1261,14 @@ Vals[7]+=ch(Vals[0],Vals[1],Vals[2]);
bool result = Vals[7].x & Vals[7].y & Vals[7].z & Vals[7].w;
if (!result) {
- output[FOUND] = FOUND;
if (!Vals[7].x)
- output[NFLAG & nonce.x] = nonce.x;
+ output[FOUND] = output[NFLAG & nonce.x] = nonce.x;
if (!Vals[7].y)
- output[NFLAG & nonce.y] = nonce.y;
+ output[FOUND] = output[NFLAG & nonce.y] = nonce.y;
if (!Vals[7].z)
- output[NFLAG & nonce.z] = nonce.z;
+ output[FOUND] = output[NFLAG & nonce.z] = nonce.z;
if (!Vals[7].w)
- output[NFLAG & nonce.w] = nonce.w;
+ output[FOUND] = output[NFLAG & nonce.w] = nonce.w;
}
#elif defined VECTORS2
Vals[7] ^= 0x136032edU;
@@ -1277,11 +1276,10 @@ Vals[7]+=ch(Vals[0],Vals[1],Vals[2]);
bool result = Vals[7].x & Vals[7].y;
if (!result) {
- output[FOUND] = FOUND;
if (!Vals[7].x)
- output[FOUND] = output[NFLAG & nonce.x] = nonce.x;
+ output[FOUND] = output[FOUND] = output[NFLAG & nonce.x] = nonce.x;
if (!Vals[7].y)
- output[FOUND] = output[NFLAG & nonce.y] = nonce.y;
+ output[FOUND] = output[FOUND] = output[NFLAG & nonce.y] = nonce.y;
}
#else
if (Vals[7] == 0x136032EDU)