rs6000: MMA built-in dies with incorrect sharing of tree nodes error
authorPeter Bergner <bergner@linux.ibm.com>
Tue, 1 Sep 2020 18:47:44 +0000 (13:47 -0500)
committerPeter Bergner <bergner@linux.ibm.com>
Tue, 1 Sep 2020 18:49:40 +0000 (13:49 -0500)
commit8bc0f24d7a20d89383859907b875a26ce59dc6c8
tree2dae8a0ae1ce5360567f9daa9f61be394c55385f
parentb1850c617b14eedaf60b358f3b7d4707cff73b8a
rs6000: MMA built-in dies with incorrect sharing of tree nodes error

When we expand our MMA built-ins into gimple, we erroneously reused the
accumulator memory reference for both the source input value as well as
the destination output value.  This led to a tree sharing error.
The solution is to create separate memory references for the input
and output values.

2020-09-01  Peter Bergner  <bergner@linux.ibm.com>

gcc/
PR target/96808
* config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Do not
reuse accumulator memory reference for source and destination accesses.

gcc/testsuite/
PR target/96808
* gcc.target/powerpc/pr96808.c: New test.
gcc/config/rs6000/rs6000-call.c
gcc/testsuite/gcc.target/powerpc/pr96808.c [new file with mode: 0644]