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.

Reply via email to