Commit d32cd583acf7185c486568ebecd46ec3af6f50c6

Con Kolivas 2012-02-24T17:37:09

Reinstate the old output mechanism setting output[FOUND] per vector.

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)