Browse Source

Revert use of any() in output code in poclbm kernel. Slower.

Con Kolivas 14 years ago
parent
commit
bce47064b6
1 changed files with 21 additions and 17 deletions
  1. 21 17
      poclbm120222.cl

+ 21 - 17
poclbm120222.cl

@@ -1256,28 +1256,32 @@ Vals[7]+=ch(Vals[0],Vals[1],Vals[2]);
 #define NFLAG (0x7F)
 
 #if defined(VECTORS4)
-	bool result = any(Vals[7] == 0x136032edU);
+	Vals[7] ^= 0x136032edU;
 
-	if (result) {
+	bool result = Vals[7].x & Vals[7].y & Vals[7].z & Vals[7].w;
+
+	if (!result) {
 		output[FOUND] = FOUND;
-		if (Vals[7].x == 0x136032edU)
-			output[NFLAG & nonce.x] =  nonce.x;
-		if (Vals[7].y == 0x136032edU)
-			output[NFLAG & nonce.y] =  nonce.y;
-		if (Vals[7].z == 0x136032edU)
-			output[NFLAG & nonce.z] =  nonce.z;
-		if (Vals[7].w == 0x136032edU)
-			output[NFLAG & nonce.w] =  nonce.w;
+		if (!Vals[7].x)
+			output[NFLAG & nonce.x] = nonce.x;
+		if (!Vals[7].y)
+			output[NFLAG & nonce.y] = nonce.y;
+		if (!Vals[7].z)
+			output[NFLAG & nonce.z] = nonce.z;
+		if (!Vals[7].w)
+			output[NFLAG & nonce.w] = nonce.w;
 	}
-#elif defined(VECTORS2)
-	bool result = any(Vals[7] == 0x136032edU);
+#elif defined VECTORS2
+	Vals[7] ^= 0x136032edU;
+
+	bool result = Vals[7].x & Vals[7].y;
 
-	if (result) {
+	if (!result) {
 		output[FOUND] = FOUND;
-		if (Vals[7].x == 0x136032edU)
-			output[NFLAG & nonce.x] =  nonce.x;
-		if (Vals[7].y == 0x136032edU)
-			output[NFLAG & nonce.y] =  nonce.y;
+		if (!Vals[7].x)
+			output[FOUND] = output[NFLAG & nonce.x] = nonce.x;
+		if (!Vals[7].y)
+			output[FOUND] = output[NFLAG & nonce.y] = nonce.y;
 	}
 #else
 	if (Vals[7] == 0x136032EDU)