From d32cd583acf7185c486568ebecd46ec3af6f50c6 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Fri, 24 Feb 2012 17:37:09 +1100 Subject: [PATCH] Reinstate the old output mechanism setting output[FOUND] per vector. --- diablo120222.cl | 14 ++++++-------- diakgcn120223.cl | 27 ++++++++++++--------------- poclbm120222.cl | 14 ++++++-------- 3 files changed, 24 insertions(+), 31 deletions(-) diff --git a/diablo120222.cl b/diablo120222.cl index 4bc7394d..effb6187 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 9635ff5d..6e637f54 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 e7ba623e..c56ded2e 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)