r246586 - in /branches/ARM/sve-branch/gcc: conf...

rsandifo@gcc.gnu.org rsandifo@gcc.gnu.org
Thu Mar 30 11:38:00 GMT 2017


Author: rsandifo
Date: Thu Mar 30 11:38:10 2017
New Revision: 246586

URL: https://gcc.gnu.org/viewcvs?rev=246586&root=gcc&view=rev
Log:
Support fused multiply-adds in fully-masked reductions

This patch adds support for fusing a conditional add or subtract
with a multiplication, so that we can use fused multiply-add and
multiply-subtract operations for fully-masked reductions.

All current conditional X operations have the form "do X or don't do X
to the first operand" (add/don't add to first operand, etc.).  However,
the FMA optabs and functions are ordered so that the accumulator comes
last.  There were two obvious ways of resolving this: break the
convention for conditional operators and have "add/don't add to the
final operand" or break the convention for FMA and put the accumulator
first.  The patch goes for the latter, but adds _REV to make it obvious
that the operands are in a different order.

Added:
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_reduc_6.c
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_reduc_7.c
Modified:
    branches/ARM/sve-branch/gcc/config/aarch64/aarch64-sve.md
    branches/ARM/sve-branch/gcc/config/aarch64/iterators.md
    branches/ARM/sve-branch/gcc/doc/md.texi
    branches/ARM/sve-branch/gcc/genmatch.c
    branches/ARM/sve-branch/gcc/internal-fn.c
    branches/ARM/sve-branch/gcc/internal-fn.def
    branches/ARM/sve-branch/gcc/optabs.def
    branches/ARM/sve-branch/gcc/testsuite/gcc.target/aarch64/sve_reduc_3.c
    branches/ARM/sve-branch/gcc/tree-ssa-math-opts.c



More information about the Gcc-cvs mailing list