float return_loop_0()
{
	for (float i = 0.0;i < 10.0; ++i) 
	{
		if (i == 5.0) 
		{
			return i;
		}
	}
	return 0.0;
}
half4 main()
{
	float _1_sum = 0.0;
	for (float _2_i = 0.0;_2_i < 10.0; ++_2_i) 
	{
		if (_2_i < 5.0) 
		{
			continue;
		}
		_1_sum += _2_i;
	}
	float _4_sum = 0.0;
	for (float _5_i = 0.0;_5_i < 10.0; ++_5_i) 
	{
		if (_5_i > 5.0) 
		{
			break;
		}
		_4_sum += _5_i;
	}
	float _7_sum = 0.0;
	for (float _8_i = 0.12300000339746475;_8_i < 0.60000002384185791; _8_i += 0.11100000143051147) 
	{
		_7_sum += _8_i;
	}
	return half4(half4(half(return_loop_0()), half(_1_sum), half(_4_sum), half(_7_sum)));
}
