setcc type inference

Versions: 2.6, 2.7

As for now, inputs of setcc node have to be same as its result, which is in contradiction to definition in TargetSelectionDAG.td.
Example: i32reg <- (setgt i16, i16)
Logically, this should be correct. However, tablegen considers it incorrect. Why?

Note: I'm currently trying to rewrite tablegen to process this correctly.