instcombine pass will try to sink an instruction to the place where the value
is used when the CFG is very simple. However, this doesn't take the
function call into account.
While the sinking will reduce the live range of the result, it will increase the live range of related operands.
It is not clear whether overall, it is beneficial or not.
instcombine might not be the best place to make that kind of decision, , especially across function calls.
Here, instruction sinking is prohibit across function calls.
TargetTransformInfor::isLoweredToCall is used to decided whether the function will be become a really call or simplified into a different form.
instcombine tests use utils/update_test_checks.py