If we translate the expression (double)(long) i (where i is an int) for the JVM we will generate an i2l instruction (int to long) followed by an l2d (long to double) instruction. Can these two instructions be combined into an i2d (int to double) instruction? Now consider (double)(float) i. We now will generate an i2f instruction (int to float) followed by an f2d (float to double) instruction. Can these two nstructions be combined into an i2d instruction? In general what restrictions must be satisfied to allow two consecutive type conversion instructions to be combined into a single type conversion instruction?