This adds the code gen and testing for logical operations on i1 values without using condition registers (when possible).
It handles:
- logical operations with SETCC inputs
- logical operations with TRUNCATE inputs
- logical operations with logical operations as inputs
- zero extensions of logical operations on i1 values (as above)
Part of asking for the enum is wondering why it's necessary. It seems odd to say "getLogicOpInGPR" to want to know whether or not to put something in a GPR.