They are slightly different.
Hoisting means that you have pulled some operation out of a loop because the loop itself does not affect the result of the operation. In your case, you are hoisting the conditional test out of the while loop.
Re-ordering means changing the sequence of instructions in a way that does not affect the result. Typically this would be adjacent instructions with no data dependencies, e.g. it does not matter which order you perform the following two statements:
int a = x;
int b = y;
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…