Currently preservesResourceLen in machine combiner pass requires that new instructions resource length is not bigger than old instructions resource length.
I think this is ok if size of new instructions is not bigger than size of old instructions. For now I think all reassociations in machine combiner pass meets this condition.
But in patch https://reviews.llvm.org/D80175, we add a new reassociation that combines fma + fma + fma to (fmul + fma + fma + fadd), this will cause callee in getResourceLength, getCycles sometimes return same resource length for new and old instructions and sometimes new resource length is 1 bigger than old resource length.
Add this hook to make it target specific to accept some extension in resource length but we may still benefit from reducing in data depth.
Is there a reason to make this int16_t? If yes, it should be specified in the code comment. If not, just use plain 'int' or 'unsigned'.