TargetLowering has ``` /// Return the ValueType of the result of SETCC operations. virtual EVT getSetCCResultType(const DataLayout &DL, LLVMContext &Context, EVT VT) const; ``` Should we add similar hooks to target lowering? Add virtual = 0 functions to LegalizerInfo and every target has to implement them? I looked through the internals of LegalizerInfo, but *I* failed to sneak out the result types. [SelectionDAG] Expand [US]CMP using arithmetic on boolean values instead of selects https://github.com/llvm/llvm-project/pull/98774 relies on the result type of setccs. Alternvatives?