/* { dg-do compile { target fpic } } */
/* { dg-require-effective-target bswap } */
/* { dg-options "-O2 -fPIC -fdump-tree-bswap" } */
/* { dg-additional-options "-march=z900" { target s390*-*-* } } */

void mach_parse_compressed(unsigned char* ptr, unsigned long int* val)
{
  if (ptr[0] < 0xC0U) {
    *val = ptr[0] + ptr[1];
    return;
  }

  *val = ((unsigned long int)(ptr[0]) << 24)
    | ((unsigned long int)(ptr[1]) << 16)
    | ((unsigned long int)(ptr[2]) << 8)
    | ptr[3];
}

/* { dg-final { scan-tree-dump-not "load_dst_\\d+ =.* if \\(" "bswap" } } */
