Syntax
#define ROTR(x, n) (SHR(x, n) | ((x) << (32 - (n)))) ![]()
#define ROTR(x,n) (SHR(x,n) | (x << (32 - n)))![]()
#define ROTR(x,n) (SHR(x,n) | (x << (64 - n)))![]()
#define ROTR(x, n) (SHR(x, n) | ((x) << (32 - (n))))![]()
#define ROTR(x, n) (SHR((x), (n)) | ((x) << (64 - (n))))![]()
#define S0(x) (ROTR(x, 7) ^ ROTR(x,18) ^ SHR(x, 3))![]()
#define S1(x) (ROTR(x,17) ^ ROTR(x,19) ^ SHR(x,10))![]()
#define S2(x) (ROTR(x, 2) ^ ROTR(x,13) ^ ROTR(x,22))![]()
#define S3(x) (ROTR(x, 6) ^ ROTR(x,11) ^ ROTR(x,25))![]()
#define S0(x) (ROTR(x, 1) ^ ROTR(x, 8) ^ SHR(x, 7))![]()
#define S1(x) (ROTR(x,19) ^ ROTR(x,61) ^ SHR(x, 6))![]()
#define S2(x) (ROTR(x,28) ^ ROTR(x,34) ^ ROTR(x,39))![]()
#define S3(x) (ROTR(x,14) ^ ROTR(x,18) ^ ROTR(x,41))![]()
#define S0(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ SHR(x, 3))![]()
#define S1(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SHR(x, 10))![]()
#define S2(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22))![]()
#define S3(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25))![]()
#define S0(x) (ROTR(x, 1) ^ ROTR(x, 8) ^ SHR(x, 7))![]()
#define S1(x) (ROTR(x, 19) ^ ROTR(x, 61) ^ SHR(x, 6))![]()
#define S2(x) (ROTR(x, 28) ^ ROTR(x, 34) ^ ROTR(x, 39))![]()
#define S3(x) (ROTR(x, 14) ^ ROTR(x, 18) ^ ROTR(x, 41))