/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized" } */

/* We want this optimized as
<bb 2>:
  if (k != 0) goto <L2>; else goto <L3>;

<L3>:;
  i1 = j1;

<L2>:;
  return i1;

  This requires that i1 and j1 are changed into registers after they
  no longer have their address taken.  */

int f(int k, int i1, int j1)
{
  int *f1;
  if(k)
   f1 = &i1;
  else
   f1 = &j1;
  return *f1;
}

/* { dg-final { scan-tree-dump "i1 = j1" "optimized" } } */
/* { dg-final { scan-tree-dump "return i1;" "optimized" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
