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
      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))
      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  }