It should be noted that performing your comparisons using multiple Boolean variables means that you cannot take advantage of short-circuit evaluation.
VS2012, compiled with default release mode settings:
..
Resulting disassembly:
...
Compilers are very, very smart.
They are, hopefully, also very smart not to do that when the evaluations of the temporary variables have side effects because that would change the meaning of the program. Your example works because the individual conditions does not have any observable side effects. If the expressions have side effects, or otherwise relies on short circuiting to prevent the evaluation of an expression in the condition (for example checking for null-pointer before accessing a member of an object), expanding the expressions to temporary variables before the if-statement won't work.