lib/Transforms/Utils/SimplifyLibCalls.cpp currently contains an optimization where it converts calls to printf that don't have any floating-point arguments into calls to iprintf, on targets which have it, which is like printf except without support for floating-point numbers. This allows programs that don't need floating-point formatting to avoid linking in the floating-point formatting code, which can save several thousands of bytes.
This patch adds a similar optimization for when there are floating-point arguments, but no 128-bit floating-point arguments, transforming such calls to printf_no_Lf (though I'm more than happy to accept suggestions for better names). Since 128-bit floats are implemented in software, printf_no_Lf can't be quite as small as iprintf, but it still can be significantly smaller than the full printf.
This part is a separate and can be split out?