public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug target/96236] New: __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode @ 2020-07-17 20:08 bergner at gcc dot gnu.org 2020-07-17 20:09 ` [Bug target/96236] " bergner at gcc dot gnu.org ` (5 more replies) 0 siblings, 6 replies; 7+ messages in thread From: bergner at gcc dot gnu.org @ 2020-07-17 20:08 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96236 Bug ID: 96236 Summary: __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode Product: gcc Version: 11.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 __builtin_mma_disassemble_acc built-in doesn't correctly account for little endian byte ordering of the pointer type passed to it is not a __vector_quad pointer as the following test case shows: bergner@pike:~/$ cat disassemble.c void buggy (void *dst) { __vector_quad acc; __builtin_mma_xxsetaccz (&acc); __builtin_mma_disassemble_acc (dst, &acc); } void foo (__vector_quad *dst) { __vector_quad acc; __builtin_mma_xxsetaccz (&acc); __builtin_mma_disassemble_acc (dst, &acc); } bergner@pike:~/$ gcc -S -O2 -mcpu=power10 disassemble.c bergner@pike:~/$ cat disassemble.s buggy: xxsetaccz 0 xxmfacc 0 stxv 0,0(3) stxv 1,16(3) stxv 2,32(3) stxv 3,48(3) blr foo: xxsetaccz 0 xxmfacc 0 stxvp 2,0(3) stxvp 0,32(3) blr ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/96236] __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode 2020-07-17 20:08 [Bug target/96236] New: __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode bergner at gcc dot gnu.org @ 2020-07-17 20:09 ` bergner at gcc dot gnu.org 2020-07-22 18:37 ` cvs-commit at gcc dot gnu.org ` (4 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: bergner at gcc dot gnu.org @ 2020-07-17 20:09 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96236 Peter Bergner <bergner at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2020-07-17 Ever confirmed|0 |1 Target| |powerpc64le-linux Assignee|unassigned at gcc dot gnu.org |bergner at gcc dot gnu.org --- Comment #1 from Peter Bergner <bergner at gcc dot gnu.org> --- Mine. This is broken in the FSF GCC 10 branch as well. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/96236] __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode 2020-07-17 20:08 [Bug target/96236] New: __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode bergner at gcc dot gnu.org 2020-07-17 20:09 ` [Bug target/96236] " bergner at gcc dot gnu.org @ 2020-07-22 18:37 ` cvs-commit at gcc dot gnu.org 2020-07-22 18:39 ` bergner at gcc dot gnu.org ` (3 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2020-07-22 18:37 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96236 --- 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:ae575662833d70cb7d74b9538096c7becc79af14 commit r11-2278-gae575662833d70cb7d74b9538096c7becc79af14 Author: Peter Bergner <bergner@linux.ibm.com> Date: Wed Jul 22 11:44:35 2020 -0500 rs6000: __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode PR96236 shows a problem where we don't correctly store our 512-bit accumulators correctly in little-endian mode. The patch below detects when we're doing a little-endian memory access and stores to the correct memory locations. 2020-07-22 Peter Bergner <bergner@linux.ibm.com> gcc/ PR target/96236 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Handle little-endian memory ordering. gcc/testsuite/ PR target/96236 * gcc.target/powerpc/mma-double-test.c: Update storing results for correct little-endian ordering. * gcc.target/powerpc/mma-single-test.c: Likewise. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/96236] __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode 2020-07-17 20:08 [Bug target/96236] New: __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode bergner at gcc dot gnu.org 2020-07-17 20:09 ` [Bug target/96236] " bergner at gcc dot gnu.org 2020-07-22 18:37 ` cvs-commit at gcc dot gnu.org @ 2020-07-22 18:39 ` bergner at gcc dot gnu.org 2020-07-22 19:26 ` bergner at gcc dot gnu.org ` (2 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: bergner at gcc dot gnu.org @ 2020-07-22 18:39 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96236 --- Comment #3 from Peter Bergner <bergner at gcc dot gnu.org> --- Fixed on trunk. I will backport to the GCC 10 release branch once it reopens. I would have set the target milestone to 10.3, but that version isn't an option right now. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/96236] __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode 2020-07-17 20:08 [Bug target/96236] New: __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode bergner at gcc dot gnu.org ` (2 preceding siblings ...) 2020-07-22 18:39 ` bergner at gcc dot gnu.org @ 2020-07-22 19:26 ` bergner at gcc dot gnu.org 2020-07-23 17:17 ` cvs-commit at gcc dot gnu.org 2020-07-23 19:35 ` bergner at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: bergner at gcc dot gnu.org @ 2020-07-22 19:26 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96236 Peter Bergner <bergner at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |10.3 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/96236] __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode 2020-07-17 20:08 [Bug target/96236] New: __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode bergner at gcc dot gnu.org ` (3 preceding siblings ...) 2020-07-22 19:26 ` bergner at gcc dot gnu.org @ 2020-07-23 17:17 ` cvs-commit at gcc dot gnu.org 2020-07-23 19:35 ` bergner at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2020-07-23 17:17 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96236 --- 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:5497677b497b95a261089d19f5295cc80f99a2b6 commit r10-8522-g5497677b497b95a261089d19f5295cc80f99a2b6 Author: Peter Bergner <bergner@linux.ibm.com> Date: Wed Jul 22 11:44:35 2020 -0500 rs6000: __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode PR96236 shows a problem where we don't correctly store our 512-bit accumulators correctly in little-endian mode. The patch below detects when we're doing a little-endian memory access and stores to the correct memory locations. 2020-07-22 Peter Bergner <bergner@linux.ibm.com> gcc/ PR target/96236 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Handle little-endian memory ordering. gcc/testsuite/ PR target/96236 * gcc.target/powerpc/mma-double-test.c: Update storing results for correct little-endian ordering. * gcc.target/powerpc/mma-single-test.c: Likewise. (cherry picked from commit ae575662833d70cb7d74b9538096c7becc79af14) ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/96236] __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode 2020-07-17 20:08 [Bug target/96236] New: __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode bergner at gcc dot gnu.org ` (4 preceding siblings ...) 2020-07-23 17:17 ` cvs-commit at gcc dot gnu.org @ 2020-07-23 19:35 ` bergner at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: bergner at gcc dot gnu.org @ 2020-07-23 19:35 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96236 Peter Bergner <bergner at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #5 from Peter Bergner <bergner at gcc dot gnu.org> --- Fixed everywhere. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-07-23 19:35 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-07-17 20:08 [Bug target/96236] New: __builtin_mma_disassemble_acc() doesn't store elements correctly in LE mode bergner at gcc dot gnu.org 2020-07-17 20:09 ` [Bug target/96236] " bergner at gcc dot gnu.org 2020-07-22 18:37 ` cvs-commit at gcc dot gnu.org 2020-07-22 18:39 ` bergner at gcc dot gnu.org 2020-07-22 19:26 ` bergner at gcc dot gnu.org 2020-07-23 17:17 ` cvs-commit at gcc dot gnu.org 2020-07-23 19:35 ` 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).