]> gcc.gnu.org Git - gcc.git/commit
Do not generate vmaddfp and vnmsubfp
authorMichael Meissner <meissner@linux.ibm.com>
Mon, 10 Apr 2023 03:32:27 +0000 (23:32 -0400)
committerMichael Meissner <meissner@linux.ibm.com>
Mon, 10 Apr 2023 03:34:08 +0000 (23:34 -0400)
commit725bcdeec60771cb9ee387978716028b64ea1b7f
tree8efc92d73bcccbac46e0e8dfcbeff395ddf2d757
parentafa87bd5f7b126e20268aa959441cde2e02bba0e
Do not generate vmaddfp and vnmsubfp

This is version 3 of the patch.  This is essentially version 1 with the removal
of changes to altivec.md, and cleanup of the comments.

Version 2 generated the vmaddfp and vnmsubfp instructions if -Ofast was used,
and those changes are deleted in this patch.

The Altivec instructions vmaddfp and vnmsubfp have different rounding behaviors
than the VSX xvmaddsp and xvnmsubsp instructions due to VSCR[NJ] and other
corner cases.  In particular, generating these instructions seems to break
Eigen on big endian systems.

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

gcc/

PR target/70243
* config/rs6000/vsx.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.059 seconds and 6 git commands to generate.