Added missing code to get vectors work with Metal on hash-type 4510

This commit is contained in:
Gabriele Gristina 2022-02-13 10:48:20 +01:00
parent 7ea244bba7
commit 5fc3d7550e
3 changed files with 27 additions and 27 deletions

View File

@ -1015,10 +1015,10 @@ KERNEL_FQ void m04510_m04 (KERN_ATTR_RULES ())
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);
}
@ -2028,7 +2028,7 @@ KERNEL_FQ void m04510_s04 (KERN_ATTR_RULES ())
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);
@ -2036,10 +2036,10 @@ KERNEL_FQ void m04510_s04 (KERN_ATTR_RULES ())
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);
}

View File

@ -1070,10 +1070,10 @@ KERNEL_FQ void m04510_m04 (KERN_ATTR_BASIC ())
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);
}
@ -2140,7 +2140,7 @@ KERNEL_FQ void m04510_s04 (KERN_ATTR_BASIC ())
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);
@ -2148,10 +2148,10 @@ KERNEL_FQ void m04510_s04 (KERN_ATTR_BASIC ())
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);
}

View File

@ -969,10 +969,10 @@ DECLSPEC void m04510m (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
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);
}
@ -1930,7 +1930,7 @@ DECLSPEC void m04510s (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
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);
@ -1938,10 +1938,10 @@ DECLSPEC void m04510s (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
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);
}