/* { dg-options "-march=v10" { target { cris*-*-* && { ! march_option } } } } */
struct i
{
  long long i_size;
  struct a *i_mapping;
};
struct p
{
  struct a *mapping;
  long index;
};
extern void b (struct p*, unsigned);
extern void u (struct p*);
void
block_page_mkwrite (struct i *i, struct p *p)
{
  unsigned end = 0;
  long long size = 0;
  size = i->i_size;
  if ((p->mapping != i->i_mapping))
    goto out_unlock;
  if (((p->index + 1) << 13) > size)
    end = size & ~(~(((1UL) << 13) - 1));
  b (p, end);
out_unlock:
  u (p);
}
