float return_loop_0()
{
	for (float i = 0.0;i < 10.0; ++i) 
	{
		if (i == 5.0) 
		{
			return i;
		}
	}
	return 0.0;
}
half4 main(float2 xy)
{
	float _0_sum = 0.0;
	for (float _1_i = 0.0;_1_i < 10.0; ++_1_i) 
	{
		if (_1_i < 5.0) 
		{
			continue;
		}
		_0_sum += _1_i;
	}
	float _2_sum = 0.0;
	for (float _3_i = 0.0;_3_i < 10.0; ++_3_i) 
	{
		if (_3_i > 5.0) 
		{
			break;
		}
		_2_sum += _3_i;
	}
	float _4_sum = 0.0;
	for (float _5_i = 0.12300000339746475;_5_i < 0.60000002384185791; _5_i += 0.11100000143051147) 
	{
		_4_sum += _5_i;
	}
	return half4(half4(half(return_loop_0()), half(_0_sum), half(_2_sum), half(_4_sum)));
}
