]> gcc.gnu.org Git - gcc.git/commit
Do not generate vmaddfp and vnmsubfp
authorMichael Meissner <meissner@linux.ibm.com>
Fri, 7 Apr 2023 18:34:25 +0000 (14:34 -0400)
committerMichael Meissner <meissner@linux.ibm.com>
Fri, 7 Apr 2023 18:34:25 +0000 (14:34 -0400)
commitdf4bca8fd580bb55b9afc2cf86b6f05d40fb2b7e
treec565b9df9b0bbc90a519ae7d103a41f41a97bab4
parentf0f18f83db79c42008c448f376e59b930acd1b53
Do not generate vmaddfp and vnmsubfp

The Altivec instructions vmaddfp and vnmsubfp have different rounding behaviors
than the VSX xvmaddsp and xvnmsubsp instructions.  In particular, generating
these instructions seems to break Eigen on big endian systems.

I have done bootstrap builds on power9 little endian (with both IEEE long
double and IBM long double).  I have also done the builds and test on a power8
big endian system (testing both 32-bit and 64-bit code generation).  Chip has
verified that it fixes the problem that Eigen encountered.  Can I check this
into the master GCC branch?  After a burn-in period, can I check this patch
into the active GCC branches?

Thanks in advance.

2023-04-07   Michael Meissner  <meissner@linux.ibm.com>

gcc/

PR target/70243
* config/rs6000/rs6000.md (vsx_fmav4sf4): Do not generate vmaddfp.
(vsx_nfmsv4sf4): Do not generate vnmsubfp.

gcc/testsuite/

PR target/70243
* gcc.target/powerpc/pr70243.c: New test.
gcc/config/rs6000/vsx.md
gcc/testsuite/gcc.target/powerpc/pr70243.c [new file with mode: 0644]
This page took 0.064215 seconds and 6 git commands to generate.