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

int main()
{
  int var6 = -1267827473;
  do {
      ++var6;
      double s1_115[4], s2_108[4];
      int var8 = -161498264;
      do {
	  ++var8;
	  int var12 = 1260960076;
	  for (; var12 <= 1260960080; ++var12) {
	      int var13 = 1960990937;
	      do {
		  ++var13;
		  int var14 = 2128638723;
		  for (; var14 <= 2128638728; ++var14) {
		      int var22 = -1141190839;
		      do {
			  ++var22;
			  if (s2_108 > s1_115) {
			      int var23 = -890798748;
			      do {
				  ++var23;
				  long long e_119[4];
			      } while (var23 <= -890798746);
			  }
		      } while (var22 <= -1141190829);
		  }
	      } while (var13 <= 1960990946);
	  }
      } while (var8 <= -161498254);
  } while (var6 <= -1267827462);
}
