[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-16 Thread kugan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

kugan at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kugan at gcc dot gnu.org

--- Comment #1 from kugan at gcc dot gnu.org ---
Also happens for arm-none-linux-gnueabi-g++ with -mfpu=neon -O3


[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-17 Thread kugan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

--- Comment #2 from kugan at gcc dot gnu.org ---
can_fix_p is returining CODE_FOR_nothing for converting from tomode=V4SImode to
frommode=V4SFmode with branch 4.9. With trunk it is returning
CODE_FOR_fix_truncv4sfv4si2.


[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-17 Thread kugan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

--- Comment #3 from kugan at gcc dot gnu.org ---
correction:

with 4.9 when it ICE we have:
Breakpoint 1, expand_fix (to=to@entry=0x765b5480, from=0x765b2000,
unsignedp=unsignedp@entry=0) at
/home/kugan/work/sources/gcc-fsf/4.9/gcc/optabs.c:5206
5206{
(gdb) p debug_rtx (from)
(reg:V4SI 155 [ vect_vec_iv_.19 ])
$23 = void
(gdb) p debug_rtx (to)
(reg:V4SI 281)
$24 = void


with trunk when it is working:
Breakpoint 1, expand_fix (to=to@entry=0x764a7ac8, from=0x764a7a98,
unsignedp=unsignedp@entry=0) at
/home/kugan/work/sources/gcc-fsf/gcc/gcc/optabs.c:5196
5196{
(gdb) p debug_rtx (to)
(reg:V4SI 281)
$12 = void
(gdb) p debug_rtx (from)
(reg:V4SF 280 [ vect__11.23 ])
$13 = void


[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-17 Thread mkuvyrkov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

--- Comment #4 from Maxim Kuvyrkov  ---
Hi Kugan,

Are you working on fixing this issue on 4.9?  If so, would you please assign
yourself to this bug.

Thanks.


[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-17 Thread ramana at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

Ramana Radhakrishnan  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-06-17
 CC||ramana at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #5 from Ramana Radhakrishnan  ---
Confirmed.


[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-17 Thread kugan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

--- Comment #6 from kugan at gcc dot gnu.org ---
-fno-tree-forwprop works.

forwprop propagates:
vect__11.22_96 = (vector(4) float) vect_c.21_94;
vect__13.24_98 = (vector(4) signed int) vect__11.22_96;

into:
vect__13.24_98 = (vector(4) signed int) vect_c.21_94;

this seems to be the reason why we have expand_fix with V4SI in to mode and
from mode. trunk code seems significantly different due to match-and-simplify.


Should we disallow this propagation? Any thoughts?


[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-18 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #7 from Jakub Jelinek  ---
Have you bisected what fixed this in 5.1?


[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-18 Thread kugan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

--- Comment #8 from kugan at gcc dot gnu.org ---
Starting bisect now.


[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.3


[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

--- Comment #9 from Richard Biener  ---
(In reply to kugan from comment #6)
> -fno-tree-forwprop works.
> 
> forwprop propagates:
> vect__11.22_96 = (vector(4) float) vect_c.21_94;
> vect__13.24_98 = (vector(4) signed int) vect__11.22_96;
> 
> into:
> vect__13.24_98 = (vector(4) signed int) vect_c.21_94;
> 
> this seems to be the reason why we have expand_fix with V4SI in to mode and
> from mode. trunk code seems significantly different due to
> match-and-simplify.
> 
> 
> Should we disallow this propagation? Any thoughts?

So this is a sign-conversion only?  Because I can't see how we reach
expand_fix with V4SI -> V4SI...  unless the operation code remains a
FIX_TRUNC_EXPR which would be a bug.

Checking with a cross.


[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

--- Comment #10 from Richard Biener  ---
Indeed:

> ./cc1plus  -quiet t.ii -O3 -I include
t.ii: In function ‘void fn1()’:
t.ii:3:6: error: invalid types in conversion to integer
 void fn1() {
  ^
vector(4) signed int
vector(4) unsigned int
vect__13.24_98 = (vector(4) signed int) vect_c.21_94;

Jakub, isn't this just PR66233?

[Bug target/66554] [4.9 Regression] ICE (in expand_fix, at optabs.c:5365) on aarch64-linux-gnu

2015-06-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66554

Richard Biener  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #11 from Richard Biener  ---
It is.

*** This bug has been marked as a duplicate of bug 66233 ***