/* Make sure if conversion for two instructions does not break
   anything (if it runs).  */

/* { dg-do run } */
/* { dg-options "-O2 -std=c99" } */
/* { dg-require-effective-target int32plus } */

#include <limits.h>
#include <assert.h>

__attribute__ ((noinline))
int foo (int *a, int n)
{
  int min = 999999;
  int bla = 0;
  for (int i = 0; i < n; i++)
    {
      if (a[i] < min)
	{
	  min = a[i];
	  bla = 1;
	}
    }

  if (bla)
    min += 1;
  return min;
}

int main()
{
  int a[] = {2, 1, -13, INT_MAX, INT_MIN, 0};

  int res = foo (a, sizeof (a) / sizeof (a[0]));

  assert (res == (INT_MIN + 1));
}
