This is the SDAG translation of D120253 :
https://alive2.llvm.org/ce/z/qHpmNn
The SDAG nodes can have different operand types than the result value. We can see an example of that with AArch64 - the funnel shift amount is an i64 rather than i32.
We may need to make that match even more flexible to handle post-legalization nodes, but I have not stepped into that yet.