https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123260
--- Comment #2 from Yichao Yu <yyc1992 at gmail dot com> ---
The pattern matching also doesn't work for direct use of `fma` function, i.e.,
```
static inline void f(Complex &a, Complex &b, Complex &c)
{
a = {fma(-b.imag, c.imag, fma(b.real, c.real, a.real)),
fma(b.imag, c.real, fma(b.real, c.imag, a.imag))};
}
```
even when in this case the instruction matches exactly what the source code
asked for, with no floating point contraction required.
