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