Just a comment on the documentation: Tamar Christina via Gcc-patches <gcc-patches@gcc.gnu.org> writes: > diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi > index > 9ec051e94e10cca9eec2773e1b8c01b74b6ea4db..60dc5b3ea6087c2824ad1467bc66e9cfebe9dcfc > 100644 > --- a/gcc/doc/md.texi > +++ b/gcc/doc/md.texi > @@ -6325,12 +6325,12 @@ Perform a vector multiply and accumulate that is > semantically the same as > a multiply and accumulate of complex numbers. > > @smallexample > - complex TYPE c[N]; > - complex TYPE a[N]; > - complex TYPE b[N]; > + complex TYPE op0[N]; > + complex TYPE op1[N]; > + complex TYPE op2[N]; > for (int i = 0; i < N; i += 1) > @{ > - c[i] += a[i] * b[i]; > + op2[i] += op1[i] * op2[i]; > @}
I think this should be: op0[i] = op1[i] * op2[i] + op3[i]; since operand 0 is the output and operand 3 is the accumulator input. Same idea for the others. For: > @@ -6415,12 +6415,12 @@ Perform a vector multiply that is semantically the > same as multiply of > complex numbers. > > @smallexample > - complex TYPE c[N]; > - complex TYPE a[N]; > - complex TYPE b[N]; > + complex TYPE op0[N]; > + complex TYPE op1[N]; > + complex TYPE op2[N]; > for (int i = 0; i < N; i += 1) > @{ > - c[i] = a[i] * b[i]; > + op2[i] = op0[i] * op1[i]; …this I think it should be: op0[i] = op1[i] * op2[i]; Thanks, Richard