From 40b57677cde3e1109e9c979151468abf373e14a3 Mon Sep 17 00:00:00 2001 From: jsteube Date: Wed, 30 Aug 2017 15:32:09 +0200 Subject: [PATCH] OpenCL Kernels: Reactivate Dalibors XOR optimization on MD5_H on all MD5 based algorithms --- OpenCL/inc_hash_functions.cl | 6 + OpenCL/inc_hash_md5.cl | 68 ++++++------ OpenCL/m00000_a0-optimized.cl | 68 ++++++------ OpenCL/m00000_a1-optimized.cl | 68 ++++++------ OpenCL/m00000_a3-optimized.cl | 68 ++++++------ OpenCL/m00010_a0-optimized.cl | 68 ++++++------ OpenCL/m00010_a1-optimized.cl | 68 ++++++------ OpenCL/m00010_a3-optimized.cl | 68 ++++++------ OpenCL/m00020_a0-optimized.cl | 68 ++++++------ OpenCL/m00020_a1-optimized.cl | 68 ++++++------ OpenCL/m00020_a3-optimized.cl | 68 ++++++------ OpenCL/m00030_a0-optimized.cl | 68 ++++++------ OpenCL/m00030_a1-optimized.cl | 68 ++++++------ OpenCL/m00030_a3-optimized.cl | 68 ++++++------ OpenCL/m00040_a0-optimized.cl | 68 ++++++------ OpenCL/m00040_a1-optimized.cl | 68 ++++++------ OpenCL/m00040_a3-optimized.cl | 68 ++++++------ OpenCL/m02400_a0-optimized.cl | 68 ++++++------ OpenCL/m02400_a1-optimized.cl | 68 ++++++------ OpenCL/m02400_a3-optimized.cl | 68 ++++++------ OpenCL/m02410_a0-optimized.cl | 68 ++++++------ OpenCL/m02410_a1-optimized.cl | 68 ++++++------ OpenCL/m02410_a3-optimized.cl | 68 ++++++------ OpenCL/m02610_a0-optimized.cl | 136 ++++++++++++----------- OpenCL/m02610_a1-optimized.cl | 136 ++++++++++++----------- OpenCL/m02610_a3-optimized.cl | 136 ++++++++++++----------- OpenCL/m02710_a0-optimized.cl | 204 ++++++++++++++++++---------------- OpenCL/m02710_a1-optimized.cl | 204 ++++++++++++++++++---------------- OpenCL/m02710_a3-optimized.cl | 204 ++++++++++++++++++---------------- OpenCL/m02810_a0-optimized.cl | 204 ++++++++++++++++++---------------- OpenCL/m02810_a1-optimized.cl | 204 ++++++++++++++++++---------------- OpenCL/m02810_a3-optimized.cl | 204 ++++++++++++++++++---------------- OpenCL/m03710_a0-optimized.cl | 136 ++++++++++++----------- OpenCL/m03710_a1-optimized.cl | 136 ++++++++++++----------- OpenCL/m03710_a3-optimized.cl | 136 ++++++++++++----------- OpenCL/m03800_a0-optimized.cl | 68 ++++++------ OpenCL/m03800_a1-optimized.cl | 68 ++++++------ OpenCL/m03800_a3-optimized.cl | 68 ++++++------ OpenCL/m03910_a0-optimized.cl | 204 ++++++++++++++++++---------------- OpenCL/m03910_a1-optimized.cl | 204 ++++++++++++++++++---------------- OpenCL/m03910_a3-optimized.cl | 204 ++++++++++++++++++---------------- OpenCL/m04010_a0-optimized.cl | 136 ++++++++++++----------- OpenCL/m04010_a1-optimized.cl | 136 ++++++++++++----------- OpenCL/m04010_a3-optimized.cl | 136 ++++++++++++----------- OpenCL/m04110_a0-optimized.cl | 136 ++++++++++++----------- OpenCL/m04110_a1-optimized.cl | 136 ++++++++++++----------- OpenCL/m04110_a3-optimized.cl | 136 ++++++++++++----------- OpenCL/m04310_a0-optimized.cl | 136 ++++++++++++----------- OpenCL/m04310_a1-optimized.cl | 136 ++++++++++++----------- OpenCL/m04310_a3-optimized.cl | 136 ++++++++++++----------- OpenCL/m04400_a0-optimized.cl | 68 ++++++------ OpenCL/m04400_a1-optimized.cl | 68 ++++++------ OpenCL/m04400_a3-optimized.cl | 68 ++++++------ OpenCL/m04700_a0-optimized.cl | 68 ++++++------ OpenCL/m04700_a1-optimized.cl | 68 ++++++------ OpenCL/m04700_a3-optimized.cl | 68 ++++++------ OpenCL/m04800_a0-optimized.cl | 68 ++++++------ OpenCL/m04800_a1-optimized.cl | 68 ++++++------ OpenCL/m04800_a3-optimized.cl | 68 ++++++------ OpenCL/m05100_a0-optimized.cl | 68 ++++++------ OpenCL/m05100_a1-optimized.cl | 68 ++++++------ OpenCL/m05100_a3-optimized.cl | 68 ++++++------ OpenCL/m09900_a0-optimized.cl | 136 ++++++++++++----------- OpenCL/m09900_a1-optimized.cl | 136 ++++++++++++----------- OpenCL/m09900_a3-optimized.cl | 136 ++++++++++++----------- OpenCL/m11000_a0-optimized.cl | 136 ++++++++++++----------- OpenCL/m11000_a1-optimized.cl | 136 ++++++++++++----------- OpenCL/m11000_a3-optimized.cl | 136 ++++++++++++----------- OpenCL/m11100_a0-optimized.cl | 136 ++++++++++++----------- OpenCL/m11100_a1-optimized.cl | 136 ++++++++++++----------- OpenCL/m11100_a3-optimized.cl | 136 ++++++++++++----------- 71 files changed, 4038 insertions(+), 3584 deletions(-) diff --git a/OpenCL/inc_hash_functions.cl b/OpenCL/inc_hash_functions.cl index 06225acf9..28926aed8 100644 --- a/OpenCL/inc_hash_functions.cl +++ b/OpenCL/inc_hash_functions.cl @@ -60,6 +60,8 @@ #define MD5_F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) #define MD5_G(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) #define MD5_H(x,y,z) ((x) ^ (y) ^ (z)) +#define MD5_H1(x,y,z) ((t = (x) ^ (y)) ^ (z)) +#define MD5_H2(x,y,z) ((x) ^ t) #define MD5_I(x,y,z) ((y) ^ ((x) | ~(z))) #define MD5_Fo(x,y,z) (MD5_F((x), (y), (z))) #define MD5_Go(x,y,z) (MD5_G((x), (y), (z))) @@ -69,6 +71,8 @@ #define MD5_F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) #define MD5_G(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) #define MD5_H(x,y,z) ((x) ^ (y) ^ (z)) +#define MD5_H1(x,y,z) ((t = (x) ^ (y)) ^ (z)) +#define MD5_H2(x,y,z) ((x) ^ t) #define MD5_I(x,y,z) ((y) ^ ((x) | ~(z))) #define MD5_Fo(x,y,z) (bitselect ((z), (y), (x))) #define MD5_Go(x,y,z) (bitselect ((y), (x), (z))) @@ -78,6 +82,8 @@ #define MD5_F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) #define MD5_G(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) #define MD5_H(x,y,z) ((x) ^ (y) ^ (z)) +#define MD5_H1(x,y,z) ((t = (x) ^ (y)) ^ (z)) +#define MD5_H2(x,y,z) ((x) ^ t) #define MD5_I(x,y,z) ((y) ^ ((x) | ~(z))) #define MD5_Fo(x,y,z) (MD5_F((x), (y), (z))) #define MD5_Go(x,y,z) (MD5_G((x), (y), (z))) diff --git a/OpenCL/inc_hash_md5.cl b/OpenCL/inc_hash_md5.cl index 687990280..0e2346a9e 100644 --- a/OpenCL/inc_hash_md5.cl +++ b/OpenCL/inc_hash_md5.cl @@ -75,22 +75,24 @@ static void md5_transform (const u32 w0[4], const u32 w1[4], const u32 w2[4], co MD5_STEP_S (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP_S (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP_S (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP_S (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP_S (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP_S (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP_S (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP_S (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP_S (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP_S (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP_S (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP_S (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP_S (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP_S (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP_S (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP_S (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP_S (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP_S (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32 t; + + MD5_STEP_S (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP_S (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP_S (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP_S (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP_S (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP_S (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP_S (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP_S (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP_S (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP_S (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP_S (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP_S (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP_S (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP_S (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP_S (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP_S (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP_S (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP_S (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); @@ -1206,22 +1208,24 @@ static void md5_transform_vector (const u32x w0[4], const u32x w1[4], const u32x MD5_STEP (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); diff --git a/OpenCL/m00000_a0-optimized.cl b/OpenCL/m00000_a0-optimized.cl index 6f1237fe4..b0dee4122 100644 --- a/OpenCL/m00000_a0-optimized.cl +++ b/OpenCL/m00000_a0-optimized.cl @@ -101,22 +101,24 @@ __kernel void m00000_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -246,22 +248,24 @@ __kernel void m00000_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m00000_a1-optimized.cl b/OpenCL/m00000_a1-optimized.cl index 521228fc8..bea63538c 100644 --- a/OpenCL/m00000_a1-optimized.cl +++ b/OpenCL/m00000_a1-optimized.cl @@ -160,22 +160,24 @@ __kernel void m00000_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -364,22 +366,24 @@ __kernel void m00000_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m00000_a3-optimized.cl b/OpenCL/m00000_a3-optimized.cl index 1a5531841..55e5846ef 100644 --- a/OpenCL/m00000_a3-optimized.cl +++ b/OpenCL/m00000_a3-optimized.cl @@ -162,22 +162,24 @@ void m00000m (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); @@ -380,28 +382,30 @@ void m00000s (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); if (MATCHES_NONE_VV (pre_c, c)) continue; - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); if (MATCHES_NONE_VV (pre_d, d)) continue; - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); diff --git a/OpenCL/m00010_a0-optimized.cl b/OpenCL/m00010_a0-optimized.cl index 98978e63f..9c3228c6c 100644 --- a/OpenCL/m00010_a0-optimized.cl +++ b/OpenCL/m00010_a0-optimized.cl @@ -175,22 +175,24 @@ __kernel void m00010_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -394,22 +396,24 @@ __kernel void m00010_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m00010_a1-optimized.cl b/OpenCL/m00010_a1-optimized.cl index beed58874..a03361d17 100644 --- a/OpenCL/m00010_a1-optimized.cl +++ b/OpenCL/m00010_a1-optimized.cl @@ -233,22 +233,24 @@ __kernel void m00010_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -512,22 +514,24 @@ __kernel void m00010_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m00010_a3-optimized.cl b/OpenCL/m00010_a3-optimized.cl index bf63f15d4..c13988e7c 100644 --- a/OpenCL/m00010_a3-optimized.cl +++ b/OpenCL/m00010_a3-optimized.cl @@ -210,22 +210,24 @@ void m00010m (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); @@ -428,28 +430,30 @@ void m00010s (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); if (MATCHES_NONE_VV (pre_c, c)) continue; - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); if (MATCHES_NONE_VV (pre_d, d)) continue; - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); diff --git a/OpenCL/m00020_a0-optimized.cl b/OpenCL/m00020_a0-optimized.cl index 72e6c520c..87cc6ea97 100644 --- a/OpenCL/m00020_a0-optimized.cl +++ b/OpenCL/m00020_a0-optimized.cl @@ -155,22 +155,24 @@ __kernel void m00020_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -354,22 +356,24 @@ __kernel void m00020_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m00020_a1-optimized.cl b/OpenCL/m00020_a1-optimized.cl index 872f4fbc5..1a7f38040 100644 --- a/OpenCL/m00020_a1-optimized.cl +++ b/OpenCL/m00020_a1-optimized.cl @@ -211,22 +211,24 @@ __kernel void m00020_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -468,22 +470,24 @@ __kernel void m00020_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m00020_a3-optimized.cl b/OpenCL/m00020_a3-optimized.cl index b3082b6df..94cbb6c61 100644 --- a/OpenCL/m00020_a3-optimized.cl +++ b/OpenCL/m00020_a3-optimized.cl @@ -147,22 +147,24 @@ void m00020m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, t1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, t3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, t1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, t1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, t0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, t1[3], MD5C31, MD5S31); @@ -332,22 +334,24 @@ void m00020s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, t1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, t3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, t1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, t1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, t0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, t1[3], MD5C31, MD5S31); diff --git a/OpenCL/m00030_a0-optimized.cl b/OpenCL/m00030_a0-optimized.cl index 7f639cd85..61321e564 100644 --- a/OpenCL/m00030_a0-optimized.cl +++ b/OpenCL/m00030_a0-optimized.cl @@ -180,22 +180,24 @@ __kernel void m00030_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -404,22 +406,24 @@ __kernel void m00030_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m00030_a1-optimized.cl b/OpenCL/m00030_a1-optimized.cl index fcb23aae8..355b01ab7 100644 --- a/OpenCL/m00030_a1-optimized.cl +++ b/OpenCL/m00030_a1-optimized.cl @@ -238,22 +238,24 @@ __kernel void m00030_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -522,22 +524,24 @@ __kernel void m00030_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m00030_a3-optimized.cl b/OpenCL/m00030_a3-optimized.cl index bd9d465b3..a2100fb22 100644 --- a/OpenCL/m00030_a3-optimized.cl +++ b/OpenCL/m00030_a3-optimized.cl @@ -210,22 +210,24 @@ void m00030m (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); @@ -428,28 +430,30 @@ void m00030s (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); if (MATCHES_NONE_VV (pre_c, c)) continue; - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); if (MATCHES_NONE_VV (pre_d, d)) continue; - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); diff --git a/OpenCL/m00040_a0-optimized.cl b/OpenCL/m00040_a0-optimized.cl index 2f8c1da58..c057d027c 100644 --- a/OpenCL/m00040_a0-optimized.cl +++ b/OpenCL/m00040_a0-optimized.cl @@ -160,22 +160,24 @@ __kernel void m00040_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -364,22 +366,24 @@ __kernel void m00040_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m00040_a1-optimized.cl b/OpenCL/m00040_a1-optimized.cl index 079607838..6deba1e9b 100644 --- a/OpenCL/m00040_a1-optimized.cl +++ b/OpenCL/m00040_a1-optimized.cl @@ -216,22 +216,24 @@ __kernel void m00040_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -478,22 +480,24 @@ __kernel void m00040_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m00040_a3-optimized.cl b/OpenCL/m00040_a3-optimized.cl index 86d612849..2ad6c824b 100644 --- a/OpenCL/m00040_a3-optimized.cl +++ b/OpenCL/m00040_a3-optimized.cl @@ -147,22 +147,24 @@ void m00040m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, t1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, t3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, t1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, t1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, t0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, t1[3], MD5C31, MD5S31); @@ -332,22 +334,24 @@ void m00040s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, t1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, t3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, t1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, t1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, t0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, t1[3], MD5C31, MD5S31); diff --git a/OpenCL/m02400_a0-optimized.cl b/OpenCL/m02400_a0-optimized.cl index b4f93bc20..bd3a613ea 100644 --- a/OpenCL/m02400_a0-optimized.cl +++ b/OpenCL/m02400_a0-optimized.cl @@ -109,22 +109,24 @@ __kernel void m02400_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -267,22 +269,24 @@ __kernel void m02400_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m02400_a1-optimized.cl b/OpenCL/m02400_a1-optimized.cl index 4f4753327..40481dea2 100644 --- a/OpenCL/m02400_a1-optimized.cl +++ b/OpenCL/m02400_a1-optimized.cl @@ -171,22 +171,24 @@ __kernel void m02400_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -393,22 +395,24 @@ __kernel void m02400_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m02400_a3-optimized.cl b/OpenCL/m02400_a3-optimized.cl index c0361413b..bd29d259c 100644 --- a/OpenCL/m02400_a3-optimized.cl +++ b/OpenCL/m02400_a3-optimized.cl @@ -161,22 +161,24 @@ void m02400m (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); @@ -365,22 +367,24 @@ void m02400s (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); diff --git a/OpenCL/m02410_a0-optimized.cl b/OpenCL/m02410_a0-optimized.cl index 23297913d..4db40a0b8 100644 --- a/OpenCL/m02410_a0-optimized.cl +++ b/OpenCL/m02410_a0-optimized.cl @@ -184,22 +184,24 @@ __kernel void m02410_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -417,22 +419,24 @@ __kernel void m02410_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m02410_a1-optimized.cl b/OpenCL/m02410_a1-optimized.cl index 1b152ef74..a59926a2b 100644 --- a/OpenCL/m02410_a1-optimized.cl +++ b/OpenCL/m02410_a1-optimized.cl @@ -242,22 +242,24 @@ __kernel void m02410_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -535,22 +537,24 @@ __kernel void m02410_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m02410_a3-optimized.cl b/OpenCL/m02410_a3-optimized.cl index 8ae186a46..fe780074a 100644 --- a/OpenCL/m02410_a3-optimized.cl +++ b/OpenCL/m02410_a3-optimized.cl @@ -206,22 +206,24 @@ void m02410m (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); @@ -455,22 +457,24 @@ void m02410s (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); diff --git a/OpenCL/m02610_a0-optimized.cl b/OpenCL/m02610_a0-optimized.cl index 4849daff0..808ab4461 100644 --- a/OpenCL/m02610_a0-optimized.cl +++ b/OpenCL/m02610_a0-optimized.cl @@ -158,22 +158,24 @@ __kernel void m02610_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -262,22 +264,24 @@ __kernel void m02610_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -452,22 +456,24 @@ __kernel void m02610_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -556,22 +562,24 @@ __kernel void m02610_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m02610_a1-optimized.cl b/OpenCL/m02610_a1-optimized.cl index 807a152fc..826dc8e3d 100644 --- a/OpenCL/m02610_a1-optimized.cl +++ b/OpenCL/m02610_a1-optimized.cl @@ -215,22 +215,24 @@ __kernel void m02610_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -319,22 +321,24 @@ __kernel void m02610_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -568,22 +572,24 @@ __kernel void m02610_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -672,22 +678,24 @@ __kernel void m02610_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m02610_a3-optimized.cl b/OpenCL/m02610_a3-optimized.cl index c490350e0..25b43c5ed 100644 --- a/OpenCL/m02610_a3-optimized.cl +++ b/OpenCL/m02610_a3-optimized.cl @@ -138,22 +138,24 @@ void m02610m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -242,22 +244,24 @@ void m02610m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -406,22 +410,24 @@ void m02610s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -510,22 +516,24 @@ void m02610s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); diff --git a/OpenCL/m02710_a0-optimized.cl b/OpenCL/m02710_a0-optimized.cl index b7c5f3a45..c1b9c0e9c 100644 --- a/OpenCL/m02710_a0-optimized.cl +++ b/OpenCL/m02710_a0-optimized.cl @@ -158,22 +158,24 @@ __kernel void m02710_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -262,22 +264,24 @@ __kernel void m02710_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -342,22 +346,24 @@ __kernel void m02710_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP0(MD5_I , a, b, c, d, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); @@ -537,22 +543,24 @@ __kernel void m02710_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -641,22 +649,24 @@ __kernel void m02710_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -721,22 +731,24 @@ __kernel void m02710_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP0(MD5_I , a, b, c, d, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); diff --git a/OpenCL/m02710_a1-optimized.cl b/OpenCL/m02710_a1-optimized.cl index 88bed4e77..1f619d8e0 100644 --- a/OpenCL/m02710_a1-optimized.cl +++ b/OpenCL/m02710_a1-optimized.cl @@ -215,22 +215,24 @@ __kernel void m02710_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -319,22 +321,24 @@ __kernel void m02710_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -399,22 +403,24 @@ __kernel void m02710_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP0(MD5_I , a, b, c, d, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); @@ -653,22 +659,24 @@ __kernel void m02710_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -757,22 +765,24 @@ __kernel void m02710_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -837,22 +847,24 @@ __kernel void m02710_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP0(MD5_I , a, b, c, d, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); diff --git a/OpenCL/m02710_a3-optimized.cl b/OpenCL/m02710_a3-optimized.cl index 3ee386f05..5310fcf77 100644 --- a/OpenCL/m02710_a3-optimized.cl +++ b/OpenCL/m02710_a3-optimized.cl @@ -138,22 +138,24 @@ void m02710m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -242,22 +244,24 @@ void m02710m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -322,22 +326,24 @@ void m02710m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP0(MD5_I , a, b, c, d, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); @@ -491,22 +497,24 @@ void m02710s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -595,22 +603,24 @@ void m02710s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -675,22 +685,24 @@ void m02710s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP0(MD5_I , a, b, c, d, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); diff --git a/OpenCL/m02810_a0-optimized.cl b/OpenCL/m02810_a0-optimized.cl index d4ceaf17a..487a3846f 100644 --- a/OpenCL/m02810_a0-optimized.cl +++ b/OpenCL/m02810_a0-optimized.cl @@ -158,22 +158,24 @@ __kernel void m02810_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -262,22 +264,24 @@ __kernel void m02810_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -343,22 +347,24 @@ __kernel void m02810_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); @@ -538,22 +544,24 @@ __kernel void m02810_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -642,22 +650,24 @@ __kernel void m02810_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -723,22 +733,24 @@ __kernel void m02810_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); diff --git a/OpenCL/m02810_a1-optimized.cl b/OpenCL/m02810_a1-optimized.cl index 501f96228..c9ed71e7e 100644 --- a/OpenCL/m02810_a1-optimized.cl +++ b/OpenCL/m02810_a1-optimized.cl @@ -215,22 +215,24 @@ __kernel void m02810_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -319,22 +321,24 @@ __kernel void m02810_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -400,22 +404,24 @@ __kernel void m02810_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); @@ -654,22 +660,24 @@ __kernel void m02810_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -758,22 +766,24 @@ __kernel void m02810_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -839,22 +849,24 @@ __kernel void m02810_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); diff --git a/OpenCL/m02810_a3-optimized.cl b/OpenCL/m02810_a3-optimized.cl index f689b4596..ce90d6543 100644 --- a/OpenCL/m02810_a3-optimized.cl +++ b/OpenCL/m02810_a3-optimized.cl @@ -138,22 +138,24 @@ void m02810m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -242,22 +244,24 @@ void m02810m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -323,22 +327,24 @@ void m02810m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); @@ -492,22 +498,24 @@ void m02810s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -596,22 +604,24 @@ void m02810s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -677,22 +687,24 @@ void m02810s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); diff --git a/OpenCL/m03710_a0-optimized.cl b/OpenCL/m03710_a0-optimized.cl index ee224c8b7..36dcaa316 100644 --- a/OpenCL/m03710_a0-optimized.cl +++ b/OpenCL/m03710_a0-optimized.cl @@ -160,22 +160,24 @@ __kernel void m03710_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -293,22 +295,24 @@ __kernel void m03710_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -485,22 +489,24 @@ __kernel void m03710_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -618,22 +624,24 @@ __kernel void m03710_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m03710_a1-optimized.cl b/OpenCL/m03710_a1-optimized.cl index 20100ba2e..6ea7a3254 100644 --- a/OpenCL/m03710_a1-optimized.cl +++ b/OpenCL/m03710_a1-optimized.cl @@ -217,22 +217,24 @@ __kernel void m03710_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -350,22 +352,24 @@ __kernel void m03710_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -601,22 +605,24 @@ __kernel void m03710_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -734,22 +740,24 @@ __kernel void m03710_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m03710_a3-optimized.cl b/OpenCL/m03710_a3-optimized.cl index 23c7bb6b2..a10895add 100644 --- a/OpenCL/m03710_a3-optimized.cl +++ b/OpenCL/m03710_a3-optimized.cl @@ -140,22 +140,24 @@ void m03710m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -273,22 +275,24 @@ void m03710m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -439,22 +443,24 @@ void m03710s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -572,22 +578,24 @@ void m03710s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); diff --git a/OpenCL/m03800_a0-optimized.cl b/OpenCL/m03800_a0-optimized.cl index d2c1d2a72..91f7f9728 100644 --- a/OpenCL/m03800_a0-optimized.cl +++ b/OpenCL/m03800_a0-optimized.cl @@ -205,22 +205,24 @@ __kernel void m03800_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -454,22 +456,24 @@ __kernel void m03800_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m03800_a1-optimized.cl b/OpenCL/m03800_a1-optimized.cl index d326cc295..d5078ed2b 100644 --- a/OpenCL/m03800_a1-optimized.cl +++ b/OpenCL/m03800_a1-optimized.cl @@ -263,22 +263,24 @@ __kernel void m03800_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -572,22 +574,24 @@ __kernel void m03800_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m03800_a3-optimized.cl b/OpenCL/m03800_a3-optimized.cl index 8937ae02d..1dede5e57 100644 --- a/OpenCL/m03800_a3-optimized.cl +++ b/OpenCL/m03800_a3-optimized.cl @@ -196,22 +196,24 @@ void m03800m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, t1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, t3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, t1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, t1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, t0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, t1[3], MD5C31, MD5S31); @@ -430,22 +432,24 @@ void m03800s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, t1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, t3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, t1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, t1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, t0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, t1[3], MD5C31, MD5S31); diff --git a/OpenCL/m03910_a0-optimized.cl b/OpenCL/m03910_a0-optimized.cl index aab7d4e79..033798630 100644 --- a/OpenCL/m03910_a0-optimized.cl +++ b/OpenCL/m03910_a0-optimized.cl @@ -158,22 +158,24 @@ __kernel void m03910_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -262,22 +264,24 @@ __kernel void m03910_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -343,22 +347,24 @@ __kernel void m03910_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); @@ -538,22 +544,24 @@ __kernel void m03910_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -642,22 +650,24 @@ __kernel void m03910_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -723,22 +733,24 @@ __kernel void m03910_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); diff --git a/OpenCL/m03910_a1-optimized.cl b/OpenCL/m03910_a1-optimized.cl index 029b695f0..9330e6c9f 100644 --- a/OpenCL/m03910_a1-optimized.cl +++ b/OpenCL/m03910_a1-optimized.cl @@ -215,22 +215,24 @@ __kernel void m03910_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -319,22 +321,24 @@ __kernel void m03910_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -400,22 +404,24 @@ __kernel void m03910_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); @@ -654,22 +660,24 @@ __kernel void m03910_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -758,22 +766,24 @@ __kernel void m03910_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -839,22 +849,24 @@ __kernel void m03910_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); diff --git a/OpenCL/m03910_a3-optimized.cl b/OpenCL/m03910_a3-optimized.cl index 44c445558..a3375c930 100644 --- a/OpenCL/m03910_a3-optimized.cl +++ b/OpenCL/m03910_a3-optimized.cl @@ -138,22 +138,24 @@ void m03910m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -242,22 +244,24 @@ void m03910m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -323,22 +327,24 @@ void m03910m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); @@ -492,22 +498,24 @@ void m03910s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -596,22 +604,24 @@ void m03910s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -677,22 +687,24 @@ void m03910s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP0(MD5_Go, c, d, a, b, MD5C1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, MD5C1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, MD5C20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, r_14, MD5C23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, r_00, MD5C29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, MD5C2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, MD5C2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, MD5C2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, MD5C2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, MD5C20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, r_14, MD5C23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, r_00, MD5C29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, MD5C2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, MD5C2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, MD5C2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, r_00, MD5C30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, MD5C31, MD5S31); diff --git a/OpenCL/m04010_a0-optimized.cl b/OpenCL/m04010_a0-optimized.cl index 670ad734c..ba1769926 100644 --- a/OpenCL/m04010_a0-optimized.cl +++ b/OpenCL/m04010_a0-optimized.cl @@ -186,22 +186,24 @@ __kernel void m04010_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -319,22 +321,24 @@ __kernel void m04010_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -537,22 +541,24 @@ __kernel void m04010_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -670,22 +676,24 @@ __kernel void m04010_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m04010_a1-optimized.cl b/OpenCL/m04010_a1-optimized.cl index 26312cca9..8f88f6a0e 100644 --- a/OpenCL/m04010_a1-optimized.cl +++ b/OpenCL/m04010_a1-optimized.cl @@ -242,22 +242,24 @@ __kernel void m04010_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -375,22 +377,24 @@ __kernel void m04010_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -651,22 +655,24 @@ __kernel void m04010_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -784,22 +790,24 @@ __kernel void m04010_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m04010_a3-optimized.cl b/OpenCL/m04010_a3-optimized.cl index 27b641c88..4271b8f71 100644 --- a/OpenCL/m04010_a3-optimized.cl +++ b/OpenCL/m04010_a3-optimized.cl @@ -160,22 +160,24 @@ void m04010m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -293,22 +295,24 @@ void m04010m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -479,22 +483,24 @@ void m04010s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -612,22 +618,24 @@ void m04010s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); diff --git a/OpenCL/m04110_a0-optimized.cl b/OpenCL/m04110_a0-optimized.cl index 353ad58c2..93c750a62 100644 --- a/OpenCL/m04110_a0-optimized.cl +++ b/OpenCL/m04110_a0-optimized.cl @@ -231,22 +231,24 @@ __kernel void m04110_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -364,22 +366,24 @@ __kernel void m04110_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -627,22 +631,24 @@ __kernel void m04110_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -760,22 +766,24 @@ __kernel void m04110_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m04110_a1-optimized.cl b/OpenCL/m04110_a1-optimized.cl index 4f0f74e3e..7b82f5286 100644 --- a/OpenCL/m04110_a1-optimized.cl +++ b/OpenCL/m04110_a1-optimized.cl @@ -289,22 +289,24 @@ __kernel void m04110_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -422,22 +424,24 @@ __kernel void m04110_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -745,22 +749,24 @@ __kernel void m04110_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -878,22 +884,24 @@ __kernel void m04110_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m04110_a3-optimized.cl b/OpenCL/m04110_a3-optimized.cl index 996419a32..62f832dba 100644 --- a/OpenCL/m04110_a3-optimized.cl +++ b/OpenCL/m04110_a3-optimized.cl @@ -188,22 +188,24 @@ void m04110m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -321,22 +323,24 @@ void m04110m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -535,22 +539,24 @@ void m04110s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -668,22 +674,24 @@ void m04110s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); diff --git a/OpenCL/m04310_a0-optimized.cl b/OpenCL/m04310_a0-optimized.cl index 4aa3a57ae..ed0a10291 100644 --- a/OpenCL/m04310_a0-optimized.cl +++ b/OpenCL/m04310_a0-optimized.cl @@ -158,22 +158,24 @@ __kernel void m04310_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -262,22 +264,24 @@ __kernel void m04310_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -452,22 +456,24 @@ __kernel void m04310_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -556,22 +562,24 @@ __kernel void m04310_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m04310_a1-optimized.cl b/OpenCL/m04310_a1-optimized.cl index a466f6461..e84d6b11b 100644 --- a/OpenCL/m04310_a1-optimized.cl +++ b/OpenCL/m04310_a1-optimized.cl @@ -215,22 +215,24 @@ __kernel void m04310_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -319,22 +321,24 @@ __kernel void m04310_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -568,22 +572,24 @@ __kernel void m04310_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -672,22 +678,24 @@ __kernel void m04310_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m04310_a3-optimized.cl b/OpenCL/m04310_a3-optimized.cl index 0cc2a8edb..5144765bd 100644 --- a/OpenCL/m04310_a3-optimized.cl +++ b/OpenCL/m04310_a3-optimized.cl @@ -138,22 +138,24 @@ void m04310m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -242,22 +244,24 @@ void m04310m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -406,22 +410,24 @@ void m04310s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -510,22 +516,24 @@ void m04310s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); diff --git a/OpenCL/m04400_a0-optimized.cl b/OpenCL/m04400_a0-optimized.cl index d202fe503..8af708e24 100644 --- a/OpenCL/m04400_a0-optimized.cl +++ b/OpenCL/m04400_a0-optimized.cl @@ -288,22 +288,24 @@ __kernel void m04400_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); @@ -608,22 +610,24 @@ __kernel void m04400_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); diff --git a/OpenCL/m04400_a1-optimized.cl b/OpenCL/m04400_a1-optimized.cl index f21d3a031..bae51e157 100644 --- a/OpenCL/m04400_a1-optimized.cl +++ b/OpenCL/m04400_a1-optimized.cl @@ -344,22 +344,24 @@ __kernel void m04400_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); @@ -722,22 +724,24 @@ __kernel void m04400_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); diff --git a/OpenCL/m04400_a3-optimized.cl b/OpenCL/m04400_a3-optimized.cl index 12296a5af..db9766240 100644 --- a/OpenCL/m04400_a3-optimized.cl +++ b/OpenCL/m04400_a3-optimized.cl @@ -245,22 +245,24 @@ void m04400m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); @@ -516,22 +518,24 @@ void m04400s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); diff --git a/OpenCL/m04700_a0-optimized.cl b/OpenCL/m04700_a0-optimized.cl index 1baff719b..38d87fe58 100644 --- a/OpenCL/m04700_a0-optimized.cl +++ b/OpenCL/m04700_a0-optimized.cl @@ -135,22 +135,24 @@ __kernel void m04700_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -444,22 +446,24 @@ __kernel void m04700_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m04700_a1-optimized.cl b/OpenCL/m04700_a1-optimized.cl index 3ab2308a9..d64fa0ac5 100644 --- a/OpenCL/m04700_a1-optimized.cl +++ b/OpenCL/m04700_a1-optimized.cl @@ -188,22 +188,24 @@ __kernel void m04700_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -552,22 +554,24 @@ __kernel void m04700_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m04700_a3-optimized.cl b/OpenCL/m04700_a3-optimized.cl index 2b6547fdc..42dced0eb 100644 --- a/OpenCL/m04700_a3-optimized.cl +++ b/OpenCL/m04700_a3-optimized.cl @@ -106,22 +106,24 @@ void m04700m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); @@ -380,22 +382,24 @@ void m04700s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); diff --git a/OpenCL/m04800_a0-optimized.cl b/OpenCL/m04800_a0-optimized.cl index 3a6b3ce9b..feaa00511 100644 --- a/OpenCL/m04800_a0-optimized.cl +++ b/OpenCL/m04800_a0-optimized.cl @@ -171,22 +171,24 @@ __kernel void m04800_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -386,22 +388,24 @@ __kernel void m04800_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m04800_a1-optimized.cl b/OpenCL/m04800_a1-optimized.cl index eaeac5da4..f8dd5ce5b 100644 --- a/OpenCL/m04800_a1-optimized.cl +++ b/OpenCL/m04800_a1-optimized.cl @@ -241,22 +241,24 @@ __kernel void m04800_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -516,22 +518,24 @@ __kernel void m04800_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m04800_a3-optimized.cl b/OpenCL/m04800_a3-optimized.cl index 9c9f7d887..f43840754 100644 --- a/OpenCL/m04800_a3-optimized.cl +++ b/OpenCL/m04800_a3-optimized.cl @@ -158,22 +158,24 @@ void m04800m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); @@ -354,22 +356,24 @@ void m04800s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w7_t, MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, wc_t, MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w5_t, MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w8_t, MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wb_t, MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, we_t, MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w1_t, MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w4_t, MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w7_t, MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, wa_t, MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, wd_t, MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t, MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t, MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w6_t, MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w9_t, MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, wc_t, MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, wf_t, MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t, MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w5_t, MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w8_t, MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wb_t, MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, we_t, MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w1_t, MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w4_t, MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w7_t, MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, wa_t, MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, wd_t, MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t, MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t, MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w6_t, MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w9_t, MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, wc_t, MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, wf_t, MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t, MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t, MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w7_t, MD5C31, MD5S31); diff --git a/OpenCL/m05100_a0-optimized.cl b/OpenCL/m05100_a0-optimized.cl index 2c87262b6..a22f9da34 100644 --- a/OpenCL/m05100_a0-optimized.cl +++ b/OpenCL/m05100_a0-optimized.cl @@ -105,22 +105,24 @@ __kernel void m05100_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -263,22 +265,24 @@ __kernel void m05100_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m05100_a1-optimized.cl b/OpenCL/m05100_a1-optimized.cl index e31fdaf48..2b011ac85 100644 --- a/OpenCL/m05100_a1-optimized.cl +++ b/OpenCL/m05100_a1-optimized.cl @@ -158,22 +158,24 @@ __kernel void m05100_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -371,22 +373,24 @@ __kernel void m05100_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m05100_a3-optimized.cl b/OpenCL/m05100_a3-optimized.cl index ddc2806f6..7ac911ae6 100644 --- a/OpenCL/m05100_a3-optimized.cl +++ b/OpenCL/m05100_a3-optimized.cl @@ -98,22 +98,24 @@ void m05100m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, t1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, t3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, t1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, t1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, t0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, t1[3], MD5C31, MD5S31); @@ -243,22 +245,24 @@ void m05100s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, t1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, t3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, t1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, t1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, t0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, t1[3], MD5C31, MD5S31); diff --git a/OpenCL/m09900_a0-optimized.cl b/OpenCL/m09900_a0-optimized.cl index 0a9062187..7f061a17a 100644 --- a/OpenCL/m09900_a0-optimized.cl +++ b/OpenCL/m09900_a0-optimized.cl @@ -100,22 +100,24 @@ __kernel void m09900_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -195,22 +197,24 @@ __kernel void m09900_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -344,22 +348,24 @@ __kernel void m09900_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -439,22 +445,24 @@ __kernel void m09900_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m09900_a1-optimized.cl b/OpenCL/m09900_a1-optimized.cl index dd49af5b6..34d6c60ab 100644 --- a/OpenCL/m09900_a1-optimized.cl +++ b/OpenCL/m09900_a1-optimized.cl @@ -158,22 +158,24 @@ __kernel void m09900_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -253,22 +255,24 @@ __kernel void m09900_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -462,22 +466,24 @@ __kernel void m09900_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -557,22 +563,24 @@ __kernel void m09900_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m09900_a3-optimized.cl b/OpenCL/m09900_a3-optimized.cl index 9fa5702af..612425066 100644 --- a/OpenCL/m09900_a3-optimized.cl +++ b/OpenCL/m09900_a3-optimized.cl @@ -170,22 +170,24 @@ void m09900m (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); @@ -248,22 +250,24 @@ void m09900m (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP (MD5_Go, c, d, a, b, t1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, t3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, t1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, t1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, t0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, t1[3], MD5C31, MD5S31); @@ -461,22 +465,24 @@ void m09900s (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP0(MD5_Go, c, d, a, b, G_w7c1e, MD5S12); MD5_STEP0(MD5_Go, b, c, d, a, G_wcc1f, MD5S13); - MD5_STEP0(MD5_H , a, b, c, d, H_w5c20, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w8c21, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wbc22, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wec23, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w1c24, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_w4c25, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w7c26, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_wac27, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_wdc28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0, H_w0c29, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_w3c2a, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w6c2b, MD5S23); - MD5_STEP0(MD5_H , a, b, c, d, H_w9c2c, MD5S20); - MD5_STEP0(MD5_H , d, a, b, c, H_wcc2d, MD5S21); - MD5_STEP0(MD5_H , c, d, a, b, H_wfc2e, MD5S22); - MD5_STEP0(MD5_H , b, c, d, a, H_w2c2f, MD5S23); + u32x t; + + MD5_STEP0(MD5_H1, a, b, c, d, H_w5c20, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w8c21, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wbc22, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wec23, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w1c24, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_w4c25, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w7c26, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_wac27, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_wdc28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0, H_w0c29, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_w3c2a, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w6c2b, MD5S23); + MD5_STEP0(MD5_H1, a, b, c, d, H_w9c2c, MD5S20); + MD5_STEP0(MD5_H2, d, a, b, c, H_wcc2d, MD5S21); + MD5_STEP0(MD5_H1, c, d, a, b, H_wfc2e, MD5S22); + MD5_STEP0(MD5_H2, b, c, d, a, H_w2c2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0, I_w0c30, MD5S30); MD5_STEP0(MD5_I , d, a, b, c, I_w7c31, MD5S31); @@ -539,22 +545,24 @@ void m09900s (u32 w[16], const u32 pw_len, __global pw_t *pws, __global const ke MD5_STEP (MD5_Go, c, d, a, b, t1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, t3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, t1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, t2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, t3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, t3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, t0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, t1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, t2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, t3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, t3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, t0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, t0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, t1[3], MD5C31, MD5S31); diff --git a/OpenCL/m11000_a0-optimized.cl b/OpenCL/m11000_a0-optimized.cl index 80ffd8660..46666ed7c 100644 --- a/OpenCL/m11000_a0-optimized.cl +++ b/OpenCL/m11000_a0-optimized.cl @@ -161,22 +161,24 @@ __kernel void m11000_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -258,22 +260,24 @@ __kernel void m11000_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -468,22 +472,24 @@ __kernel void m11000_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -565,22 +571,24 @@ __kernel void m11000_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); diff --git a/OpenCL/m11000_a1-optimized.cl b/OpenCL/m11000_a1-optimized.cl index 20994e412..0e28c2769 100644 --- a/OpenCL/m11000_a1-optimized.cl +++ b/OpenCL/m11000_a1-optimized.cl @@ -217,22 +217,24 @@ __kernel void m11000_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -314,22 +316,24 @@ __kernel void m11000_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -582,22 +586,24 @@ __kernel void m11000_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -679,22 +685,24 @@ __kernel void m11000_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); diff --git a/OpenCL/m11000_a3-optimized.cl b/OpenCL/m11000_a3-optimized.cl index 9a2899172..e3022e3f0 100644 --- a/OpenCL/m11000_a3-optimized.cl +++ b/OpenCL/m11000_a3-optimized.cl @@ -135,22 +135,24 @@ void m11000m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -232,22 +234,24 @@ void m11000m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -410,22 +414,24 @@ void m11000s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -507,22 +513,24 @@ void m11000s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); diff --git a/OpenCL/m11100_a0-optimized.cl b/OpenCL/m11100_a0-optimized.cl index 0fef2992a..65fadf386 100644 --- a/OpenCL/m11100_a0-optimized.cl +++ b/OpenCL/m11100_a0-optimized.cl @@ -202,22 +202,24 @@ __kernel void m11100_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -312,22 +314,24 @@ __kernel void m11100_m04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -546,22 +550,24 @@ __kernel void m11100_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -656,22 +662,24 @@ __kernel void m11100_s04 (__global pw_t *pws, __constant const kernel_rule_t *ru MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m11100_a1-optimized.cl b/OpenCL/m11100_a1-optimized.cl index 9547cc095..1691ae96f 100644 --- a/OpenCL/m11100_a1-optimized.cl +++ b/OpenCL/m11100_a1-optimized.cl @@ -260,22 +260,24 @@ __kernel void m11100_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -370,22 +372,24 @@ __kernel void m11100_m04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -664,22 +668,24 @@ __kernel void m11100_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); @@ -774,22 +780,24 @@ __kernel void m11100_s04 (__global pw_t *pws, __global const kernel_rule_t *rule MD5_STEP (MD5_Go, c, d, a, b, w1[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1[3], MD5C31, MD5S31); diff --git a/OpenCL/m11100_a3-optimized.cl b/OpenCL/m11100_a3-optimized.cl index 7a53fe340..597ff4b43 100644 --- a/OpenCL/m11100_a3-optimized.cl +++ b/OpenCL/m11100_a3-optimized.cl @@ -179,22 +179,24 @@ void m11100m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -289,22 +291,24 @@ void m11100m (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -494,22 +498,24 @@ void m11100s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31); @@ -604,22 +610,24 @@ void m11100s (u32 w0[4], u32 w1[4], u32 w2[4], u32 w3[4], const u32 pw_len, __gl MD5_STEP (MD5_Go, c, d, a, b, w1_t[3], MD5C1e, MD5S12); MD5_STEP (MD5_Go, b, c, d, a, w3_t[0], MD5C1f, MD5S13); - MD5_STEP (MD5_H , a, b, c, d, w1_t[1], MD5C20, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w2_t[0], MD5C21, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w2_t[3], MD5C22, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w3_t[2], MD5C23, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w0_t[1], MD5C24, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w1_t[0], MD5C25, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w1_t[3], MD5C26, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w2_t[2], MD5C27, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w3_t[1], MD5C28, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w0_t[0], MD5C29, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w0_t[3], MD5C2a, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w1_t[2], MD5C2b, MD5S23); - MD5_STEP (MD5_H , a, b, c, d, w2_t[1], MD5C2c, MD5S20); - MD5_STEP (MD5_H , d, a, b, c, w3_t[0], MD5C2d, MD5S21); - MD5_STEP (MD5_H , c, d, a, b, w3_t[3], MD5C2e, MD5S22); - MD5_STEP (MD5_H , b, c, d, a, w0_t[2], MD5C2f, MD5S23); + u32x t; + + MD5_STEP (MD5_H1, a, b, c, d, w1_t[1], MD5C20, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w2_t[0], MD5C21, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w2_t[3], MD5C22, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w3_t[2], MD5C23, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w0_t[1], MD5C24, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w1_t[0], MD5C25, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w1_t[3], MD5C26, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w2_t[2], MD5C27, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w3_t[1], MD5C28, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w0_t[0], MD5C29, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w0_t[3], MD5C2a, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w1_t[2], MD5C2b, MD5S23); + MD5_STEP (MD5_H1, a, b, c, d, w2_t[1], MD5C2c, MD5S20); + MD5_STEP (MD5_H2, d, a, b, c, w3_t[0], MD5C2d, MD5S21); + MD5_STEP (MD5_H1, c, d, a, b, w3_t[3], MD5C2e, MD5S22); + MD5_STEP (MD5_H2, b, c, d, a, w0_t[2], MD5C2f, MD5S23); MD5_STEP (MD5_I , a, b, c, d, w0_t[0], MD5C30, MD5S30); MD5_STEP (MD5_I , d, a, b, c, w1_t[3], MD5C31, MD5S31);