From 4070ed0ab5ba660e03f20caa11dfd9ee1040ec83 Mon Sep 17 00:00:00 2001 From: Gabriele Gristina Date: Sun, 13 Feb 2022 10:54:25 +0100 Subject: [PATCH] Added missing code to get vectors work with Metal on hash-type 4710 --- OpenCL/m04710_a0-optimized.cl | 18 +++++++++--------- OpenCL/m04710_a1-optimized.cl | 18 +++++++++--------- OpenCL/m04710_a3-optimized.cl | 18 +++++++++--------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/OpenCL/m04710_a0-optimized.cl b/OpenCL/m04710_a0-optimized.cl index ab1c8d3fc..ea50b7d79 100644 --- a/OpenCL/m04710_a0-optimized.cl +++ b/OpenCL/m04710_a0-optimized.cl @@ -715,10 +715,10 @@ KERNEL_FQ void m04710_m04 (KERN_ATTR_RULES ()) we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); SHA1_STEP (SHA1_F1, c, d, e, a, b, we_t); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); - b += digest[1] - SHA1M_B; - c += digest[2] - SHA1M_C; - d += digest[3] - SHA1M_D; - e += digest[4] - SHA1M_E; + b += digest[1] - make_u32x (SHA1M_B); + c += digest[2] - make_u32x (SHA1M_C); + d += digest[3] - make_u32x (SHA1M_D); + e += digest[4] - make_u32x (SHA1M_E); COMPARE_M_SIMD (d, e, c, b); } @@ -1428,16 +1428,16 @@ KERNEL_FQ void m04710_s04 (KERN_ATTR_RULES ()) wc_t = hc_rotl32 ((w9_t ^ w4_t ^ we_t ^ wc_t), 1u); SHA1_STEP (SHA1_F1, e, a, b, c, d, wc_t); wd_t = hc_rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u); SHA1_STEP (SHA1_F1, d, e, a, b, c, wd_t); - if (MATCHES_NONE_VS (e + digest[4] - SHA1M_E, search[1])) + if (MATCHES_NONE_VS ((e + digest[4] - make_u32x (SHA1M_E)), search[1])) continue; we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); SHA1_STEP (SHA1_F1, c, d, e, a, b, we_t); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); - b += digest[1] - SHA1M_B; - c += digest[2] - SHA1M_C; - d += digest[3] - SHA1M_D; - e += digest[4] - SHA1M_E; + b += digest[1] - make_u32x (SHA1M_B); + c += digest[2] - make_u32x (SHA1M_C); + d += digest[3] - make_u32x (SHA1M_D); + e += digest[4] - make_u32x (SHA1M_E); COMPARE_S_SIMD (d, e, c, b); } diff --git a/OpenCL/m04710_a1-optimized.cl b/OpenCL/m04710_a1-optimized.cl index 04edfca11..248903fbc 100644 --- a/OpenCL/m04710_a1-optimized.cl +++ b/OpenCL/m04710_a1-optimized.cl @@ -768,10 +768,10 @@ KERNEL_FQ void m04710_m04 (KERN_ATTR_BASIC ()) we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); SHA1_STEP (SHA1_F1, c, d, e, a, b, we_t); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); - b += digest[1] - SHA1M_B; - c += digest[2] - SHA1M_C; - d += digest[3] - SHA1M_D; - e += digest[4] - SHA1M_E; + b += digest[1] - make_u32x (SHA1M_B); + c += digest[2] - make_u32x (SHA1M_C); + d += digest[3] - make_u32x (SHA1M_D); + e += digest[4] - make_u32x (SHA1M_E); COMPARE_M_SIMD (d, e, c, b); } @@ -1536,16 +1536,16 @@ KERNEL_FQ void m04710_s04 (KERN_ATTR_BASIC ()) wc_t = hc_rotl32 ((w9_t ^ w4_t ^ we_t ^ wc_t), 1u); SHA1_STEP (SHA1_F1, e, a, b, c, d, wc_t); wd_t = hc_rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u); SHA1_STEP (SHA1_F1, d, e, a, b, c, wd_t); - if (MATCHES_NONE_VS (e + digest[4] - SHA1M_E, search[1])) + if (MATCHES_NONE_VS ((e + digest[4] - make_u32x (SHA1M_E)), search[1])) continue; we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); SHA1_STEP (SHA1_F1, c, d, e, a, b, we_t); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); - b += digest[1] - SHA1M_B; - c += digest[2] - SHA1M_C; - d += digest[3] - SHA1M_D; - e += digest[4] - SHA1M_E; + b += digest[1] - make_u32x (SHA1M_B); + c += digest[2] - make_u32x (SHA1M_C); + d += digest[3] - make_u32x (SHA1M_D); + e += digest[4] - make_u32x (SHA1M_E); COMPARE_S_SIMD (d, e, c, b); } diff --git a/OpenCL/m04710_a3-optimized.cl b/OpenCL/m04710_a3-optimized.cl index e34f9b648..9fad29489 100644 --- a/OpenCL/m04710_a3-optimized.cl +++ b/OpenCL/m04710_a3-optimized.cl @@ -683,10 +683,10 @@ DECLSPEC void m04710m (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); SHA1_STEP (SHA1_F1, c, d, e, a, b, we_t); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); - b += digest[1] - SHA1M_B; - c += digest[2] - SHA1M_C; - d += digest[3] - SHA1M_D; - e += digest[4] - SHA1M_E; + b += digest[1] - make_u32x (SHA1M_B); + c += digest[2] - make_u32x (SHA1M_C); + d += digest[3] - make_u32x (SHA1M_D); + e += digest[4] - make_u32x (SHA1M_E); COMPARE_M_SIMD (d, e, c, b); } @@ -1358,16 +1358,16 @@ DECLSPEC void m04710s (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w wc_t = hc_rotl32 ((w9_t ^ w4_t ^ we_t ^ wc_t), 1u); SHA1_STEP (SHA1_F1, e, a, b, c, d, wc_t); wd_t = hc_rotl32 ((wa_t ^ w5_t ^ wf_t ^ wd_t), 1u); SHA1_STEP (SHA1_F1, d, e, a, b, c, wd_t); - if (MATCHES_NONE_VS (e + digest[4] - SHA1M_E, search[1])) + if (MATCHES_NONE_VS ((e + digest[4] - make_u32x (SHA1M_E)), search[1])) continue; we_t = hc_rotl32 ((wb_t ^ w6_t ^ w0_t ^ we_t), 1u); SHA1_STEP (SHA1_F1, c, d, e, a, b, we_t); wf_t = hc_rotl32 ((wc_t ^ w7_t ^ w1_t ^ wf_t), 1u); SHA1_STEP (SHA1_F1, b, c, d, e, a, wf_t); - b += digest[1] - SHA1M_B; - c += digest[2] - SHA1M_C; - d += digest[3] - SHA1M_D; - e += digest[4] - SHA1M_E; + b += digest[1] - make_u32x (SHA1M_B); + c += digest[2] - make_u32x (SHA1M_C); + d += digest[3] - make_u32x (SHA1M_D); + e += digest[4] - make_u32x (SHA1M_E); COMPARE_S_SIMD (d, e, c, b); }