crypto_rol_u32
*a = crypto_rol_u32(*a + md4_g(b, c, d) + x + 0x5a827999UL, s);
*a = crypto_rol_u32(*a + md4_h(b, c, d) + x + 0x6ed9eba1UL, s);
*a = crypto_rol_u32(*a + md4_f(b, c, d) + x, s);
*a = b + crypto_rol_u32(*a + md5_F(b, c, d) + x + t, s);
*a = b + crypto_rol_u32(*a + md5_G(b, c, d) + x + t, s);
*a = b + crypto_rol_u32(*a + md5_H(b, c, d) + x + t, s);
*a = b + crypto_rol_u32(*a + md5_I(b, c, d) + x + t, s);
a=crypto_rol_u32(a,s)+e; \
c=crypto_rol_u32(c,10); }
a=crypto_rol_u32(a,s)+e; \
c=crypto_rol_u32(c,10); }
a=crypto_rol_u32(a,s)+e; \
c=crypto_rol_u32(c,10); }
a=crypto_rol_u32(a,s)+e; \
c=crypto_rol_u32(c,10); }
a=crypto_rol_u32(a,s)+e; \
c=crypto_rol_u32(c,10); }
T = crypto_rol_u32(*a, 5) + Ch(*b, *c, *d) + *e + Kt + Wt;
*c = crypto_rol_u32(*b, 30);
T = crypto_rol_u32(*a, 5) + Parity(*b, *c, *d) + *e + Kt + Wt;
*c = crypto_rol_u32(*b, 30);
T = crypto_rol_u32(*a, 5) + Maj(*b, *c, *d) + *e + Kt + Wt;
*c = crypto_rol_u32(*b, 30);
T = crypto_rol_u32(*a, 5) + Parity(*b, *c, *d) + *e + Kt + Wt;
*c = crypto_rol_u32(*b, 30);
*W0 = crypto_rol_u32(W13 ^ W8 ^ W2 ^ *W0, 1);
#define P0(X) (X ^ crypto_rol_u32(X, 9) ^ crypto_rol_u32(X, 17))
#define P1(X) (X ^ crypto_rol_u32(X, 15) ^ crypto_rol_u32(X, 23))
(P1(W0 ^ W7 ^ crypto_rol_u32(W13, 15)) ^ crypto_rol_u32(W3, 7) ^ W10)
const SM3_WORD A12 = crypto_rol_u32(A, 12); \
const SM3_WORD SS1 = crypto_rol_u32(A12_SM, 7); \
B = crypto_rol_u32(B, 9); \
F = crypto_rol_u32(F, 19); \
return t ^ crypto_rol_u32(t, 2) ^ crypto_rol_u32(t, 10) ^
crypto_rol_u32(t, 18) ^ crypto_rol_u32(t, 24);
crypto_rol_u32(SM4_SBOX_T[(uint8_t)(X >> 16)], 24) ^
crypto_rol_u32(SM4_SBOX_T[(uint8_t)(X >> 8)], 16) ^
crypto_rol_u32(SM4_SBOX_T[(uint8_t)X], 8);
t = t ^ crypto_rol_u32(t, 13) ^ crypto_rol_u32(t, 23);