[Bug target/84033] powerpc64le -moptimize-swaps bad code with vec_vbpermq

2018-03-28 Thread amodra at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84033

--- Comment #8 from Alan Modra  ---
Hi Breno, the first gcc-8 has not yet been released (current aim is for a
release mid April), nor has there been a release from the gcc-7 or gcc-6
branches containing this bug fix.  I missed out on gcc-7.3 by a few days.

Incidentally, https://gcc.gnu.org/develop.html#timeline is a useful page giving
history of gcc releases.

[Bug target/84033] powerpc64le -moptimize-swaps bad code with vec_vbpermq

2018-03-28 Thread brenohl at br dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84033

Breno Leitao  changed:

   What|Removed |Added

 CC||brenohl at br dot ibm.com

--- Comment #7 from Breno Leitao  ---
Hi Alan,

I was not able to read the changelog and understand what are the exact versions
that this bug is fixed. How can I read and get this information?

I am asking this question because mongodb was hitting this issue[1], and the
workaround was disabling optimization[2] during mongodb compilation.

That said, we would like to re-enable the optimized compilation for mongodb[3],
but we need this GCC fix on the distros first, so, I need to know which GCC
version contains this fix and migrating to it prior to the re-enablement of the
Mongodb optimization.

I understand that this fix didn't make the GCC 8 first release, thus, there was
a minor version update on GCC 6, 7 and 8 that contains this fix. Is my
understanding correct?

Thank you,
Breno

[1] https://jira.mongodb.org/browse/SERVER-33395
[2] https://bugs.launchpad.net/ubuntu/+source/mongodb/+bug/1758116
[3] https://bugs.launchpad.net/ubuntu/+source/mongodb/+bug/1758118

[Bug target/84033] powerpc64le -moptimize-swaps bad code with vec_vbpermq

2018-01-28 Thread amodra at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84033

Alan Modra  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Alan Modra  ---
Fixed all active branches

[Bug target/84033] powerpc64le -moptimize-swaps bad code with vec_vbpermq

2018-01-28 Thread amodra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84033

--- Comment #5 from Alan Modra  ---
Author: amodra
Date: Mon Jan 29 04:31:18 2018
New Revision: 257137

URL: https://gcc.gnu.org/viewcvs?rev=257137=gcc=rev
Log:
[PATCH] PR84033, powerpc64le -moptimize-swaps bad code with vec_vbpermq

vbpermq produces its output in bits 48..63 of the target vector reg,
so the output cannot be lane swapped.

gcc/
PR target/84033
* config/rs6000/rs6000.c (rtx_is_swappable_p): Exclude
UNSPEC_VBPERMQ.
gcc/testsuite/
PR target/84033
* gcc.target/powerpc/swaps-p8-46.c: New.

Backport svn r257070

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.target/powerpc/swaps-p8-46.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/rs6000/rs6000.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug target/84033] powerpc64le -moptimize-swaps bad code with vec_vbpermq

2018-01-28 Thread amodra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84033

--- Comment #4 from Alan Modra  ---
Author: amodra
Date: Mon Jan 29 04:23:00 2018
New Revision: 257135

URL: https://gcc.gnu.org/viewcvs?rev=257135=gcc=rev
Log:
PR84033, powerpc64le -moptimize-swaps bad code with vec_vbpermq

vbpermq produces its output in bits 48..63 of the target vector reg,
so the output cannot be lane swapped.

gcc/
PR target/84033
* config/rs6000/rs6000.c (rtx_is_swappable_p): Exclude
UNSPEC_VBPERMQ.
gcc/testsuite/
PR target/84033
* gcc.target/powerpc/swaps-p8-46.c: New.

Backport svn r257070

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.target/powerpc/swaps-p8-46.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/config/rs6000/rs6000.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog

[Bug target/84033] powerpc64le -moptimize-swaps bad code with vec_vbpermq

2018-01-25 Thread amodra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84033

--- Comment #3 from Alan Modra  ---
Author: amodra
Date: Thu Jan 25 23:57:18 2018
New Revision: 257070

URL: https://gcc.gnu.org/viewcvs?rev=257070=gcc=rev
Log:
PR84033, powerpc64le -moptimize-swaps bad code with vec_vbpermq

vbpermq produces its output in bits 48..63 of the target vector reg,
so the output cannot be lane swapped.

gcc/
PR target/84033
* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude
UNSPEC_VBPERMQ.  Sort other unspecs.
gcc/testsuite/
PR target/84033
* gcc.target/powerpc/swaps-p8-46.c: New.


Added:
trunk/gcc/testsuite/gcc.target/powerpc/swaps-p8-46.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000-p8swap.c
trunk/gcc/testsuite/ChangeLog

[Bug target/84033] powerpc64le -moptimize-swaps bad code with vec_vbpermq

2018-01-25 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84033

Bill Schmidt  changed:

   What|Removed |Added

 CC||wschmidt at gcc dot gnu.org

--- Comment #2 from Bill Schmidt  ---
Thanks for chasing this down, Alan!  The fix looks good to me.

[Bug target/84033] powerpc64le -moptimize-swaps bad code with vec_vbpermq

2018-01-24 Thread amodra at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84033

Alan Modra  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2018-01-25
   Assignee|unassigned at gcc dot gnu.org  |amodra at gmail dot com
 Ever confirmed|0   |1

--- Comment #1 from Alan Modra  ---
Created attachment 43236
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43236=edit
proposed patch

patch under test