public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
@ 2022-01-13 16:02 ` segher at gcc dot gnu.org
2023-04-05 22:27 ` chip.kerchner at ibm dot com
` (9 subsequent siblings)
10 siblings, 0 replies; 11+ messages in thread
From: segher at gcc dot gnu.org @ 2022-01-13 16:02 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70243
Segher Boessenkool <segher at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |WAITING
CC| |segher at gcc dot gnu.org
--- Comment #2 from Segher Boessenkool <segher at gcc dot gnu.org> ---
Do you have a testcase?
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
2022-01-13 16:02 ` [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems segher at gcc dot gnu.org
@ 2023-04-05 22:27 ` chip.kerchner at ibm dot com
2023-04-05 22:52 ` chip.kerchner at ibm dot com
` (8 subsequent siblings)
10 siblings, 0 replies; 11+ messages in thread
From: chip.kerchner at ibm dot com @ 2023-04-05 22:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70243
Chip Kerchner <chip.kerchner at ibm dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |chip.kerchner at ibm dot com
--- Comment #3 from Chip Kerchner <chip.kerchner at ibm dot com> ---
This is showing up in some of the binaries generated by Eigen (with GCC13).
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
2022-01-13 16:02 ` [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems segher at gcc dot gnu.org
2023-04-05 22:27 ` chip.kerchner at ibm dot com
@ 2023-04-05 22:52 ` chip.kerchner at ibm dot com
2023-04-05 23:06 ` meissner at gcc dot gnu.org
` (7 subsequent siblings)
10 siblings, 0 replies; 11+ messages in thread
From: chip.kerchner at ibm dot com @ 2023-04-05 22:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70243
--- Comment #4 from Chip Kerchner <chip.kerchner at ibm dot com> ---
It shows up as a rounding difference on BE machines.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2023-04-05 22:52 ` chip.kerchner at ibm dot com
@ 2023-04-05 23:06 ` meissner at gcc dot gnu.org
2023-04-06 18:23 ` segher at gcc dot gnu.org
` (6 subsequent siblings)
10 siblings, 0 replies; 11+ messages in thread
From: meissner at gcc dot gnu.org @ 2023-04-05 23:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70243
--- Comment #5 from Michael Meissner <meissner at gcc dot gnu.org> ---
Created attachment 54814
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54814&action=edit
Test case
This is test case that shows the generation of fmaddfp and fnmsubfp.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2023-04-05 23:06 ` meissner at gcc dot gnu.org
@ 2023-04-06 18:23 ` segher at gcc dot gnu.org
2023-04-10 3:34 ` cvs-commit at gcc dot gnu.org
` (5 subsequent siblings)
10 siblings, 0 replies; 11+ messages in thread
From: segher at gcc dot gnu.org @ 2023-04-06 18:23 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70243
Segher Boessenkool <segher at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
Priority|P3 |P1
--- Comment #6 from Segher Boessenkool <segher at gcc dot gnu.org> ---
We should not use any VMX insn unless explicitly asked for it, since those
do not work as expected if VSCR[NJ]=1, which unfortunately is the default on
Linux (but not on powerpc64le-linux; that is a separate (kernel) bug).
Rounding mode does not matter too much, if we have some subset of fast-math
anyway; the only rounding mode in VMX is round-to-nearest-ties-to-even, which
is the default for most everything else).
But NJ=1 makes arithmetic behave completely unexpectedly, and it isn't
actually faster than NJ=0 on modern hardware anyway. We cannot change the
default for setting NJ because some code might rely on it, unfortunately.
Luckily disabling generating all VMX insns automatically (i.e. without it
being explicitly asked for) isn't all that expensive, just ends up as a few
more move instructions here and there.
This isn't a regression, but we should have this in GCC 13.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
` (4 preceding siblings ...)
2023-04-06 18:23 ` segher at gcc dot gnu.org
@ 2023-04-10 3:34 ` cvs-commit at gcc dot gnu.org
2023-05-22 15:13 ` cvs-commit at gcc dot gnu.org
` (4 subsequent siblings)
10 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-04-10 3:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70243
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Michael Meissner <meissner@gcc.gnu.org>:
https://gcc.gnu.org/g:725bcdeec60771cb9ee387978716028b64ea1b7f
commit r13-7132-g725bcdeec60771cb9ee387978716028b64ea1b7f
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Sun Apr 9 23:32:27 2023 -0400
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.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
` (5 preceding siblings ...)
2023-04-10 3:34 ` cvs-commit at gcc dot gnu.org
@ 2023-05-22 15:13 ` cvs-commit at gcc dot gnu.org
2023-05-22 15:18 ` cvs-commit at gcc dot gnu.org
` (3 subsequent siblings)
10 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-05-22 15:13 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70243
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Michael Meissner
<meissner@gcc.gnu.org>:
https://gcc.gnu.org/g:3bb91d31a272d7fd9f02301df101e3041d5aeb5d
commit r12-9635-g3bb91d31a272d7fd9f02301df101e3041d5aeb5d
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Mon May 22 11:08:13 2023 -0400
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. 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-05-22 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. Back port from master
04/10/2023 change.
gcc/testsuite/
PR target/70243
* gcc.target/powerpc/pr70243.c: New test. Back port from master
04/10/2023 change.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
` (6 preceding siblings ...)
2023-05-22 15:13 ` cvs-commit at gcc dot gnu.org
@ 2023-05-22 15:18 ` cvs-commit at gcc dot gnu.org
2023-05-22 15:28 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
10 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-05-22 15:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70243
--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Michael Meissner
<meissner@gcc.gnu.org>:
https://gcc.gnu.org/g:d7d25bcfbd5ee5ef17fabeb67ad5e093cd975a36
commit r11-10807-gd7d25bcfbd5ee5ef17fabeb67ad5e093cd975a36
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Mon May 22 11:17:01 2023 -0400
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. 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/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.
Back
port from master 04/10/2023.
(vsx_nfmsv4sf4): Do not generate vnmsubfp.
gcc/testsuite/
PR target/70243
* gcc.target/powerpc/pr70243.c: New test. Back port from master
04/10/2023.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
` (7 preceding siblings ...)
2023-05-22 15:18 ` cvs-commit at gcc dot gnu.org
@ 2023-05-22 15:28 ` cvs-commit at gcc dot gnu.org
2023-05-23 13:19 ` bergner at gcc dot gnu.org
2023-06-02 16:16 ` bergner at gcc dot gnu.org
10 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-05-22 15:28 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70243
--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Michael Meissner
<meissner@gcc.gnu.org>:
https://gcc.gnu.org/g:c970030226341f0c7fa9f319b37786ca81703c6d
commit r10-11421-gc970030226341f0c7fa9f319b37786ca81703c6d
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Mon May 22 11:26:08 2023 -0400
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. 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-05-22 Michael Meissner <meissner@linux.ibm.com>
gcc/
PR target/70243
* config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.
Back
port from master 04/10/2023.
(vsx_nfmsv4sf4): Do not generate vnmsubfp.
gcc/testsuite/
PR target/70243
* gcc.target/powerpc/pr70243.c: New test. Back port from master
04/10/2023.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
` (8 preceding siblings ...)
2023-05-22 15:28 ` cvs-commit at gcc dot gnu.org
@ 2023-05-23 13:19 ` bergner at gcc dot gnu.org
2023-06-02 16:16 ` bergner at gcc dot gnu.org
10 siblings, 0 replies; 11+ messages in thread
From: bergner at gcc dot gnu.org @ 2023-05-23 13:19 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70243
--- Comment #11 from Peter Bergner <bergner at gcc dot gnu.org> ---
Mike, can we marked this as FIXED now? ...or are there other changes needed?
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
` (9 preceding siblings ...)
2023-05-23 13:19 ` bergner at gcc dot gnu.org
@ 2023-06-02 16:16 ` bergner at gcc dot gnu.org
10 siblings, 0 replies; 11+ messages in thread
From: bergner at gcc dot gnu.org @ 2023-06-02 16:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70243
Peter Bergner <bergner at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|NEW |RESOLVED
--- Comment #12 from Peter Bergner <bergner at gcc dot gnu.org> ---
Mike said offline we can mark this as FIXED.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-06-02 16:16 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-70243-4@http.gcc.gnu.org/bugzilla/>
2022-01-13 16:02 ` [Bug target/70243] PowerPC V4SFmode should not use Altivec instructions on VSX systems segher at gcc dot gnu.org
2023-04-05 22:27 ` chip.kerchner at ibm dot com
2023-04-05 22:52 ` chip.kerchner at ibm dot com
2023-04-05 23:06 ` meissner at gcc dot gnu.org
2023-04-06 18:23 ` segher at gcc dot gnu.org
2023-04-10 3:34 ` cvs-commit at gcc dot gnu.org
2023-05-22 15:13 ` cvs-commit at gcc dot gnu.org
2023-05-22 15:18 ` cvs-commit at gcc dot gnu.org
2023-05-22 15:28 ` cvs-commit at gcc dot gnu.org
2023-05-23 13:19 ` bergner at gcc dot gnu.org
2023-06-02 16:16 ` bergner at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).