rotl
return t ^ rotl(t, 2) ^ rotl(t, 10) ^ rotl(t, 18) ^ rotl(t, 24);
rotl(SM4_SBOX_T[(uint8_t)(X >> 16)], 24) ^
rotl(SM4_SBOX_T[(uint8_t)(X >> 8)], 16) ^
rotl(SM4_SBOX_T[(uint8_t)X], 8);
t = t ^ rotl(t, 13) ^ rotl(t, 23);
{ a = rotl(a, 13); \
c = rotl(c, 3); \
d = rotl(d, 7); \
b = rotl(b, 1); \
a = rotl(a, 5); \
c = rotl(c, 22); \
#ifndef rotl
b = rotl(h_fun(ctx, b, mo_key), 8);
l_key[i + 1] = rotl(a + 2 * b, 9);
blk[3] = rotl(blk[3], 1) ^ (t0 + 2 * t1 + l_key[4 * (i) + 9]); \
blk[1] = rotl(blk[1], 1) ^ (t0 + 2 * t1 + l_key[4 * (i) + 11])
blk[2] = rotl(blk[2], 1) ^ (t0 + t1 + l_key[4 * (i) + 10]); \
blk[0] = rotl(blk[0], 1) ^ (t0 + t1 + l_key[4 * (i) + 8]); \
r ^= rotl(l, 17); \
r ^= rotl(l, 3); \