1/* { dg-do compile { target lp64 } } */ 2/* { dg-options "-O2 -mincoming-stack-boundary=3" } */ 3 4typedef struct { 5 unsigned int buf[4]; 6 unsigned char in[64]; 7} MD4_CTX; 8 9static void 10MD4Transform (unsigned int buf[4], const unsigned int in[16]) 11{ 12 unsigned int a, b, c, d; 13 (b) += ((((c)) & ((d))) | ((~(c)) & ((a)))) + (in[7]); 14 (a) += ((((b)) & ((c))) | ((~(b)) & ((d)))) + (in[8]); 15 (d) += ((((a)) & ((b))) | ((~(a)) & ((c)))) + (in[9]); 16 buf[3] += d; 17} 18 19void __attribute__((ms_abi)) 20MD4Update (MD4_CTX *ctx, const unsigned char *buf) 21{ 22 MD4Transform( ctx->buf, (unsigned int *)ctx->in); 23 MD4Transform( ctx->buf, (unsigned int *)ctx->in); 24} 25