Replace minus with select give a small boost in speed for -m 1500 and -m 3000
authorJens Steube <jens.steube@gmail.com>
Sun, 24 Apr 2016 18:52:21 +0000 (20:52 +0200)
committerJens Steube <jens.steube@gmail.com>
Sun, 24 Apr 2016 18:52:21 +0000 (20:52 +0200)
OpenCL/m01500_a3.cl
OpenCL/m03000_a3.cl

index 0dd3781..6b29a9a 100644 (file)
@@ -1931,62 +1931,62 @@ void m01500m (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global co
   const u32 w0s = (w0 << 1) & 0xfefefefe;
   const u32 w1s = (w1 << 1) & 0xfefefefe;
 
-  #define K00 -((w0s >> ( 0 + 7)) & 1)
-  #define K01 -((w0s >> ( 0 + 6)) & 1)
-  #define K02 -((w0s >> ( 0 + 5)) & 1)
-  #define K03 -((w0s >> ( 0 + 4)) & 1)
-  #define K04 -((w0s >> ( 0 + 3)) & 1)
-  #define K05 -((w0s >> ( 0 + 2)) & 1)
-  #define K06 -((w0s >> ( 0 + 1)) & 1)
-  #define K07 -((w0s >> ( 8 + 7)) & 1)
-  #define K08 -((w0s >> ( 8 + 6)) & 1)
-  #define K09 -((w0s >> ( 8 + 5)) & 1)
-  #define K10 -((w0s >> ( 8 + 4)) & 1)
-  #define K11 -((w0s >> ( 8 + 3)) & 1)
-  #define K12 -((w0s >> ( 8 + 2)) & 1)
-  #define K13 -((w0s >> ( 8 + 1)) & 1)
-  #define K14 -((w0s >> (16 + 7)) & 1)
-  #define K15 -((w0s >> (16 + 6)) & 1)
-  #define K16 -((w0s >> (16 + 5)) & 1)
-  #define K17 -((w0s >> (16 + 4)) & 1)
-  #define K18 -((w0s >> (16 + 3)) & 1)
-  #define K19 -((w0s >> (16 + 2)) & 1)
-  #define K20 -((w0s >> (16 + 1)) & 1)
-  #define K21 -((w0s >> (24 + 7)) & 1)
-  #define K22 -((w0s >> (24 + 6)) & 1)
-  #define K23 -((w0s >> (24 + 5)) & 1)
-  #define K24 -((w0s >> (24 + 4)) & 1)
-  #define K25 -((w0s >> (24 + 3)) & 1)
-  #define K26 -((w0s >> (24 + 2)) & 1)
-  #define K27 -((w0s >> (24 + 1)) & 1)
-  #define K28 -((w1s >> ( 0 + 7)) & 1)
-  #define K29 -((w1s >> ( 0 + 6)) & 1)
-  #define K30 -((w1s >> ( 0 + 5)) & 1)
-  #define K31 -((w1s >> ( 0 + 4)) & 1)
-  #define K32 -((w1s >> ( 0 + 3)) & 1)
-  #define K33 -((w1s >> ( 0 + 2)) & 1)
-  #define K34 -((w1s >> ( 0 + 1)) & 1)
-  #define K35 -((w1s >> ( 8 + 7)) & 1)
-  #define K36 -((w1s >> ( 8 + 6)) & 1)
-  #define K37 -((w1s >> ( 8 + 5)) & 1)
-  #define K38 -((w1s >> ( 8 + 4)) & 1)
-  #define K39 -((w1s >> ( 8 + 3)) & 1)
-  #define K40 -((w1s >> ( 8 + 2)) & 1)
-  #define K41 -((w1s >> ( 8 + 1)) & 1)
-  #define K42 -((w1s >> (16 + 7)) & 1)
-  #define K43 -((w1s >> (16 + 6)) & 1)
-  #define K44 -((w1s >> (16 + 5)) & 1)
-  #define K45 -((w1s >> (16 + 4)) & 1)
-  #define K46 -((w1s >> (16 + 3)) & 1)
-  #define K47 -((w1s >> (16 + 2)) & 1)
-  #define K48 -((w1s >> (16 + 1)) & 1)
-  #define K49 -((w1s >> (24 + 7)) & 1)
-  #define K50 -((w1s >> (24 + 6)) & 1)
-  #define K51 -((w1s >> (24 + 5)) & 1)
-  #define K52 -((w1s >> (24 + 4)) & 1)
-  #define K53 -((w1s >> (24 + 3)) & 1)
-  #define K54 -((w1s >> (24 + 2)) & 1)
-  #define K55 -((w1s >> (24 + 1)) & 1)
+  #define K00 (((w0s >> ( 0 + 7)) & 1) ? -1 : 0)
+  #define K01 (((w0s >> ( 0 + 6)) & 1) ? -1 : 0)
+  #define K02 (((w0s >> ( 0 + 5)) & 1) ? -1 : 0)
+  #define K03 (((w0s >> ( 0 + 4)) & 1) ? -1 : 0)
+  #define K04 (((w0s >> ( 0 + 3)) & 1) ? -1 : 0)
+  #define K05 (((w0s >> ( 0 + 2)) & 1) ? -1 : 0)
+  #define K06 (((w0s >> ( 0 + 1)) & 1) ? -1 : 0)
+  #define K07 (((w0s >> ( 8 + 7)) & 1) ? -1 : 0)
+  #define K08 (((w0s >> ( 8 + 6)) & 1) ? -1 : 0)
+  #define K09 (((w0s >> ( 8 + 5)) & 1) ? -1 : 0)
+  #define K10 (((w0s >> ( 8 + 4)) & 1) ? -1 : 0)
+  #define K11 (((w0s >> ( 8 + 3)) & 1) ? -1 : 0)
+  #define K12 (((w0s >> ( 8 + 2)) & 1) ? -1 : 0)
+  #define K13 (((w0s >> ( 8 + 1)) & 1) ? -1 : 0)
+  #define K14 (((w0s >> (16 + 7)) & 1) ? -1 : 0)
+  #define K15 (((w0s >> (16 + 6)) & 1) ? -1 : 0)
+  #define K16 (((w0s >> (16 + 5)) & 1) ? -1 : 0)
+  #define K17 (((w0s >> (16 + 4)) & 1) ? -1 : 0)
+  #define K18 (((w0s >> (16 + 3)) & 1) ? -1 : 0)
+  #define K19 (((w0s >> (16 + 2)) & 1) ? -1 : 0)
+  #define K20 (((w0s >> (16 + 1)) & 1) ? -1 : 0)
+  #define K21 (((w0s >> (24 + 7)) & 1) ? -1 : 0)
+  #define K22 (((w0s >> (24 + 6)) & 1) ? -1 : 0)
+  #define K23 (((w0s >> (24 + 5)) & 1) ? -1 : 0)
+  #define K24 (((w0s >> (24 + 4)) & 1) ? -1 : 0)
+  #define K25 (((w0s >> (24 + 3)) & 1) ? -1 : 0)
+  #define K26 (((w0s >> (24 + 2)) & 1) ? -1 : 0)
+  #define K27 (((w0s >> (24 + 1)) & 1) ? -1 : 0)
+  #define K28 (((w1s >> ( 0 + 7)) & 1) ? -1 : 0)
+  #define K29 (((w1s >> ( 0 + 6)) & 1) ? -1 : 0)
+  #define K30 (((w1s >> ( 0 + 5)) & 1) ? -1 : 0)
+  #define K31 (((w1s >> ( 0 + 4)) & 1) ? -1 : 0)
+  #define K32 (((w1s >> ( 0 + 3)) & 1) ? -1 : 0)
+  #define K33 (((w1s >> ( 0 + 2)) & 1) ? -1 : 0)
+  #define K34 (((w1s >> ( 0 + 1)) & 1) ? -1 : 0)
+  #define K35 (((w1s >> ( 8 + 7)) & 1) ? -1 : 0)
+  #define K36 (((w1s >> ( 8 + 6)) & 1) ? -1 : 0)
+  #define K37 (((w1s >> ( 8 + 5)) & 1) ? -1 : 0)
+  #define K38 (((w1s >> ( 8 + 4)) & 1) ? -1 : 0)
+  #define K39 (((w1s >> ( 8 + 3)) & 1) ? -1 : 0)
+  #define K40 (((w1s >> ( 8 + 2)) & 1) ? -1 : 0)
+  #define K41 (((w1s >> ( 8 + 1)) & 1) ? -1 : 0)
+  #define K42 (((w1s >> (16 + 7)) & 1) ? -1 : 0)
+  #define K43 (((w1s >> (16 + 6)) & 1) ? -1 : 0)
+  #define K44 (((w1s >> (16 + 5)) & 1) ? -1 : 0)
+  #define K45 (((w1s >> (16 + 4)) & 1) ? -1 : 0)
+  #define K46 (((w1s >> (16 + 3)) & 1) ? -1 : 0)
+  #define K47 (((w1s >> (16 + 2)) & 1) ? -1 : 0)
+  #define K48 (((w1s >> (16 + 1)) & 1) ? -1 : 0)
+  #define K49 (((w1s >> (24 + 7)) & 1) ? -1 : 0)
+  #define K50 (((w1s >> (24 + 6)) & 1) ? -1 : 0)
+  #define K51 (((w1s >> (24 + 5)) & 1) ? -1 : 0)
+  #define K52 (((w1s >> (24 + 4)) & 1) ? -1 : 0)
+  #define K53 (((w1s >> (24 + 3)) & 1) ? -1 : 0)
+  #define K54 (((w1s >> (24 + 2)) & 1) ? -1 : 0)
+  #define K55 (((w1s >> (24 + 1)) & 1) ? -1 : 0)
 
   /**
    * inner loop
@@ -2294,70 +2294,70 @@ void m01500s (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global co
   const u32 s0 = digests_buf[0].digest_buf[0];
   const u32 s1 = digests_buf[0].digest_buf[1];
 
-  #define S00 -((s0 >>  0) & 1)
-  #define S01 -((s0 >>  1) & 1)
-  #define S02 -((s0 >>  2) & 1)
-  #define S03 -((s0 >>  3) & 1)
-  #define S04 -((s0 >>  4) & 1)
-  #define S05 -((s0 >>  5) & 1)
-  #define S06 -((s0 >>  6) & 1)
-  #define S07 -((s0 >>  7) & 1)
-  #define S08 -((s0 >>  8) & 1)
-  #define S09 -((s0 >>  9) & 1)
-  #define S10 -((s0 >> 10) & 1)
-  #define S11 -((s0 >> 11) & 1)
-  #define S12 -((s0 >> 12) & 1)
-  #define S13 -((s0 >> 13) & 1)
-  #define S14 -((s0 >> 14) & 1)
-  #define S15 -((s0 >> 15) & 1)
-  #define S16 -((s0 >> 16) & 1)
-  #define S17 -((s0 >> 17) & 1)
-  #define S18 -((s0 >> 18) & 1)
-  #define S19 -((s0 >> 19) & 1)
-  #define S20 -((s0 >> 20) & 1)
-  #define S21 -((s0 >> 21) & 1)
-  #define S22 -((s0 >> 22) & 1)
-  #define S23 -((s0 >> 23) & 1)
-  #define S24 -((s0 >> 24) & 1)
-  #define S25 -((s0 >> 25) & 1)
-  #define S26 -((s0 >> 26) & 1)
-  #define S27 -((s0 >> 27) & 1)
-  #define S28 -((s0 >> 28) & 1)
-  #define S29 -((s0 >> 29) & 1)
-  #define S30 -((s0 >> 30) & 1)
-  #define S31 -((s0 >> 31) & 1)
-  #define S32 -((s1 >>  0) & 1)
-  #define S33 -((s1 >>  1) & 1)
-  #define S34 -((s1 >>  2) & 1)
-  #define S35 -((s1 >>  3) & 1)
-  #define S36 -((s1 >>  4) & 1)
-  #define S37 -((s1 >>  5) & 1)
-  #define S38 -((s1 >>  6) & 1)
-  #define S39 -((s1 >>  7) & 1)
-  #define S40 -((s1 >>  8) & 1)
-  #define S41 -((s1 >>  9) & 1)
-  #define S42 -((s1 >> 10) & 1)
-  #define S43 -((s1 >> 11) & 1)
-  #define S44 -((s1 >> 12) & 1)
-  #define S45 -((s1 >> 13) & 1)
-  #define S46 -((s1 >> 14) & 1)
-  #define S47 -((s1 >> 15) & 1)
-  #define S48 -((s1 >> 16) & 1)
-  #define S49 -((s1 >> 17) & 1)
-  #define S50 -((s1 >> 18) & 1)
-  #define S51 -((s1 >> 19) & 1)
-  #define S52 -((s1 >> 20) & 1)
-  #define S53 -((s1 >> 21) & 1)
-  #define S54 -((s1 >> 22) & 1)
-  #define S55 -((s1 >> 23) & 1)
-  #define S56 -((s1 >> 24) & 1)
-  #define S57 -((s1 >> 25) & 1)
-  #define S58 -((s1 >> 26) & 1)
-  #define S59 -((s1 >> 27) & 1)
-  #define S60 -((s1 >> 28) & 1)
-  #define S61 -((s1 >> 29) & 1)
-  #define S62 -((s1 >> 30) & 1)
-  #define S63 -((s1 >> 31) & 1)
+  #define S00 (((s0 >>  0) & 1) ? -1 : 0)
+  #define S01 (((s0 >>  1) & 1) ? -1 : 0)
+  #define S02 (((s0 >>  2) & 1) ? -1 : 0)
+  #define S03 (((s0 >>  3) & 1) ? -1 : 0)
+  #define S04 (((s0 >>  4) & 1) ? -1 : 0)
+  #define S05 (((s0 >>  5) & 1) ? -1 : 0)
+  #define S06 (((s0 >>  6) & 1) ? -1 : 0)
+  #define S07 (((s0 >>  7) & 1) ? -1 : 0)
+  #define S08 (((s0 >>  8) & 1) ? -1 : 0)
+  #define S09 (((s0 >>  9) & 1) ? -1 : 0)
+  #define S10 (((s0 >> 10) & 1) ? -1 : 0)
+  #define S11 (((s0 >> 11) & 1) ? -1 : 0)
+  #define S12 (((s0 >> 12) & 1) ? -1 : 0)
+  #define S13 (((s0 >> 13) & 1) ? -1 : 0)
+  #define S14 (((s0 >> 14) & 1) ? -1 : 0)
+  #define S15 (((s0 >> 15) & 1) ? -1 : 0)
+  #define S16 (((s0 >> 16) & 1) ? -1 : 0)
+  #define S17 (((s0 >> 17) & 1) ? -1 : 0)
+  #define S18 (((s0 >> 18) & 1) ? -1 : 0)
+  #define S19 (((s0 >> 19) & 1) ? -1 : 0)
+  #define S20 (((s0 >> 20) & 1) ? -1 : 0)
+  #define S21 (((s0 >> 21) & 1) ? -1 : 0)
+  #define S22 (((s0 >> 22) & 1) ? -1 : 0)
+  #define S23 (((s0 >> 23) & 1) ? -1 : 0)
+  #define S24 (((s0 >> 24) & 1) ? -1 : 0)
+  #define S25 (((s0 >> 25) & 1) ? -1 : 0)
+  #define S26 (((s0 >> 26) & 1) ? -1 : 0)
+  #define S27 (((s0 >> 27) & 1) ? -1 : 0)
+  #define S28 (((s0 >> 28) & 1) ? -1 : 0)
+  #define S29 (((s0 >> 29) & 1) ? -1 : 0)
+  #define S30 (((s0 >> 30) & 1) ? -1 : 0)
+  #define S31 (((s0 >> 31) & 1) ? -1 : 0)
+  #define S32 (((s1 >>  0) & 1) ? -1 : 0)
+  #define S33 (((s1 >>  1) & 1) ? -1 : 0)
+  #define S34 (((s1 >>  2) & 1) ? -1 : 0)
+  #define S35 (((s1 >>  3) & 1) ? -1 : 0)
+  #define S36 (((s1 >>  4) & 1) ? -1 : 0)
+  #define S37 (((s1 >>  5) & 1) ? -1 : 0)
+  #define S38 (((s1 >>  6) & 1) ? -1 : 0)
+  #define S39 (((s1 >>  7) & 1) ? -1 : 0)
+  #define S40 (((s1 >>  8) & 1) ? -1 : 0)
+  #define S41 (((s1 >>  9) & 1) ? -1 : 0)
+  #define S42 (((s1 >> 10) & 1) ? -1 : 0)
+  #define S43 (((s1 >> 11) & 1) ? -1 : 0)
+  #define S44 (((s1 >> 12) & 1) ? -1 : 0)
+  #define S45 (((s1 >> 13) & 1) ? -1 : 0)
+  #define S46 (((s1 >> 14) & 1) ? -1 : 0)
+  #define S47 (((s1 >> 15) & 1) ? -1 : 0)
+  #define S48 (((s1 >> 16) & 1) ? -1 : 0)
+  #define S49 (((s1 >> 17) & 1) ? -1 : 0)
+  #define S50 (((s1 >> 18) & 1) ? -1 : 0)
+  #define S51 (((s1 >> 19) & 1) ? -1 : 0)
+  #define S52 (((s1 >> 20) & 1) ? -1 : 0)
+  #define S53 (((s1 >> 21) & 1) ? -1 : 0)
+  #define S54 (((s1 >> 22) & 1) ? -1 : 0)
+  #define S55 (((s1 >> 23) & 1) ? -1 : 0)
+  #define S56 (((s1 >> 24) & 1) ? -1 : 0)
+  #define S57 (((s1 >> 25) & 1) ? -1 : 0)
+  #define S58 (((s1 >> 26) & 1) ? -1 : 0)
+  #define S59 (((s1 >> 27) & 1) ? -1 : 0)
+  #define S60 (((s1 >> 28) & 1) ? -1 : 0)
+  #define S61 (((s1 >> 29) & 1) ? -1 : 0)
+  #define S62 (((s1 >> 30) & 1) ? -1 : 0)
+  #define S63 (((s1 >> 31) & 1) ? -1 : 0)
 
   /**
    * base
@@ -2369,62 +2369,62 @@ void m01500s (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global co
   const u32 w0s = (w0 << 1) & 0xfefefefe;
   const u32 w1s = (w1 << 1) & 0xfefefefe;
 
-  #define K00 -((w0s >> ( 0 + 7)) & 1)
-  #define K01 -((w0s >> ( 0 + 6)) & 1)
-  #define K02 -((w0s >> ( 0 + 5)) & 1)
-  #define K03 -((w0s >> ( 0 + 4)) & 1)
-  #define K04 -((w0s >> ( 0 + 3)) & 1)
-  #define K05 -((w0s >> ( 0 + 2)) & 1)
-  #define K06 -((w0s >> ( 0 + 1)) & 1)
-  #define K07 -((w0s >> ( 8 + 7)) & 1)
-  #define K08 -((w0s >> ( 8 + 6)) & 1)
-  #define K09 -((w0s >> ( 8 + 5)) & 1)
-  #define K10 -((w0s >> ( 8 + 4)) & 1)
-  #define K11 -((w0s >> ( 8 + 3)) & 1)
-  #define K12 -((w0s >> ( 8 + 2)) & 1)
-  #define K13 -((w0s >> ( 8 + 1)) & 1)
-  #define K14 -((w0s >> (16 + 7)) & 1)
-  #define K15 -((w0s >> (16 + 6)) & 1)
-  #define K16 -((w0s >> (16 + 5)) & 1)
-  #define K17 -((w0s >> (16 + 4)) & 1)
-  #define K18 -((w0s >> (16 + 3)) & 1)
-  #define K19 -((w0s >> (16 + 2)) & 1)
-  #define K20 -((w0s >> (16 + 1)) & 1)
-  #define K21 -((w0s >> (24 + 7)) & 1)
-  #define K22 -((w0s >> (24 + 6)) & 1)
-  #define K23 -((w0s >> (24 + 5)) & 1)
-  #define K24 -((w0s >> (24 + 4)) & 1)
-  #define K25 -((w0s >> (24 + 3)) & 1)
-  #define K26 -((w0s >> (24 + 2)) & 1)
-  #define K27 -((w0s >> (24 + 1)) & 1)
-  #define K28 -((w1s >> ( 0 + 7)) & 1)
-  #define K29 -((w1s >> ( 0 + 6)) & 1)
-  #define K30 -((w1s >> ( 0 + 5)) & 1)
-  #define K31 -((w1s >> ( 0 + 4)) & 1)
-  #define K32 -((w1s >> ( 0 + 3)) & 1)
-  #define K33 -((w1s >> ( 0 + 2)) & 1)
-  #define K34 -((w1s >> ( 0 + 1)) & 1)
-  #define K35 -((w1s >> ( 8 + 7)) & 1)
-  #define K36 -((w1s >> ( 8 + 6)) & 1)
-  #define K37 -((w1s >> ( 8 + 5)) & 1)
-  #define K38 -((w1s >> ( 8 + 4)) & 1)
-  #define K39 -((w1s >> ( 8 + 3)) & 1)
-  #define K40 -((w1s >> ( 8 + 2)) & 1)
-  #define K41 -((w1s >> ( 8 + 1)) & 1)
-  #define K42 -((w1s >> (16 + 7)) & 1)
-  #define K43 -((w1s >> (16 + 6)) & 1)
-  #define K44 -((w1s >> (16 + 5)) & 1)
-  #define K45 -((w1s >> (16 + 4)) & 1)
-  #define K46 -((w1s >> (16 + 3)) & 1)
-  #define K47 -((w1s >> (16 + 2)) & 1)
-  #define K48 -((w1s >> (16 + 1)) & 1)
-  #define K49 -((w1s >> (24 + 7)) & 1)
-  #define K50 -((w1s >> (24 + 6)) & 1)
-  #define K51 -((w1s >> (24 + 5)) & 1)
-  #define K52 -((w1s >> (24 + 4)) & 1)
-  #define K53 -((w1s >> (24 + 3)) & 1)
-  #define K54 -((w1s >> (24 + 2)) & 1)
-  #define K55 -((w1s >> (24 + 1)) & 1)
+  #define K00 (((w0s >> ( 0 + 7)) & 1) ? -1 : 0)
+  #define K01 (((w0s >> ( 0 + 6)) & 1) ? -1 : 0)
+  #define K02 (((w0s >> ( 0 + 5)) & 1) ? -1 : 0)
+  #define K03 (((w0s >> ( 0 + 4)) & 1) ? -1 : 0)
+  #define K04 (((w0s >> ( 0 + 3)) & 1) ? -1 : 0)
+  #define K05 (((w0s >> ( 0 + 2)) & 1) ? -1 : 0)
+  #define K06 (((w0s >> ( 0 + 1)) & 1) ? -1 : 0)
+  #define K07 (((w0s >> ( 8 + 7)) & 1) ? -1 : 0)
+  #define K08 (((w0s >> ( 8 + 6)) & 1) ? -1 : 0)
+  #define K09 (((w0s >> ( 8 + 5)) & 1) ? -1 : 0)
+  #define K10 (((w0s >> ( 8 + 4)) & 1) ? -1 : 0)
+  #define K11 (((w0s >> ( 8 + 3)) & 1) ? -1 : 0)
+  #define K12 (((w0s >> ( 8 + 2)) & 1) ? -1 : 0)
+  #define K13 (((w0s >> ( 8 + 1)) & 1) ? -1 : 0)
+  #define K14 (((w0s >> (16 + 7)) & 1) ? -1 : 0)
+  #define K15 (((w0s >> (16 + 6)) & 1) ? -1 : 0)
+  #define K16 (((w0s >> (16 + 5)) & 1) ? -1 : 0)
+  #define K17 (((w0s >> (16 + 4)) & 1) ? -1 : 0)
+  #define K18 (((w0s >> (16 + 3)) & 1) ? -1 : 0)
+  #define K19 (((w0s >> (16 + 2)) & 1) ? -1 : 0)
+  #define K20 (((w0s >> (16 + 1)) & 1) ? -1 : 0)
+  #define K21 (((w0s >> (24 + 7)) & 1) ? -1 : 0)
+  #define K22 (((w0s >> (24 + 6)) & 1) ? -1 : 0)
+  #define K23 (((w0s >> (24 + 5)) & 1) ? -1 : 0)
+  #define K24 (((w0s >> (24 + 4)) & 1) ? -1 : 0)
+  #define K25 (((w0s >> (24 + 3)) & 1) ? -1 : 0)
+  #define K26 (((w0s >> (24 + 2)) & 1) ? -1 : 0)
+  #define K27 (((w0s >> (24 + 1)) & 1) ? -1 : 0)
+  #define K28 (((w1s >> ( 0 + 7)) & 1) ? -1 : 0)
+  #define K29 (((w1s >> ( 0 + 6)) & 1) ? -1 : 0)
+  #define K30 (((w1s >> ( 0 + 5)) & 1) ? -1 : 0)
+  #define K31 (((w1s >> ( 0 + 4)) & 1) ? -1 : 0)
+  #define K32 (((w1s >> ( 0 + 3)) & 1) ? -1 : 0)
+  #define K33 (((w1s >> ( 0 + 2)) & 1) ? -1 : 0)
+  #define K34 (((w1s >> ( 0 + 1)) & 1) ? -1 : 0)
+  #define K35 (((w1s >> ( 8 + 7)) & 1) ? -1 : 0)
+  #define K36 (((w1s >> ( 8 + 6)) & 1) ? -1 : 0)
+  #define K37 (((w1s >> ( 8 + 5)) & 1) ? -1 : 0)
+  #define K38 (((w1s >> ( 8 + 4)) & 1) ? -1 : 0)
+  #define K39 (((w1s >> ( 8 + 3)) & 1) ? -1 : 0)
+  #define K40 (((w1s >> ( 8 + 2)) & 1) ? -1 : 0)
+  #define K41 (((w1s >> ( 8 + 1)) & 1) ? -1 : 0)
+  #define K42 (((w1s >> (16 + 7)) & 1) ? -1 : 0)
+  #define K43 (((w1s >> (16 + 6)) & 1) ? -1 : 0)
+  #define K44 (((w1s >> (16 + 5)) & 1) ? -1 : 0)
+  #define K45 (((w1s >> (16 + 4)) & 1) ? -1 : 0)
+  #define K46 (((w1s >> (16 + 3)) & 1) ? -1 : 0)
+  #define K47 (((w1s >> (16 + 2)) & 1) ? -1 : 0)
+  #define K48 (((w1s >> (16 + 1)) & 1) ? -1 : 0)
+  #define K49 (((w1s >> (24 + 7)) & 1) ? -1 : 0)
+  #define K50 (((w1s >> (24 + 6)) & 1) ? -1 : 0)
+  #define K51 (((w1s >> (24 + 5)) & 1) ? -1 : 0)
+  #define K52 (((w1s >> (24 + 4)) & 1) ? -1 : 0)
+  #define K53 (((w1s >> (24 + 3)) & 1) ? -1 : 0)
+  #define K54 (((w1s >> (24 + 2)) & 1) ? -1 : 0)
+  #define K55 (((w1s >> (24 + 1)) & 1) ? -1 : 0)
 
   /**
    * inner loop
index 9c265f9..08a7af1 100644 (file)
@@ -1760,62 +1760,62 @@ void m03000m (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global co
   const u32 w0s = pws[gid].i[0];
   const u32 w1s = pws[gid].i[1];
 
-  #define K00 -((w0s >> ( 0 + 7)) & 1)
-  #define K01 -((w0s >> ( 0 + 6)) & 1)
-  #define K02 -((w0s >> ( 0 + 5)) & 1)
-  #define K03 -((w0s >> ( 0 + 4)) & 1)
-  #define K04 -((w0s >> ( 0 + 3)) & 1)
-  #define K05 -((w0s >> ( 0 + 2)) & 1)
-  #define K06 -((w0s >> ( 0 + 1)) & 1)
-  #define K07 -((w0s >> ( 0 + 0)) & 1)
-  #define K08 -((w0s >> ( 8 + 7)) & 1)
-  #define K09 -((w0s >> ( 8 + 6)) & 1)
-  #define K10 -((w0s >> ( 8 + 5)) & 1)
-  #define K11 -((w0s >> ( 8 + 4)) & 1)
-  #define K12 -((w0s >> ( 8 + 3)) & 1)
-  #define K13 -((w0s >> ( 8 + 2)) & 1)
-  #define K14 -((w0s >> ( 8 + 1)) & 1)
-  #define K15 -((w0s >> ( 8 + 0)) & 1)
-  #define K16 -((w0s >> (16 + 7)) & 1)
-  #define K17 -((w0s >> (16 + 6)) & 1)
-  #define K18 -((w0s >> (16 + 5)) & 1)
-  #define K19 -((w0s >> (16 + 4)) & 1)
-  #define K20 -((w0s >> (16 + 3)) & 1)
-  #define K21 -((w0s >> (16 + 2)) & 1)
-  #define K22 -((w0s >> (16 + 1)) & 1)
-  #define K23 -((w0s >> (16 + 0)) & 1)
-  #define K24 -((w0s >> (24 + 7)) & 1)
-  #define K25 -((w0s >> (24 + 6)) & 1)
-  #define K26 -((w0s >> (24 + 5)) & 1)
-  #define K27 -((w0s >> (24 + 4)) & 1)
-  #define K28 -((w0s >> (24 + 3)) & 1)
-  #define K29 -((w0s >> (24 + 2)) & 1)
-  #define K30 -((w0s >> (24 + 1)) & 1)
-  #define K31 -((w0s >> (24 + 0)) & 1)
-  #define K32 -((w1s >> ( 0 + 7)) & 1)
-  #define K33 -((w1s >> ( 0 + 6)) & 1)
-  #define K34 -((w1s >> ( 0 + 5)) & 1)
-  #define K35 -((w1s >> ( 0 + 4)) & 1)
-  #define K36 -((w1s >> ( 0 + 3)) & 1)
-  #define K37 -((w1s >> ( 0 + 2)) & 1)
-  #define K38 -((w1s >> ( 0 + 1)) & 1)
-  #define K39 -((w1s >> ( 0 + 0)) & 1)
-  #define K40 -((w1s >> ( 8 + 7)) & 1)
-  #define K41 -((w1s >> ( 8 + 6)) & 1)
-  #define K42 -((w1s >> ( 8 + 5)) & 1)
-  #define K43 -((w1s >> ( 8 + 4)) & 1)
-  #define K44 -((w1s >> ( 8 + 3)) & 1)
-  #define K45 -((w1s >> ( 8 + 2)) & 1)
-  #define K46 -((w1s >> ( 8 + 1)) & 1)
-  #define K47 -((w1s >> ( 8 + 0)) & 1)
-  #define K48 -((w1s >> (16 + 7)) & 1)
-  #define K49 -((w1s >> (16 + 6)) & 1)
-  #define K50 -((w1s >> (16 + 5)) & 1)
-  #define K51 -((w1s >> (16 + 4)) & 1)
-  #define K52 -((w1s >> (16 + 3)) & 1)
-  #define K53 -((w1s >> (16 + 2)) & 1)
-  #define K54 -((w1s >> (16 + 1)) & 1)
-  #define K55 -((w1s >> (16 + 0)) & 1)
+  #define K00 (((w0s >> ( 0 + 7)) & 1) ? -1 : 0)
+  #define K01 (((w0s >> ( 0 + 6)) & 1) ? -1 : 0)
+  #define K02 (((w0s >> ( 0 + 5)) & 1) ? -1 : 0)
+  #define K03 (((w0s >> ( 0 + 4)) & 1) ? -1 : 0)
+  #define K04 (((w0s >> ( 0 + 3)) & 1) ? -1 : 0)
+  #define K05 (((w0s >> ( 0 + 2)) & 1) ? -1 : 0)
+  #define K06 (((w0s >> ( 0 + 1)) & 1) ? -1 : 0)
+  #define K07 (((w0s >> ( 0 + 0)) & 1) ? -1 : 0)
+  #define K08 (((w0s >> ( 8 + 7)) & 1) ? -1 : 0)
+  #define K09 (((w0s >> ( 8 + 6)) & 1) ? -1 : 0)
+  #define K10 (((w0s >> ( 8 + 5)) & 1) ? -1 : 0)
+  #define K11 (((w0s >> ( 8 + 4)) & 1) ? -1 : 0)
+  #define K12 (((w0s >> ( 8 + 3)) & 1) ? -1 : 0)
+  #define K13 (((w0s >> ( 8 + 2)) & 1) ? -1 : 0)
+  #define K14 (((w0s >> ( 8 + 1)) & 1) ? -1 : 0)
+  #define K15 (((w0s >> ( 8 + 0)) & 1) ? -1 : 0)
+  #define K16 (((w0s >> (16 + 7)) & 1) ? -1 : 0)
+  #define K17 (((w0s >> (16 + 6)) & 1) ? -1 : 0)
+  #define K18 (((w0s >> (16 + 5)) & 1) ? -1 : 0)
+  #define K19 (((w0s >> (16 + 4)) & 1) ? -1 : 0)
+  #define K20 (((w0s >> (16 + 3)) & 1) ? -1 : 0)
+  #define K21 (((w0s >> (16 + 2)) & 1) ? -1 : 0)
+  #define K22 (((w0s >> (16 + 1)) & 1) ? -1 : 0)
+  #define K23 (((w0s >> (16 + 0)) & 1) ? -1 : 0)
+  #define K24 (((w0s >> (24 + 7)) & 1) ? -1 : 0)
+  #define K25 (((w0s >> (24 + 6)) & 1) ? -1 : 0)
+  #define K26 (((w0s >> (24 + 5)) & 1) ? -1 : 0)
+  #define K27 (((w0s >> (24 + 4)) & 1) ? -1 : 0)
+  #define K28 (((w0s >> (24 + 3)) & 1) ? -1 : 0)
+  #define K29 (((w0s >> (24 + 2)) & 1) ? -1 : 0)
+  #define K30 (((w0s >> (24 + 1)) & 1) ? -1 : 0)
+  #define K31 (((w0s >> (24 + 0)) & 1) ? -1 : 0)
+  #define K32 (((w1s >> ( 0 + 7)) & 1) ? -1 : 0)
+  #define K33 (((w1s >> ( 0 + 6)) & 1) ? -1 : 0)
+  #define K34 (((w1s >> ( 0 + 5)) & 1) ? -1 : 0)
+  #define K35 (((w1s >> ( 0 + 4)) & 1) ? -1 : 0)
+  #define K36 (((w1s >> ( 0 + 3)) & 1) ? -1 : 0)
+  #define K37 (((w1s >> ( 0 + 2)) & 1) ? -1 : 0)
+  #define K38 (((w1s >> ( 0 + 1)) & 1) ? -1 : 0)
+  #define K39 (((w1s >> ( 0 + 0)) & 1) ? -1 : 0)
+  #define K40 (((w1s >> ( 8 + 7)) & 1) ? -1 : 0)
+  #define K41 (((w1s >> ( 8 + 6)) & 1) ? -1 : 0)
+  #define K42 (((w1s >> ( 8 + 5)) & 1) ? -1 : 0)
+  #define K43 (((w1s >> ( 8 + 4)) & 1) ? -1 : 0)
+  #define K44 (((w1s >> ( 8 + 3)) & 1) ? -1 : 0)
+  #define K45 (((w1s >> ( 8 + 2)) & 1) ? -1 : 0)
+  #define K46 (((w1s >> ( 8 + 1)) & 1) ? -1 : 0)
+  #define K47 (((w1s >> ( 8 + 0)) & 1) ? -1 : 0)
+  #define K48 (((w1s >> (16 + 7)) & 1) ? -1 : 0)
+  #define K49 (((w1s >> (16 + 6)) & 1) ? -1 : 0)
+  #define K50 (((w1s >> (16 + 5)) & 1) ? -1 : 0)
+  #define K51 (((w1s >> (16 + 4)) & 1) ? -1 : 0)
+  #define K52 (((w1s >> (16 + 3)) & 1) ? -1 : 0)
+  #define K53 (((w1s >> (16 + 2)) & 1) ? -1 : 0)
+  #define K54 (((w1s >> (16 + 1)) & 1) ? -1 : 0)
+  #define K55 (((w1s >> (16 + 0)) & 1) ? -1 : 0)
 
   /**
    * inner loop
@@ -2126,70 +2126,70 @@ void m03000s (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global co
   const u32 s0 = digests_buf[0].digest_buf[0];
   const u32 s1 = digests_buf[0].digest_buf[1];
 
-  #define S00 -((s0 >>  0) & 1)
-  #define S01 -((s0 >>  1) & 1)
-  #define S02 -((s0 >>  2) & 1)
-  #define S03 -((s0 >>  3) & 1)
-  #define S04 -((s0 >>  4) & 1)
-  #define S05 -((s0 >>  5) & 1)
-  #define S06 -((s0 >>  6) & 1)
-  #define S07 -((s0 >>  7) & 1)
-  #define S08 -((s0 >>  8) & 1)
-  #define S09 -((s0 >>  9) & 1)
-  #define S10 -((s0 >> 10) & 1)
-  #define S11 -((s0 >> 11) & 1)
-  #define S12 -((s0 >> 12) & 1)
-  #define S13 -((s0 >> 13) & 1)
-  #define S14 -((s0 >> 14) & 1)
-  #define S15 -((s0 >> 15) & 1)
-  #define S16 -((s0 >> 16) & 1)
-  #define S17 -((s0 >> 17) & 1)
-  #define S18 -((s0 >> 18) & 1)
-  #define S19 -((s0 >> 19) & 1)
-  #define S20 -((s0 >> 20) & 1)
-  #define S21 -((s0 >> 21) & 1)
-  #define S22 -((s0 >> 22) & 1)
-  #define S23 -((s0 >> 23) & 1)
-  #define S24 -((s0 >> 24) & 1)
-  #define S25 -((s0 >> 25) & 1)
-  #define S26 -((s0 >> 26) & 1)
-  #define S27 -((s0 >> 27) & 1)
-  #define S28 -((s0 >> 28) & 1)
-  #define S29 -((s0 >> 29) & 1)
-  #define S30 -((s0 >> 30) & 1)
-  #define S31 -((s0 >> 31) & 1)
-  #define S32 -((s1 >>  0) & 1)
-  #define S33 -((s1 >>  1) & 1)
-  #define S34 -((s1 >>  2) & 1)
-  #define S35 -((s1 >>  3) & 1)
-  #define S36 -((s1 >>  4) & 1)
-  #define S37 -((s1 >>  5) & 1)
-  #define S38 -((s1 >>  6) & 1)
-  #define S39 -((s1 >>  7) & 1)
-  #define S40 -((s1 >>  8) & 1)
-  #define S41 -((s1 >>  9) & 1)
-  #define S42 -((s1 >> 10) & 1)
-  #define S43 -((s1 >> 11) & 1)
-  #define S44 -((s1 >> 12) & 1)
-  #define S45 -((s1 >> 13) & 1)
-  #define S46 -((s1 >> 14) & 1)
-  #define S47 -((s1 >> 15) & 1)
-  #define S48 -((s1 >> 16) & 1)
-  #define S49 -((s1 >> 17) & 1)
-  #define S50 -((s1 >> 18) & 1)
-  #define S51 -((s1 >> 19) & 1)
-  #define S52 -((s1 >> 20) & 1)
-  #define S53 -((s1 >> 21) & 1)
-  #define S54 -((s1 >> 22) & 1)
-  #define S55 -((s1 >> 23) & 1)
-  #define S56 -((s1 >> 24) & 1)
-  #define S57 -((s1 >> 25) & 1)
-  #define S58 -((s1 >> 26) & 1)
-  #define S59 -((s1 >> 27) & 1)
-  #define S60 -((s1 >> 28) & 1)
-  #define S61 -((s1 >> 29) & 1)
-  #define S62 -((s1 >> 30) & 1)
-  #define S63 -((s1 >> 31) & 1)
+  #define S00 (((s0 >>  0) & 1) ? -1 : 0)
+  #define S01 (((s0 >>  1) & 1) ? -1 : 0)
+  #define S02 (((s0 >>  2) & 1) ? -1 : 0)
+  #define S03 (((s0 >>  3) & 1) ? -1 : 0)
+  #define S04 (((s0 >>  4) & 1) ? -1 : 0)
+  #define S05 (((s0 >>  5) & 1) ? -1 : 0)
+  #define S06 (((s0 >>  6) & 1) ? -1 : 0)
+  #define S07 (((s0 >>  7) & 1) ? -1 : 0)
+  #define S08 (((s0 >>  8) & 1) ? -1 : 0)
+  #define S09 (((s0 >>  9) & 1) ? -1 : 0)
+  #define S10 (((s0 >> 10) & 1) ? -1 : 0)
+  #define S11 (((s0 >> 11) & 1) ? -1 : 0)
+  #define S12 (((s0 >> 12) & 1) ? -1 : 0)
+  #define S13 (((s0 >> 13) & 1) ? -1 : 0)
+  #define S14 (((s0 >> 14) & 1) ? -1 : 0)
+  #define S15 (((s0 >> 15) & 1) ? -1 : 0)
+  #define S16 (((s0 >> 16) & 1) ? -1 : 0)
+  #define S17 (((s0 >> 17) & 1) ? -1 : 0)
+  #define S18 (((s0 >> 18) & 1) ? -1 : 0)
+  #define S19 (((s0 >> 19) & 1) ? -1 : 0)
+  #define S20 (((s0 >> 20) & 1) ? -1 : 0)
+  #define S21 (((s0 >> 21) & 1) ? -1 : 0)
+  #define S22 (((s0 >> 22) & 1) ? -1 : 0)
+  #define S23 (((s0 >> 23) & 1) ? -1 : 0)
+  #define S24 (((s0 >> 24) & 1) ? -1 : 0)
+  #define S25 (((s0 >> 25) & 1) ? -1 : 0)
+  #define S26 (((s0 >> 26) & 1) ? -1 : 0)
+  #define S27 (((s0 >> 27) & 1) ? -1 : 0)
+  #define S28 (((s0 >> 28) & 1) ? -1 : 0)
+  #define S29 (((s0 >> 29) & 1) ? -1 : 0)
+  #define S30 (((s0 >> 30) & 1) ? -1 : 0)
+  #define S31 (((s0 >> 31) & 1) ? -1 : 0)
+  #define S32 (((s1 >>  0) & 1) ? -1 : 0)
+  #define S33 (((s1 >>  1) & 1) ? -1 : 0)
+  #define S34 (((s1 >>  2) & 1) ? -1 : 0)
+  #define S35 (((s1 >>  3) & 1) ? -1 : 0)
+  #define S36 (((s1 >>  4) & 1) ? -1 : 0)
+  #define S37 (((s1 >>  5) & 1) ? -1 : 0)
+  #define S38 (((s1 >>  6) & 1) ? -1 : 0)
+  #define S39 (((s1 >>  7) & 1) ? -1 : 0)
+  #define S40 (((s1 >>  8) & 1) ? -1 : 0)
+  #define S41 (((s1 >>  9) & 1) ? -1 : 0)
+  #define S42 (((s1 >> 10) & 1) ? -1 : 0)
+  #define S43 (((s1 >> 11) & 1) ? -1 : 0)
+  #define S44 (((s1 >> 12) & 1) ? -1 : 0)
+  #define S45 (((s1 >> 13) & 1) ? -1 : 0)
+  #define S46 (((s1 >> 14) & 1) ? -1 : 0)
+  #define S47 (((s1 >> 15) & 1) ? -1 : 0)
+  #define S48 (((s1 >> 16) & 1) ? -1 : 0)
+  #define S49 (((s1 >> 17) & 1) ? -1 : 0)
+  #define S50 (((s1 >> 18) & 1) ? -1 : 0)
+  #define S51 (((s1 >> 19) & 1) ? -1 : 0)
+  #define S52 (((s1 >> 20) & 1) ? -1 : 0)
+  #define S53 (((s1 >> 21) & 1) ? -1 : 0)
+  #define S54 (((s1 >> 22) & 1) ? -1 : 0)
+  #define S55 (((s1 >> 23) & 1) ? -1 : 0)
+  #define S56 (((s1 >> 24) & 1) ? -1 : 0)
+  #define S57 (((s1 >> 25) & 1) ? -1 : 0)
+  #define S58 (((s1 >> 26) & 1) ? -1 : 0)
+  #define S59 (((s1 >> 27) & 1) ? -1 : 0)
+  #define S60 (((s1 >> 28) & 1) ? -1 : 0)
+  #define S61 (((s1 >> 29) & 1) ? -1 : 0)
+  #define S62 (((s1 >> 30) & 1) ? -1 : 0)
+  #define S63 (((s1 >> 31) & 1) ? -1 : 0)
 
   /**
    * base
@@ -2198,62 +2198,62 @@ void m03000s (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global co
   const u32 w0s = pws[gid].i[0];
   const u32 w1s = pws[gid].i[1];
 
-  #define K00 -((w0s >> ( 0 + 7)) & 1)
-  #define K01 -((w0s >> ( 0 + 6)) & 1)
-  #define K02 -((w0s >> ( 0 + 5)) & 1)
-  #define K03 -((w0s >> ( 0 + 4)) & 1)
-  #define K04 -((w0s >> ( 0 + 3)) & 1)
-  #define K05 -((w0s >> ( 0 + 2)) & 1)
-  #define K06 -((w0s >> ( 0 + 1)) & 1)
-  #define K07 -((w0s >> ( 0 + 0)) & 1)
-  #define K08 -((w0s >> ( 8 + 7)) & 1)
-  #define K09 -((w0s >> ( 8 + 6)) & 1)
-  #define K10 -((w0s >> ( 8 + 5)) & 1)
-  #define K11 -((w0s >> ( 8 + 4)) & 1)
-  #define K12 -((w0s >> ( 8 + 3)) & 1)
-  #define K13 -((w0s >> ( 8 + 2)) & 1)
-  #define K14 -((w0s >> ( 8 + 1)) & 1)
-  #define K15 -((w0s >> ( 8 + 0)) & 1)
-  #define K16 -((w0s >> (16 + 7)) & 1)
-  #define K17 -((w0s >> (16 + 6)) & 1)
-  #define K18 -((w0s >> (16 + 5)) & 1)
-  #define K19 -((w0s >> (16 + 4)) & 1)
-  #define K20 -((w0s >> (16 + 3)) & 1)
-  #define K21 -((w0s >> (16 + 2)) & 1)
-  #define K22 -((w0s >> (16 + 1)) & 1)
-  #define K23 -((w0s >> (16 + 0)) & 1)
-  #define K24 -((w0s >> (24 + 7)) & 1)
-  #define K25 -((w0s >> (24 + 6)) & 1)
-  #define K26 -((w0s >> (24 + 5)) & 1)
-  #define K27 -((w0s >> (24 + 4)) & 1)
-  #define K28 -((w0s >> (24 + 3)) & 1)
-  #define K29 -((w0s >> (24 + 2)) & 1)
-  #define K30 -((w0s >> (24 + 1)) & 1)
-  #define K31 -((w0s >> (24 + 0)) & 1)
-  #define K32 -((w1s >> ( 0 + 7)) & 1)
-  #define K33 -((w1s >> ( 0 + 6)) & 1)
-  #define K34 -((w1s >> ( 0 + 5)) & 1)
-  #define K35 -((w1s >> ( 0 + 4)) & 1)
-  #define K36 -((w1s >> ( 0 + 3)) & 1)
-  #define K37 -((w1s >> ( 0 + 2)) & 1)
-  #define K38 -((w1s >> ( 0 + 1)) & 1)
-  #define K39 -((w1s >> ( 0 + 0)) & 1)
-  #define K40 -((w1s >> ( 8 + 7)) & 1)
-  #define K41 -((w1s >> ( 8 + 6)) & 1)
-  #define K42 -((w1s >> ( 8 + 5)) & 1)
-  #define K43 -((w1s >> ( 8 + 4)) & 1)
-  #define K44 -((w1s >> ( 8 + 3)) & 1)
-  #define K45 -((w1s >> ( 8 + 2)) & 1)
-  #define K46 -((w1s >> ( 8 + 1)) & 1)
-  #define K47 -((w1s >> ( 8 + 0)) & 1)
-  #define K48 -((w1s >> (16 + 7)) & 1)
-  #define K49 -((w1s >> (16 + 6)) & 1)
-  #define K50 -((w1s >> (16 + 5)) & 1)
-  #define K51 -((w1s >> (16 + 4)) & 1)
-  #define K52 -((w1s >> (16 + 3)) & 1)
-  #define K53 -((w1s >> (16 + 2)) & 1)
-  #define K54 -((w1s >> (16 + 1)) & 1)
-  #define K55 -((w1s >> (16 + 0)) & 1)
+  #define K00 (((w0s >> ( 0 + 7)) & 1) ? -1 : 0)
+  #define K01 (((w0s >> ( 0 + 6)) & 1) ? -1 : 0)
+  #define K02 (((w0s >> ( 0 + 5)) & 1) ? -1 : 0)
+  #define K03 (((w0s >> ( 0 + 4)) & 1) ? -1 : 0)
+  #define K04 (((w0s >> ( 0 + 3)) & 1) ? -1 : 0)
+  #define K05 (((w0s >> ( 0 + 2)) & 1) ? -1 : 0)
+  #define K06 (((w0s >> ( 0 + 1)) & 1) ? -1 : 0)
+  #define K07 (((w0s >> ( 0 + 0)) & 1) ? -1 : 0)
+  #define K08 (((w0s >> ( 8 + 7)) & 1) ? -1 : 0)
+  #define K09 (((w0s >> ( 8 + 6)) & 1) ? -1 : 0)
+  #define K10 (((w0s >> ( 8 + 5)) & 1) ? -1 : 0)
+  #define K11 (((w0s >> ( 8 + 4)) & 1) ? -1 : 0)
+  #define K12 (((w0s >> ( 8 + 3)) & 1) ? -1 : 0)
+  #define K13 (((w0s >> ( 8 + 2)) & 1) ? -1 : 0)
+  #define K14 (((w0s >> ( 8 + 1)) & 1) ? -1 : 0)
+  #define K15 (((w0s >> ( 8 + 0)) & 1) ? -1 : 0)
+  #define K16 (((w0s >> (16 + 7)) & 1) ? -1 : 0)
+  #define K17 (((w0s >> (16 + 6)) & 1) ? -1 : 0)
+  #define K18 (((w0s >> (16 + 5)) & 1) ? -1 : 0)
+  #define K19 (((w0s >> (16 + 4)) & 1) ? -1 : 0)
+  #define K20 (((w0s >> (16 + 3)) & 1) ? -1 : 0)
+  #define K21 (((w0s >> (16 + 2)) & 1) ? -1 : 0)
+  #define K22 (((w0s >> (16 + 1)) & 1) ? -1 : 0)
+  #define K23 (((w0s >> (16 + 0)) & 1) ? -1 : 0)
+  #define K24 (((w0s >> (24 + 7)) & 1) ? -1 : 0)
+  #define K25 (((w0s >> (24 + 6)) & 1) ? -1 : 0)
+  #define K26 (((w0s >> (24 + 5)) & 1) ? -1 : 0)
+  #define K27 (((w0s >> (24 + 4)) & 1) ? -1 : 0)
+  #define K28 (((w0s >> (24 + 3)) & 1) ? -1 : 0)
+  #define K29 (((w0s >> (24 + 2)) & 1) ? -1 : 0)
+  #define K30 (((w0s >> (24 + 1)) & 1) ? -1 : 0)
+  #define K31 (((w0s >> (24 + 0)) & 1) ? -1 : 0)
+  #define K32 (((w1s >> ( 0 + 7)) & 1) ? -1 : 0)
+  #define K33 (((w1s >> ( 0 + 6)) & 1) ? -1 : 0)
+  #define K34 (((w1s >> ( 0 + 5)) & 1) ? -1 : 0)
+  #define K35 (((w1s >> ( 0 + 4)) & 1) ? -1 : 0)
+  #define K36 (((w1s >> ( 0 + 3)) & 1) ? -1 : 0)
+  #define K37 (((w1s >> ( 0 + 2)) & 1) ? -1 : 0)
+  #define K38 (((w1s >> ( 0 + 1)) & 1) ? -1 : 0)
+  #define K39 (((w1s >> ( 0 + 0)) & 1) ? -1 : 0)
+  #define K40 (((w1s >> ( 8 + 7)) & 1) ? -1 : 0)
+  #define K41 (((w1s >> ( 8 + 6)) & 1) ? -1 : 0)
+  #define K42 (((w1s >> ( 8 + 5)) & 1) ? -1 : 0)
+  #define K43 (((w1s >> ( 8 + 4)) & 1) ? -1 : 0)
+  #define K44 (((w1s >> ( 8 + 3)) & 1) ? -1 : 0)
+  #define K45 (((w1s >> ( 8 + 2)) & 1) ? -1 : 0)
+  #define K46 (((w1s >> ( 8 + 1)) & 1) ? -1 : 0)
+  #define K47 (((w1s >> ( 8 + 0)) & 1) ? -1 : 0)
+  #define K48 (((w1s >> (16 + 7)) & 1) ? -1 : 0)
+  #define K49 (((w1s >> (16 + 6)) & 1) ? -1 : 0)
+  #define K50 (((w1s >> (16 + 5)) & 1) ? -1 : 0)
+  #define K51 (((w1s >> (16 + 4)) & 1) ? -1 : 0)
+  #define K52 (((w1s >> (16 + 3)) & 1) ? -1 : 0)
+  #define K53 (((w1s >> (16 + 2)) & 1) ? -1 : 0)
+  #define K54 (((w1s >> (16 + 1)) & 1) ? -1 : 0)
+  #define K55 (((w1s >> (16 + 0)) & 1) ? -1 : 0)
 
   /**
    * inner loop