1 /* { dg-do compile { target lp64 } } */
2 /* { dg-options "-O2 -mincoming-stack-boundary=3" } */
3 
4 typedef struct {
5   unsigned int buf[4];
6   unsigned char in[64];
7 } MD4_CTX;
8 
9 static void
MD4Transform(unsigned int buf[4],const unsigned int in[16])10 MD4Transform (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 
19 void __attribute__((ms_abi))
MD4Update(MD4_CTX * ctx,const unsigned char * buf)20 MD4Update (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