aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/pr69140.c
blob: 2c345dd75bc5f928e82c8cdb8e8a3fc237455f47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* { dg-do compile { target lp64 } } */
/* { dg-options "-O2 -mincoming-stack-boundary=3" } */

typedef struct {
  unsigned int buf[4];
  unsigned char in[64];
} MD4_CTX;

static void
MD4Transform (unsigned int buf[4], const unsigned int in[16])
{
  unsigned int a, b, c, d;
  (b) += ((((c)) & ((d))) | ((~(c)) & ((a)))) + (in[7]);
  (a) += ((((b)) & ((c))) | ((~(b)) & ((d)))) + (in[8]);
  (d) += ((((a)) & ((b))) | ((~(a)) & ((c)))) + (in[9]);
  buf[3] += d;
}

void __attribute__((ms_abi))
MD4Update (MD4_CTX *ctx, const unsigned char *buf)
{
  MD4Transform( ctx->buf, (unsigned int *)ctx->in);
  MD4Transform( ctx->buf, (unsigned int *)ctx->in);
}