compiler-rt builtins library should not just undefining fma for PPC, right (see https://gcc.gnu.org/onlinedocs/gccint/Soft-float-library-routines.html)? If so, maybe we should at least first try not generating fma for soft-float at the first place where fmul + fadd is fused, like tryEmitFMulAdd in clang front end?
I actually raised D154605 for that one, but it's only for X86.
I was relying on target-features containing "+fma", which is wrong. The review was raised just to get feedback from community working on various targets.
Plan is to disable fma-intrinsic from IR for all targets which doesn't support fma.