This patch originated from D46562 and is a proper subset, with some issues addressed for fmul.
I've never looked at HonorSignDependentRoundingFPMath:
/// If this is enabled (set to true), the code generator must /// assume that the rounding mode may dynamically change.
That would seem to preclude a bunch of transforms, but I don't know why that's guarding this particular transform.
We need to split this diff into its own patch and find the existing tests and/or add new tests, so we know what's going on here.
fmul and fdiv should be treated the same with regard to fneg transforms (although instcombine probably gets this wrong).