/* { dg-require-effective-target int32plus } */

#include <stdio.h>
typedef struct { int x; int y;} S;
extern int foo(S*);
int hi = 0, lo = 0;

int main()
{
  S a;
  int r;
  a.x = (int) 0x00010000;
  a.y = 1;
  r = foo (&a);
  if (r == 2 && lo==0 && hi==1)
    {
      exit (0);
    }
  abort ();
}

typedef unsigned short u16;

__attribute__ ((noinline)) int foo (S* ptr)
{
  int a = ptr->x;
  int c = 0;
  u16 b = (u16) a;
  if (b != 0)
  {
    lo = 1;
    c += ptr->y;
  }
  b = a >> 16;
  if (b != 0)
  {
    hi = 1;
    c+= ptr->y;
  }
  c += ptr->y;
  return c;
}
