[Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass when member of union passed to copysignf

2021-02-08 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

Richard Biener  changed:

   What|Removed |Added

 CC||nikita.shulga at gmail dot com

--- Comment #10 from Richard Biener  ---
*** Bug 99012 has been marked as a duplicate of this bug. ***

[Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass when member of union passed to copysignf

2019-04-30 Thread rearnsha at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

Richard Earnshaw  changed:

   What|Removed |Added

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

--- Comment #9 from Richard Earnshaw  ---
Fixed on gcc-7 and gcc-8

[Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass when member of union passed to copysignf

2019-04-30 Thread rearnsha at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

--- Comment #8 from Richard Earnshaw  ---
Author: rearnsha
Date: Tue Apr 30 09:31:04 2019
New Revision: 270684

URL: https://gcc.gnu.org/viewcvs?rev=270684=gcc=rev
Log:
PR target/90075 Prefer bsl/bit/bif for copysignf. (backport GCC-7)

This patch is to fix the ICE caused by expand pattern of copysignf 
builtin. This is a back port to r267019 of trunk.

gcc:

2019-04-30  Srinath Parvathaneni  

PR target/90075
* config/aarch64/iterators.md (V_INT_EQUIV): Add mode for
integer equivalent of floating point values.

Backport from mainline
2018-12-11  Richard Earnshaw  

PR target/37369
* config/aarch64/iterators.md (sizem1): Add sizes for
SFmode and DFmode.
(Vbtype): Add SFmode mapping.
* config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete.
(copysign3): New expand pattern.
(copysign3_insn): New insn pattern.

testsuite:

2019-04-30  Srinath Parvathaneni  

PR target/90075
* gcc.target/aarch64/pr90075.c: New test.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.target/aarch64/pr90075.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/config/aarch64/aarch64.md
branches/gcc-7-branch/gcc/config/aarch64/iterators.md
branches/gcc-7-branch/gcc/testsuite/ChangeLog

[Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass when member of union passed to copysignf

2019-04-30 Thread rearnsha at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

--- Comment #7 from Richard Earnshaw  ---
Author: rearnsha
Date: Tue Apr 30 09:25:31 2019
New Revision: 270683

URL: https://gcc.gnu.org/viewcvs?rev=270683=gcc=rev
Log:
PR target/90075 Prefer bsl/bit/bif for copysignf. (backport GCC-8)

This patch is to fix the ICE caused in expand pattern of copysignf 
builtin. This is a back port to r267019 of trunk.

gcc:

2019-04-29  Srinath Parvathaneni  

Backport from mainline
2018-12-11  Richard Earnshaw 

PR target/37369
* config/aarch64/iterators.md (sizem1): Add sizes for
SFmode and DFmode.
(Vbtype): Add SFmode mapping.
* config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete.
(copysign3): New expand pattern.
(copysign3_insn): New insn pattern.

testsuite:

2019-04-29  Srinath Parvathaneni  

PR target/90075
* gcc.target/aarch64/pr90075.c: New test.


Added:
branches/gcc-8-branch/gcc/testsuite/gcc.target/aarch64/pr90075.c
Modified:
branches/gcc-8-branch/gcc/ChangeLog
branches/gcc-8-branch/gcc/config/aarch64/aarch64.md
branches/gcc-8-branch/gcc/config/aarch64/iterators.md
branches/gcc-8-branch/gcc/testsuite/ChangeLog

[Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass when member of union passed to copysignf

2019-04-24 Thread rearnsha at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

--- Comment #6 from Richard Earnshaw  ---
(In reply to ramana.radhakrish...@arm.com from comment #5)
> For the release branches, I think backporting your patch (and any followups
> , do you remember any ?) should be fine and we should just do it ./

I don't recall any.  Certainly none are recorded in the PR.

[Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass when member of union passed to copysignf

2019-04-24 Thread ramana.radhakrishnan at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

--- Comment #5 from ramana.radhakrishnan at arm dot com  ---
The main reason for the ICE is this bit of code here.

GCC-8 and earlier have this bit of code in the expansion for copysignsf3

..
  rtx op2 = lowpart_subreg (V2SFmode, operands[2], SFmode);
..

which looks quite a bit different to the approach taken with copysigndf3 until
your rewrite.

This gets an input in operands[2] which is subreg:SF (reg:SI 100) and then
lower_subreg->simplify_gen_subreg seems to get into a tangle that it can't get
out of.   That causes simplify_gen_subreg to get confused and that ends up
returning a Null pointer as it is unable to do the conversion - we then don't
check and thus ICE with a null pointer error.

Having looked at it again this morning my reaction is that while there be
dragons in subreg's of vector modes and such mode casting, the newer rewrite
seems reasonable and is not papering over any underlying modes.

For the release branches, I think backporting your patch (and any followups ,
do you remember any ?) should be fine and we should just do it ./

Ramana





From: rearnsha at gcc dot gnu.org 
Sent: 23 April 2019 15:57
To: ram...@gcc.gnu.org
Subject: [Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass
when member of union passed to copysignf

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

--- Comment #4 from Richard Earnshaw  ---
(In reply to Ramana Radhakrishnan from comment #3)
> Seems to have been "fixed" by the commit to fix PR87369,
>
> Richard, is this something to backport ? Prima-facie , it appears not and we
> will need an appropriate fix for the release branches.

Given that the patch for PR87369 eliminates the ICE, it's probably preferable
for backporting to a separate patch that is only used on the release branches.
That patch has now been soaking on trunk for a while now, so is likely to be
pretty safe.

I am a bit worried however, that the patch papers over a likely trunk ICE that
isn't really fixed.  It would be nice to investigate further if some additional
mitigation is warranted.

--
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.

[Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass when member of union passed to copysignf

2019-04-23 Thread rearnsha at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

--- Comment #4 from Richard Earnshaw  ---
(In reply to Ramana Radhakrishnan from comment #3)
> Seems to have been "fixed" by the commit to fix PR87369,
> 
> Richard, is this something to backport ? Prima-facie , it appears not and we
> will need an appropriate fix for the release branches.

Given that the patch for PR87369 eliminates the ICE, it's probably preferable
for backporting to a separate patch that is only used on the release branches. 
That patch has now been soaking on trunk for a while now, so is likely to be
pretty safe.

I am a bit worried however, that the patch papers over a likely trunk ICE that
isn't really fixed.  It would be nice to investigate further if some additional
mitigation is warranted.

[Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass when member of union passed to copysignf

2019-04-23 Thread ramana at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

Ramana Radhakrishnan  changed:

   What|Removed |Added

 CC||rearnsha at gcc dot gnu.org

--- Comment #3 from Ramana Radhakrishnan  ---
Seems to have been "fixed" by the commit to fix PR87369,

Richard, is this something to backport ? Prima-facie , it appears not and we
will need an appropriate fix for the release branches.

[Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass when member of union passed to copysignf

2019-04-23 Thread ramana at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

Ramana Radhakrishnan  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||ramana at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |ramana at gcc dot 
gnu.org

--- Comment #2 from Ramana Radhakrishnan  ---
I'll take a look.

[Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass when member of union passed to copysignf

2019-04-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2
   Target Milestone|--- |7.5

[Bug middle-end/90075] [7/8 Regression] [AArch64] ICE during RTL pass when member of union passed to copysignf

2019-04-15 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90075

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 Target||aarch64
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-04-15
 CC||ktkachov at gcc dot gnu.org
  Known to work||9.0
Summary|[AArch64] ICE during RTL|[7/8 Regression] [AArch64]
   |pass when member of union   |ICE during RTL pass when
   |passed to copysignf |member of union passed to
   ||copysignf
 Ever confirmed|0   |1
  Known to fail||6.5.0, 7.4.1, 8.3.1

--- Comment #1 from ktkachov at gcc dot gnu.org ---
Confirmed on GCC 8 branch as well as 7 and 6 (though 6 is not longer
maintained). Trunk doesn't ICE though I don't know if it has been fixed or just
made latent