Some of the LLVM debug output is incorrect ["UNKNOWN"] when a MachineInstr is generated during the MachineCombiner pass and the relevant debug output is enabled.
The fix is generic, but the test case [based on machine-reduced Eigen3 C++ code] is AArch64-specific.
Debug output before the fix:
NEW INSTR %vreg15<def> = UNKNOWN %vreg1, %vreg13<kill>, %vreg11<kill>
Debug output after the fix:
NEW INSTR %vreg15<def> = MADDXrrr %vreg1, %vreg13<kill>, %vreg11<kill>
I [Abe] searched hard for a less-kludgy way to accomplish this, but did not find one.
If you don't pass TII to dump() it should just get nullptr as a default value.