/* Check that mov.b and mov.w displacement insns are generated.
   If this is working properly, there should be no base address adjustments
   outside the mov insns.  */
/* { dg-do compile }  */
/* { dg-options "-O1" } */
/* { dg-final { scan-assembler-not "add|sub" } } */

typedef struct 
{
  char	a;
  char	b;
  char	c;
  char	d;

  short e;
  short f;

  int g;
  int h;
} X;

void
testfunc_00 (X* x)
{
  x->g = x->b | x->c;
  x->h = x->e | x->f;
  x->d = x->g;
  x->f = x->h;
}

int testfunc_01 (X* x)
{
  return x->b | x->e | x->g;
}
