public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/102976] New: MMA test case emits wrong code when building a vector pair
@ 2021-10-28 0:33 bergner at gcc dot gnu.org
2021-10-28 0:35 ` [Bug target/102976] " bergner at gcc dot gnu.org
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: bergner at gcc dot gnu.org @ 2021-10-28 0:33 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102976
Bug ID: 102976
Summary: MMA test case emits wrong code when building a vector
pair
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: bergner at gcc dot gnu.org
Target Milestone: ---
The following test case generates wrong code using trunk and GCC11:
[bergner@pike debug]$ cat bug.c
#include <altivec.h>
void
bug (__vector_pair *dst)
{
register vector unsigned char vec0 asm ("vs44");
register vector unsigned char vec1 asm ("vs32");
__builtin_vsx_build_pair (dst, vec0, vec1);
}
[bergner@pike debug]$ gcc -S -O2 -mcpu=power10 bug.c
[bergner@pike debug]$ cat bug.s
bug:
xxlor 0,32,32
xxlor 1,32,32
stxvp 0,0(3)
blr
The above only copies one of the inputs into the output pair, when it should
copy both r44 and r32, like so:
bug:
xxlor 0,44,44
xxlor 1,32,32
stxvp 0,0(3)
blr
This is due to a missing early clobber in the MMA patterns. I have a fix I'm
testing.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/102976] MMA test case emits wrong code when building a vector pair
2021-10-28 0:33 [Bug target/102976] New: MMA test case emits wrong code when building a vector pair bergner at gcc dot gnu.org
@ 2021-10-28 0:35 ` bergner at gcc dot gnu.org
2021-10-28 0:35 ` bergner at gcc dot gnu.org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: bergner at gcc dot gnu.org @ 2021-10-28 0:35 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102976
Peter Bergner <bergner at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |chip.kerchner at ibm dot com,
| |dje at gcc dot gnu.org,
| |raji at linux dot vnet.ibm.com,
| |segher at gcc dot gnu.org,
| |wschmidt at gcc dot gnu.org
Assignee|unassigned at gcc dot gnu.org |bergner at gcc dot gnu.org
Target| |powerpc*-*-*
Last reconfirmed| |2021-10-27
--- Comment #1 from Peter Bergner <bergner at gcc dot gnu.org> ---
Mine.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/102976] MMA test case emits wrong code when building a vector pair
2021-10-28 0:33 [Bug target/102976] New: MMA test case emits wrong code when building a vector pair bergner at gcc dot gnu.org
2021-10-28 0:35 ` [Bug target/102976] " bergner at gcc dot gnu.org
@ 2021-10-28 0:35 ` bergner at gcc dot gnu.org
2021-10-28 1:44 ` bergner at gcc dot gnu.org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: bergner at gcc dot gnu.org @ 2021-10-28 0:35 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102976
Peter Bergner <bergner at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Ever confirmed|0 |1
Last reconfirmed|2021-10-27 00:00:00 |2021-10-28
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/102976] MMA test case emits wrong code when building a vector pair
2021-10-28 0:33 [Bug target/102976] New: MMA test case emits wrong code when building a vector pair bergner at gcc dot gnu.org
2021-10-28 0:35 ` [Bug target/102976] " bergner at gcc dot gnu.org
2021-10-28 0:35 ` bergner at gcc dot gnu.org
@ 2021-10-28 1:44 ` bergner at gcc dot gnu.org
2021-11-16 18:15 ` cvs-commit at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: bergner at gcc dot gnu.org @ 2021-10-28 1:44 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102976
Peter Bergner <bergner at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
URL| |https://gcc.gnu.org/piperma
| |il/gcc-patches/2021-October
| |/582749.html
Target Milestone|--- |12.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/102976] MMA test case emits wrong code when building a vector pair
2021-10-28 0:33 [Bug target/102976] New: MMA test case emits wrong code when building a vector pair bergner at gcc dot gnu.org
` (2 preceding siblings ...)
2021-10-28 1:44 ` bergner at gcc dot gnu.org
@ 2021-11-16 18:15 ` cvs-commit at gcc dot gnu.org
2021-11-29 17:12 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-16 18:15 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102976
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Peter Bergner <bergner@gcc.gnu.org>:
https://gcc.gnu.org/g:4cdf7db9a39d18bd536d816a5751d4d3cf23808b
commit r12-5319-g4cdf7db9a39d18bd536d816a5751d4d3cf23808b
Author: Peter Bergner <bergner@linux.ibm.com>
Date: Tue Nov 16 12:14:22 2021 -0600
rs6000: MMA test case emits wrong code when building a vector pair
[PR102976]
PR102976 shows a test case where we generate wrong code when building
a vector pair from 2 vector registers. The bug here is that with unlucky
register assignments, we can clobber one of the input operands before
we write both registers of the output operand. The solution is to use
early-clobbers in the assemble pair and accumulator patterns.
2021-11-16 Peter Bergner <bergner@linux.ibm.com>
gcc/
PR target/102976
* config/rs6000/mma.md (*vsx_assemble_pair): Add early-clobber for
output operand.
(*mma_assemble_acc): Likewise.
gcc/testsuite/
PR target/102976
* gcc.target/powerpc/pr102976.c: New test.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/102976] MMA test case emits wrong code when building a vector pair
2021-10-28 0:33 [Bug target/102976] New: MMA test case emits wrong code when building a vector pair bergner at gcc dot gnu.org
` (3 preceding siblings ...)
2021-11-16 18:15 ` cvs-commit at gcc dot gnu.org
@ 2021-11-29 17:12 ` cvs-commit at gcc dot gnu.org
2022-01-15 6:00 ` cvs-commit at gcc dot gnu.org
2022-02-23 18:08 ` bergner at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-29 17:12 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102976
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Peter Bergner
<bergner@gcc.gnu.org>:
https://gcc.gnu.org/g:2b6cfe7c4ee98b2c38e6a6d98742f1efb2fc9a79
commit r11-9341-g2b6cfe7c4ee98b2c38e6a6d98742f1efb2fc9a79
Author: Peter Bergner <bergner@linux.ibm.com>
Date: Tue Nov 16 12:14:22 2021 -0600
rs6000: MMA test case emits wrong code when building a vector pair
[PR102976]
PR102976 shows a test case where we generate wrong code when building
a vector pair from 2 vector registers. The bug here is that with unlucky
register assignments, we can clobber one of the input operands before
we write both registers of the output operand. The solution is to use
early-clobbers in the assemble pair and accumulator patterns.
2021-11-16 Peter Bergner <bergner@linux.ibm.com>
gcc/
PR target/102976
* config/rs6000/mma.md (*vsx_assemble_pair): Add early-clobber for
output operand.
(*mma_assemble_acc): Likewise.
gcc/testsuite/
PR target/102976
* gcc.target/powerpc/pr102976.c: New test.
(cherry picked from commit 4cdf7db9a39d18bd536d816a5751d4d3cf23808b)
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/102976] MMA test case emits wrong code when building a vector pair
2021-10-28 0:33 [Bug target/102976] New: MMA test case emits wrong code when building a vector pair bergner at gcc dot gnu.org
` (4 preceding siblings ...)
2021-11-29 17:12 ` cvs-commit at gcc dot gnu.org
@ 2022-01-15 6:00 ` cvs-commit at gcc dot gnu.org
2022-02-23 18:08 ` bergner at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-01-15 6:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102976
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Peter Bergner
<bergner@gcc.gnu.org>:
https://gcc.gnu.org/g:7729d2c96d5eac9537c78d368bbc037bea13f988
commit r10-10399-g7729d2c96d5eac9537c78d368bbc037bea13f988
Author: Peter Bergner <bergner@linux.ibm.com>
Date: Tue Nov 16 12:14:22 2021 -0600
rs6000: MMA test case emits wrong code when building a vector pair
[PR102976]
PR102976 shows a test case where we generate wrong code when building
a vector pair from 2 vector registers. The bug here is that with unlucky
register assignments, we can clobber one of the input operands before
we write both registers of the output operand. The solution is to use
early-clobbers in the assemble pair and accumulator patterns.
2021-11-16 Peter Bergner <bergner@linux.ibm.com>
gcc/
PR target/102976
* config/rs6000/mma.md (*vsx_assemble_pair): Add early-clobber for
output operand.
(*mma_assemble_acc): Likewise.
gcc/testsuite/
PR target/102976
* gcc.target/powerpc/pr102976.c: New test.
(cherry picked from commit 4cdf7db9a39d18bd536d816a5751d4d3cf23808b)
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/102976] MMA test case emits wrong code when building a vector pair
2021-10-28 0:33 [Bug target/102976] New: MMA test case emits wrong code when building a vector pair bergner at gcc dot gnu.org
` (5 preceding siblings ...)
2022-01-15 6:00 ` cvs-commit at gcc dot gnu.org
@ 2022-02-23 18:08 ` bergner at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: bergner at gcc dot gnu.org @ 2022-02-23 18:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102976
Peter Bergner <bergner at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #5 from Peter Bergner <bergner at gcc dot gnu.org> ---
Fixed everywhere.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-02-23 18:08 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-28 0:33 [Bug target/102976] New: MMA test case emits wrong code when building a vector pair bergner at gcc dot gnu.org
2021-10-28 0:35 ` [Bug target/102976] " bergner at gcc dot gnu.org
2021-10-28 0:35 ` bergner at gcc dot gnu.org
2021-10-28 1:44 ` bergner at gcc dot gnu.org
2021-11-16 18:15 ` cvs-commit at gcc dot gnu.org
2021-11-29 17:12 ` cvs-commit at gcc dot gnu.org
2022-01-15 6:00 ` cvs-commit at gcc dot gnu.org
2022-02-23 18:08 ` 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).