summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr77673.c
blob: b41cf04e7717bb2871d077018ec914aa21c08f3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* { 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" } } */