[Bug c/63673] New: VSX intrinsic vec_vsx_ld fails to compile with double, maps to wrong instructions with float

2014-10-29 Thread markos at freevec dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63673

Bug ID: 63673
   Summary: VSX intrinsic vec_vsx_ld fails to compile with double,
maps to wrong instructions with float
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: markos at freevec dot org

Created attachment 33836
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33836action=edit
failing to compile testcase for vec_vsx_ld using doubles

These are actually two issues, but I'm filing a single bug report as it looks
like they are related.

First the build error, I've created a small failing testcase (also attached):

--
#include altivec.h

int main() {
double __attribute__((aligned(16))) d[4] = {0.0, 1.0, 2.0, 3.0 };

vector double v = vec_vsx_ld(8, d); // should load {1.0, 2.0}
}
--

This fails to compile under Debian gcc (4.9.1-19), with the following error:

$ gcc vec_vsx_ld_fail.c -c
vec_vsx_ld_fail.c: In function ‘main’:
vec_vsx_ld_fail.c:6:2: error: invalid parameter combination for AltiVec
intrinsic
  vector double v = vec_vsx_ld(4, d); // should load {1.0, 2.0}

Casting d to (float *) makes it compile, but vec_vsx_ld intrinsic definitely
should handle double parameters, so I think this is a bug.

Now the second problem, a similar testcase for float (also attached):
--
#include altivec.h

int main() {
float __attribute__((aligned(16))) f[8] = {0.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0 };

vector float v = vec_vsx_ld(4, f); // should load {1.0, 2.0, 3.0, 4.0}
}
--

This does compile, but the asm output uses the lxvd2x asm instruction, when
according the the ISA, lxvw4x should be used -at least according to my
understanding (page 359, Power ISA 2.07). Asm output also attached.

[Bug c/63673] VSX intrinsic vec_vsx_ld fails to compile with double, maps to wrong instructions with float

2014-10-29 Thread markos at freevec dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63673

--- Comment #1 from Konstantinos Margaritis markos at freevec dot org ---
Created attachment 33837
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33837action=edit
testcase for vec_vsx_ld using floats


[Bug c/63673] VSX intrinsic vec_vsx_ld fails to compile with double, maps to wrong instructions with float

2014-10-29 Thread markos at freevec dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63673

--- Comment #2 from Konstantinos Margaritis markos at freevec dot org ---
Created attachment 33838
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33838action=edit
asm output for testcase for vec_vsx_ld using floats


[Bug target/63661] [4.9/5 Regression] -O2 miscompiles on OSX 10.10 Yosemite

2014-10-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63661

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org,
   ||jamborm at gcc dot gnu.org,
   ||vmakarov at gcc dot gnu.org

--- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org ---
Started with r204698 , you can use -O2 -fpic -mtune=corei7 in compilers that
don't grok -mtune=nehalem.


[Bug target/63661] [4.9/5 Regression] -O2 miscompiles on OSX 10.10 Yosemite

2014-10-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63661

--- Comment #15 from Jakub Jelinek jakub at gcc dot gnu.org ---
Slightly reduced testcase:
static void
foo (double a, double q, double xx, double *ff, double *gx, int e, int ni)
{
  int ii, nn;
  double g1 = *gx;
  ff[ni] = xx;
  if (e == 0)
{
  for (ii = 0; ii  ni; ii++)
{
  nn = 100 - ii - 1;
  ff[ni - ii - 1]
= -1.0 / ((4 * (nn + 1) * (nn + 1) - a) / q + ff[ni - ii]);
}
}
  else
{
  for (ii = 0; ii  ni; ii++)
{
  nn = 100 - ii - 1;
  ff[ni - ii - 1]
= -1.0 / (((2 * nn + 1) * (2 * nn + 1) - a) / q + ff[ni - ii]);
}
}
  *gx = ff[0] - g1;
}

int
bar (int order, double q, double a, double c[])
{
  int ni, nn, i, e;
  double eps, g1, g2, x1, x2, e1, e2, de, xh, s, ratio, ff[100];
  eps = 1e-10;
  c[0] = 1.0;
  e = 0;
  if (order % 2 != 0)
e = 1;
  if (q == 0.0)
{
  for (i = 0; i  100; i++)
c[i] = 0.0;
  c[(order - 1) / 2] = 1.0;
  return 0;
}
  if (order  5)
{
  nn = 0;
  s = 0.0;
  if (e == 0)
ratio = (a - 4) / q;
  else
ratio = (a - 1 - q) / q;
}
  else
{
  if (e == 0)
{
  c[1] = (a - 4) / q;
  s = 2 * c[0] + 4 * c[1];
  for (i = 2; i  order / 2; i++)
{
  c[i] = (a - 4 * i * i) / q * c[i - 1] - c[i - 2];
  s += 2 * (i + 1) * c[i];
}
}
  else
{
  c[1] = (a - 1) / q + 1;
  s = c[0] + 3 * c[1];
  for (i = 2; i  order / 2 + 1; i++)
{
  c[i] = (a - (2 * i - 1) * (2 * i - 1)) / q * c[i - 1] - c[i - 2];
  s += (2 * (i + 1) - 1) * c[i];
}
}
  nn = i - 1;
  ratio = c[nn] / c[nn - 1];
}
  ni = 100 - nn - 1;
  if (e == 0)
x1 = -q / (4.0 * (100 + 1.0) * (100 + 1.0));
  else
x1 = -q / ((2.0 * 100 + 1.0) * (2.0 * 100 + 1.0));
  g1 = ratio;
  foo (a, q, x1, ff, g1, e, ni);
  x2 = g1;
  g2 = ratio;
  while (1)
{
  __builtin_printf (loop %g\n, g2);
  e1 = g1 - x1;
  e2 = g2 - x2;
  de = e1 - e2;
  if (__builtin_fabs (de)  eps)
break;
  xh = (e1 * x2 - e2 * x1) / de;
  x1 = x2;
  g1 = g2;
  x2 = xh;
  g2 = ratio;
  foo (a, q, x2, ff, g2, e, ni);
}
  s += 2 * (nn + 1) * c[nn];
  for (i = nn + 1; i  100; i++)
{
  c[i] = ff[i - nn - 1] * c[i - 1];
  s += 2 * (i + 1) * c[i];
  if (__builtin_fabs (c[i])  1e-20)
for (; i  100;)
  c[i++] = 0.0;
}
  for (i = 0; i  100; i++)
c[i] /= s;
  return 0;
}

int
main ()
{
  double c[100];
  bar (1, 5.0, -5.790080598637771, c);
  return 0;
}


[Bug inline-asm/62144] Frame pointer required, but reserved error with -fomit-frame-pointer but only with -m32 -O2

2014-10-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62144

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org ---
I'd note that -fomit-frame-pointer is never a guarantee that frame pointer will
be omitted, there are still tons of cases where it can't be omitted, VLAs,
alloca, various specialized builtins, etc.


[Bug preprocessor/63662] __has_include is not implemented but it is defined, so #ifdef __has_include guards are ineffective in blocking usage of __has_include

2014-10-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63662

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Are you sure you've built your compiler properly.  I've indeed reproduced this
in my 4.9 tree, but only because I've only done make in the gcc subdir after
updating to latest 4.9 branch and not in libcpp first.  So, it sounds like you
have the same case, compiler that predefines __has_include, but libcpp that
doesn't handle it.


[Bug ada/62235] segmentation fault on Ada 2012 code

2014-10-29 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62235

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-10-29
 CC||ebotcazou at gcc dot gnu.org
Summary|Storage_Error in the|segmentation fault on Ada
   |compiler|2012 code
 Ever confirmed|0   |1
   Severity|major   |normal

--- Comment #1 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
Confirmed, but it's not a Storage_Error but a segfault.


[Bug middle-end/59448] Code generation doesn't respect C11 address-dependency

2014-10-29 Thread torvald at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59448

--- Comment #20 from torvald at gcc dot gnu.org ---
(In reply to jos...@codesourcery.com from comment #19)
 * carries_dependency is about increasing optimization, not decreasing it.  
 If it affects when barriers are added, it does so by allowing some 
 barriers to be omitted that would otherwise be required.

That's not quite true, unfortunately, AFAIU.  I agree that generally,
attributes are supposed to be ignorable -- but in the case of
carries_dependency, C++11 explicitly requires that all declarations of a
function either have the attribute or none has (see 7.6.4p2).  This is because
you need that to actually exploit the attribute; it's a contract between
callers and callees.  If a compiler does try to preserve dependencies (or not
across function boundaries), then ignoring the attribute is fine.  But if there
should be a compiler out there that doesn't, and GCC-generated code is supposed
to link to that other compiler's code, then we need to do something to make
this work.


[Bug tree-optimization/63666] [5.0 regression] FAIL: gcc.dg/vect/pr45752.c (internal compiler error)

2014-10-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63666

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #6 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug tree-optimization/63666] [5.0 regression] FAIL: gcc.dg/vect/pr45752.c (internal compiler error)

2014-10-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63666

--- Comment #7 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Wed Oct 29 09:22:55 2014
New Revision: 216825

URL: https://gcc.gnu.org/viewcvs?rev=216825root=gccview=rev
Log:
2014-10-29  Richard Biener  rguent...@suse.de

PR tree-optimization/63666
* tree-vect-slp.c (vect_get_mask_element): Properly handle
accessing out-of-bound elements.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-vect-slp.c


[Bug rtl-optimization/63210] ira does not select the best register compared with gcc 4.8 for ARM THUMB1

2014-10-29 Thread ramana at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63210

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |5.0

--- Comment #5 from Ramana Radhakrishnan ramana at gcc dot gnu.org ---
(In reply to Zhenqiang Chen from comment #4)
 (In reply to Ramana Radhakrishnan from comment #3)
  Fixed is it? And does it fail in GCC 4.9 ?
 
 Fixed on trunk. Same fail in GCC 4.9.
 
 It is a performance issue. Do you think it is OK for 4.9?

If it is a 4.9 regression you should be marking it as so in the bug report-
change the title to [4.9 regression] and fill up the Known to Fail fields.

I cannot possibly comment if it is suitable for 4.9 branch or not.

I'm marking this as fixed for 5.0 - if you get this backported please remember
to change the target milestone to the appropriate 4.9 milestone.


[Bug ipa/63671] [5 Regression] 21% tramp3d-v4 performance hit due to -fdevirtualize

2014-10-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63671

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu.org
   Target Milestone|--- |5.0

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
I suppose -flto is the same as -fwhole-program then?  Maybe too much
speculative inlining happens?  Does using FDO mitigate the -fdevirtualize hit?


[Bug inline-asm/62144] Frame pointer required, but reserved error with -fomit-frame-pointer but only with -m32 -O2

2014-10-29 Thread luk32 at o2 dot pl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62144

--- Comment #8 from Łukasz Kucharski luk32 at o2 dot pl ---
Jakub,

fair enough. However, changing the optimization level should not break the
compilation. The issue is, at least for me, is not that we can't omit the frame
pointer, but that it depends on the optimization level.

I couldn't find anything in the docs, which would allow such behaviour. Maybe I
missed it. Anyway, IMO at most a warning should be issued that a potential
optimization conflicts with the flag.

With regards,
luk32.

[Bug inline-asm/62144] Frame pointer required, but reserved error with -fomit-frame-pointer but only with -m32 -O2

2014-10-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62144

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org ---
The documentation on -fomit-frame-pointer says: Don't keep the frame pointer
in a register for functions that don't need one.
where whether soemthing needs a frame pointer or not is not precisely defined
(exactly because the actual check in the compiler whether something needs a
frame pointer or not is not really something simple, and depends on many
things).
Whether we can avoid frame pointer on this exact testcase is something Vlad can
perhaps look at, my answer was just general.


[Bug rtl-optimization/63340] [5.0 regression] FAIL: gcc.dg/atomic/c11-atomic-exec-2.c -O2 execution test

2014-10-29 Thread rsandifo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63340

--- Comment #5 from rsandifo at gcc dot gnu.org rsandifo at gcc dot gnu.org 
---
Author: rsandifo
Date: Wed Oct 29 10:00:18 2014
New Revision: 216828

URL: https://gcc.gnu.org/viewcvs?rev=216828root=gccview=rev
Log:
gcc/
PR rtl-optimization/63340 (part 1)
* ira-costs.c (all_cost_classes): New variable.
(complete_cost_classes): New function, split out from...
(setup_cost_classes): ...here.
(initiate_regno_cost_classes): Set up all_cost_classes.
(restrict_cost_classes): New function.
(setup_regno_cost_classes_by_aclass): Restrict the cost classes to
registers that are valid for the register's mode.
(setup_regno_cost_classes_by_mode): Model the mode cache as a
restriction of all_cost_classes to a particular mode.
(print_allocno_costs): Remove contains_reg_of_mode check.
(print_pseudo_costs, find_costs_and_classes): Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/ira-costs.c


[Bug rtl-optimization/63340] [5.0 regression] FAIL: gcc.dg/atomic/c11-atomic-exec-2.c -O2 execution test

2014-10-29 Thread rsandifo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63340

--- Comment #6 from rsandifo at gcc dot gnu.org rsandifo at gcc dot gnu.org 
---
Author: rsandifo
Date: Wed Oct 29 10:02:33 2014
New Revision: 216829

URL: https://gcc.gnu.org/viewcvs?rev=216829root=gccview=rev
Log:
gcc/
PR rtl-optimization/63340 (part 2)
* rtl.h (invalid_mode_change_p): Delete.
(valid_mode_changes_for_regno): New function.
* reginfo.c (invalid_mode_change_p): Delete.
(valid_mode_changes_for_regno): New function.
* ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
classes to registers that are allowed by valid_mode_changes_for_regno.
(setup_regno_cost_classes_by_mode): Likewise.
(print_allocno_costs): Remove invalid_mode_change_p test.
(print_pseudo_costs, find_costs_and_classes): Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/ira-costs.c
trunk/gcc/reginfo.c
trunk/gcc/rtl.h


[Bug ipa/63671] [5 Regression] 21% tramp3d-v4 performance hit due to -fdevirtualize

2014-10-29 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63671

--- Comment #3 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
(In reply to Richard Biener from comment #2)
 I suppose -flto is the same as -fwhole-program then?

Yes.

 Maybe too much  speculative inlining happens?

Hopefully Honza finds time to tune inlining before release.

 Does using FDO mitigate the -fdevirtualize hit?

Yes.


[Bug c/52769] Unspecified designated initializer might not set to zero in some cases

2014-10-29 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52769

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-10-29
 CC||mpolacek at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org
   Target Milestone|--- |5.0
 Ever confirmed|0   |1
   Severity|major   |normal

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
I'm adding the test.


[Bug fortran/63674] New: procedure pointer and non/pure procedure

2014-10-29 Thread valeryweber at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63674

Bug ID: 63674
   Summary: procedure pointer and non/pure procedure
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: valeryweber at hotmail dot com

Dear All

the following code is compiling fine with 4.9.1, but shouldnt gcc complain
about calling a nonpure procedure from a pure one?

v

cat gcc_pure.f90
module test
  interface
 function func_interface ( ) RESULT( reslt )
   INTEGER :: reslt
 end function func_interface
  end interface
  type :: t
 procedure(func_interface), nopass, pointer :: f = NULL()
  end type t
contains
  function func_1 ( ) RESULT( reslt )
integer :: reslt
reslt = 1
  end function func_1
  pure subroutine eval( a, reslt )
type(t), intent(in) :: a
integer, intent(out) :: reslt
reslt = a%f()
!reslt = func_1()
  end subroutine eval
end module test

program prog
  use test
  type(t) :: a
  integer :: reslt
  a%f=func_1
  call eval(a,reslt)
  write(*,*) reslt
end program prog

gfortran-4.9.1   gcc_pure.f90
./a.out 
   1


[Bug tree-optimization/63666] [5.0 regression] FAIL: gcc.dg/vect/pr45752.c (internal compiler error)

2014-10-29 Thread jiwang at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63666

--- Comment #8 from Jiong Wang jiwang at gcc dot gnu.org ---
Created attachment 33839
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33839action=edit
vshuf-v16hi.i

Richard,

  after your fix, the issue still exist on arm-none-eabi. testcase attached.

  cc1 built by (../gcc/configure --target=arm-none-eabi
--enable-languages=c,c++)

./cc1 -mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=neon vshuf-v16hi.i -Os

Breakpoint 1, fancy_abort (file=0x1492484 ../../gcc/gcc/gcse.c, line=2153,
function=0x1492df0 process_insert_insn) at ../../gcc/gcc/diagnostic.c:1232
1232  internal_error (in %s, at %s:%d, function, trim_filename (file),
line);
(gdb) bt
#0  fancy_abort (file=0x1492484 ../../gcc/gcc/gcse.c, line=2153,
function=0x1492df0 process_insert_insn) at ../../gcc/gcc/diagnostic.c:1232
#1  0x0096b680 in process_insert_insn (expr=0x1db2800) at
../../gcc/gcc/gcse.c:2153
#2  0x0096b6da in insert_insn_end_basic_block (expr=0x1db2800,
bb=0x76e13dd0) at ../../gcc/gcc/gcse.c:2175
#3  0x0096e03f in hoist_code () at ../../gcc/gcc/gcse.c:3471
#4  0x0096ea94 in one_code_hoisting_pass () at
../../gcc/gcc/gcse.c:3701
#5  0x0096f999 in execute_rtl_hoist () at ../../gcc/gcc/gcse.c:4191
#6  0x0096fae9 in (anonymous namespace)::pass_rtl_hoist::execute
(this=0x1cecca0) at ../../gcc/gcc/gcse.c:4272
#7  0x00b4f445 in execute_one_pass (pass=0x1cecca0) at
../../gcc/gcc/passes.c:2156
#8  0x00b4f684 in execute_pass_list_1 (pass=0x1cecca0) at
../../gcc/gcc/passes.c:2208
#9  0x00b4f6b5 in execute_pass_list_1 (pass=0x1cec8e0) at
../../gcc/gcc/passes.c:2209
#10 0x00b4f6f7 in execute_pass_list (fn=0x76bca1f8, pass=0x1ce97c0)
at ../../gcc/gcc/passes.c:2219
#11 0x007d9aa8 in cgraph_node::expand (this=0x76bcd000) at
../../gcc/gcc/cgraphunit.c:1742
#12 0x007da0c7 in expand_all_functions () at
../../gcc/gcc/cgraphunit.c:1878
#13 0x007dac0d in symbol_table::compile (this=0x76c74000) at
../../gcc/gcc/cgraphunit.c:2213
#14 0x007dadc4 in symbol_table::finalize_compilation_unit
(this=0x76c74000) at ../../gcc/gcc/cgraphunit.c:2290
#15 0x0063572d in c_write_global_declarations () at
../../gcc/gcc/c/c-decl.c:10641
#16 0x00c489fc in compile_file () at ../../gcc/gcc/toplev.c:574
#17 0x00c4ad22 in do_compile () at ../../gcc/gcc/toplev.c:1981
#18 0x00c4af2c in toplev::main (this=0x7fffe55f, argc=6,
argv=0x7fffe658) at ../../gcc/gcc/toplev.c:2078
#19 0x013a02b2 in main (argc=6, argv=0x7fffe658) at
../../gcc/gcc/main.c:38


[Bug tree-optimization/63666] [5.0 regression] FAIL: gcc.dg/vect/pr45752.c (internal compiler error)

2014-10-29 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63666

--- Comment #9 from rguenther at suse dot de rguenther at suse dot de ---
On Wed, 29 Oct 2014, jiwang at gcc dot gnu.org wrote:

 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63666
 
 --- Comment #8 from Jiong Wang jiwang at gcc dot gnu.org ---
 Created attachment 33839
   -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33839action=edit
 vshuf-v16hi.i

 Richard,
 
   after your fix, the issue still exist on arm-none-eabi. testcase attached.

This looks like a completely different issue than the one reported
in the initial description.  Please open a separate bugreport.


[Bug tree-optimization/63666] [5.0 regression] FAIL: gcc.dg/vect/pr45752.c (internal compiler error)

2014-10-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63666

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||glisse at gcc dot gnu.org

--- Comment #10 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to Andreas Schwab from comment #2)
 Also breaks gcc.dg/vect/vect-strided-a-u8-i2-gap.c
 
 $ gcc/xgcc -Bgcc/ ../gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i2-gap.c
 -ftree-vectorize -fno-vect-cost-model -fno-common -O2
 -fdump-tree-vect-details -lm -o ./vect-strided-a-u8-i2-gap.exe
 ../gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i2-gap.c: In function ‘main1’:
 ../gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i2-gap.c:34:16: internal
 compiler error: in expand_expr_real_2, at expr.c:9156
res[i].b = ptr-a;
 ^
 0x4059052f expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
 expand_modifier)
 ../../gcc/expr.c:9156
 0x40579c1f expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
 expand_modifier, rtx_def**, bool)
 ../../gcc/expr.c:9463
 0x4058b71f store_expr(tree_node*, rtx_def*, int, bool)
 ../../gcc/expr.c:5344
 0x4059701f expand_assignment(tree_node*, tree_node*, bool)
 ../../gcc/expr.c:5130
 0x40381b7f expand_gimple_stmt_1
 ../../gcc/cfgexpand.c:3285
 0x40381b7f expand_gimple_stmt
 ../../gcc/cfgexpand.c:3381
 0x4038d89f expand_gimple_basic_block
 ../../gcc/cfgexpand.c:5216
 0x403916ef execute
 ../../gcc/cfgexpand.c:5822

This also still happens.  The vectorizer generates (and verified)

  vect_perm_even_77 = VEC_PERM_EXPR vect__22.9_74, vect__22.10_76, { 0, 2, 4,
6, 8, 10, 12, 14 };
  vect_perm_odd_78 = VEC_PERM_EXPR vect__22.9_74, vect__22.10_76, { 1, 3, 5,
7, 9, 11, 13, 15 };
  vect_inter_high_82 = VEC_PERM_EXPR vect_perm_even_77, vect_perm_even_77, {
0, 8, 1, 9, 2, 10, 3, 11 };
  vect_inter_low_83 = VEC_PERM_EXPR vect_perm_even_77, vect_perm_even_77, { 4,
12, 5, 13, 6, 14, 7, 15 };

then we unroll the loop and forwprop4 comes along changing

  vect_perm_even_145 = VEC_PERM_EXPR vect__22.9_142, vect__22.10_144, { 0, 2,
4, 6, 8, 10, 12, 14 };
  vect_inter_high_146 = VEC_PERM_EXPR vect_perm_even_145, vect_perm_even_145,
{ 0, 8, 1, 9, 2, 10, 3, 11 };

to

  vect_perm_even_145 = VEC_PERM_EXPR vect__22.9_142, vect__22.10_144, { 0, 2,
4, 6, 8, 10, 12, 14 };
  vect_inter_high_146 = VEC_PERM_EXPR vect_perm_even_145, vect_perm_even_145,
{ 0, 0, 1, 1, 2, 2, 3, 3 };

which isn't a supported permutation.  It looks like
fold-const.c:fold_ternary_loc doesn't care about only generating supported
permutations and the fallback code in expand_vec_perm doesn't cover all
cases.

[Bug ada/63675] New: Non-confirming aspect doesn’t fail

2014-10-29 Thread simon at pushface dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63675

Bug ID: 63675
   Summary: Non-confirming aspect doesn’t fail
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
  Assignee: unassigned at gcc dot gnu.org
  Reporter: simon at pushface dot org

Created attachment 33840
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33840action=edit
Reproducer

This arises from checking the status of PR/56196 (which is, itself, now fixed).

There is an untagged base type with aspects Unchecked_Union and C_Pass_By_Copy,
a primitive subprogram of the base type, and three derived types.

All derived types result in warnings

union.ads:15:06: warning: variant record has no direct equivalent in C
union.ads:15:06: warning: use of convention for type Derived_1 is dubious
union.ads:15:06: warning: variant record has no direct equivalent in C
union.ads:15:06: warning: use of convention for type Derived_2 is dubious
union.ads:15:06: warning: variant record has no direct equivalent in C
union.ads:15:06: warning: use of convention for type Derived_3 is dubious

which (a) shouldn’t be a problem, I think, and (b) are on the line at which the
base type is declared, rather than on the line where the “dubious” derived type
is declared.

The first derived type has no aspects.

The second derived type has aspect Unchecked_Union = False, which conflicts
with that of the base type, and *is not rejected*.

The third derived type has aspect Unchecked_Union = True, which confirms that
of the base type, and *is* rejected.

union.ads:29:36: representation item appears too late
union.ads:29:36: primitive operations already defined for Base

I think both of derived types with aspects should be rejected.

[Bug tree-optimization/63666] [5.0 regression] FAIL: gcc.dg/vect/pr45752.c (internal compiler error)

2014-10-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63666

--- Comment #11 from Richard Biener rguenth at gcc dot gnu.org ---
Index: gcc/fold-const.c
===
--- gcc/fold-const.c(revision 216834)
+++ gcc/fold-const.c(working copy)
@@ -82,6 +82,7 @@ along with GCC; see the file COPYING3.
 #include ipa-ref.h
 #include cgraph.h
 #include generic-match.h
+#include optabs.h

 /* Nonzero if we are folding constants inside an initializer; zero
otherwise.  */
@@ -14311,7 +14331,8 @@ fold_ternary_loc (location_t loc, enum t
  if (op0 == op1  !single_arg)
changed = true;

- if (need_mask_canon  arg2 == op2)
+ if (need_mask_canon  arg2 == op2
+  can_vec_perm_p (TYPE_MODE (type), false, sel))
{
  tree *tsel = XALLOCAVEC (tree, nelts);
  tree eltype = TREE_TYPE (TREE_TYPE (arg2));

fixes the IA64 case.


[Bug rtl-optimization/63620] RELOAD lost SET_GOT dependency on Darwin

2014-10-29 Thread enkovich.gnu at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63620

Ilya Enkovich enkovich.gnu at gmail dot com changed:

   What|Removed |Added

 CC||enkovich.gnu at gmail dot com

--- Comment #13 from Ilya Enkovich enkovich.gnu at gmail dot com ---
Created attachment 33841
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33841action=edit
Reproducer for Linux


[Bug rtl-optimization/63676] New: [5.0 regression] vshuf-v16hi.c ICE on arm-none-eabi

2014-10-29 Thread jiwang at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63676

Bug ID: 63676
   Summary: [5.0 regression] vshuf-v16hi.c ICE on arm-none-eabi
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jiwang at gcc dot gnu.org

Created attachment 33842
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33842action=edit
vshuf-v16hi.`

vshuf-v16hi.i failed on arm-none-eabi after r216728.

testcase attached.

  cc1 built by (../gcc/configure --target=arm-none-eabi
--enable-languages=c,c++)

./cc1 -mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=neon vshuf-v16hi.i -Os

Breakpoint 1, fancy_abort (file=0x1492484 ../../gcc/gcc/gcse.c, line=2153,
function=0x1492df0 process_insert_insn) at ../../gcc/gcc/diagnostic.c:1232
1232  internal_error (in %s, at %s:%d, function, trim_filename (file),
line);
(gdb) bt
#0  fancy_abort (file=0x1492484 ../../gcc/gcc/gcse.c, line=2153,
function=0x1492df0 process_insert_insn) at ../../gcc/gcc/diagnostic.c:1232
#1  0x0096b680 in process_insert_insn (expr=0x1db2800) at
../../gcc/gcc/gcse.c:2153
#2  0x0096b6da in insert_insn_end_basic_block (expr=0x1db2800,
bb=0x76e13dd0) at ../../gcc/gcc/gcse.c:2175
#3  0x0096e03f in hoist_code () at ../../gcc/gcc/gcse.c:3471
#4  0x0096ea94 in one_code_hoisting_pass () at
../../gcc/gcc/gcse.c:3701
#5  0x0096f999 in execute_rtl_hoist () at ../../gcc/gcc/gcse.c:4191
#6  0x0096fae9 in (anonymous namespace)::pass_rtl_hoist::execute
(this=0x1cecca0) at ../../gcc/gcc/gcse.c:4272
#7  0x00b4f445 in execute_one_pass (pass=0x1cecca0) at
../../gcc/gcc/passes.c:2156
#8  0x00b4f684 in execute_pass_list_1 (pass=0x1cecca0) at
../../gcc/gcc/passes.c:2208
#9  0x00b4f6b5 in execute_pass_list_1 (pass=0x1cec8e0) at
../../gcc/gcc/passes.c:2209
#10 0x00b4f6f7 in execute_pass_list (fn=0x76bca1f8, pass=0x1ce97c0)
at ../../gcc/gcc/passes.c:2219
#11 0x007d9aa8 in cgraph_node::expand (this=0x76bcd000) at
../../gcc/gcc/cgraphunit.c:1742
#12 0x007da0c7 in expand_all_functions () at
../../gcc/gcc/cgraphunit.c:1878
#13 0x007dac0d in symbol_table::compile (this=0x76c74000) at
../../gcc/gcc/cgraphunit.c:2213
#14 0x007dadc4 in symbol_table::finalize_compilation_unit
(this=0x76c74000) at ../../gcc/gcc/cgraphunit.c:2290
#15 0x0063572d in c_write_global_declarations () at
../../gcc/gcc/c/c-decl.c:10641
#16 0x00c489fc in compile_file () at ../../gcc/gcc/toplev.c:574
#17 0x00c4ad22 in do_compile () at ../../gcc/gcc/toplev.c:1981
#18 0x00c4af2c in toplev::main (this=0x7fffe55f, argc=6,
argv=0x7fffe658) at ../../gcc/gcc/toplev.c:2078
#19 0x013a02b2 in main (argc=6, argv=0x7fffe658) at
../../gcc/gcc/main.c:38


[Bug bootstrap/63622] [5.0 Regression] Bootstrap fails on x86_64-apple-darwin1[34] after revision r216305

2014-10-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63622

--- Comment #3 from Martin Liška marxin at gcc dot gnu.org ---
Created attachment 33843
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33843action=edit
IPA ICF aliasing restriction

Can you please try to apply following patch?
It should disable alias creation for targets that do not support aliasing.

[Bug tree-optimization/63677] New: Failure to constant fold with vectorization.

2014-10-29 Thread belagod at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63677

Bug ID: 63677
   Summary: Failure to constant fold with vectorization.
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: belagod at gcc dot gnu.org

This piece of code:

int __attribute__ ((noinline))
foo ()
{
  const int a[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
  int i, sum;

  sum = 0;
  for (i = 0; i  sizeof (a) / sizeof (*a); i++)
sum += a[i];

  return sum;
}

when compiled with -O3 on x86_64 generates:

foo:
.LFB0:
.cfi_startproc
movdqa.LC1(%rip), %xmm0
paddd.LC0(%rip), %xmm0
movdqa%xmm0, %xmm1
psrldq$8, %xmm1
paddd%xmm1, %xmm0
movdqa%xmm0, %xmm1
psrldq$4, %xmm1
paddd%xmm1, %xmm0
movd%xmm0, %eax
ret
.cfi_endproc
.LFE0:
.sizefoo, .-foo
.section.text.unlikely
.LCOLDE3:
.text
.LHOTE3:
.section.rodata.cst16,aM,@progbits,16
.align 16
.LC0:
.long0
.long1
.long2
.long3
.align 16
.LC1:
.long4
.long5
.long6
.long7
.identGCC: (GNU) 5.0.0 20141023 (experimental)
.section.note.GNU-stack,,@progbits

but when compiled with -O3 -mno-sse generates:

foo:
.LFB0:
.cfi_startproc
movl$28, %eax
ret
.cfi_endproc
.LFE0:
.sizefoo, .-foo
.section.text.unlikely
.LCOLDE0:

Why isn't constant folding happening when generating code for vector unit?

$ gcc -v
Using built-in specs.
COLLECT_GCC=/work/dev/arm/bin_x86/install/bin/gcc
COLLECT_LTO_WRAPPER=/work/dev/arm/bin_x86/install/libexec/gcc/x86_64-unknown-linux-gnu/5.0.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../src/gcc/configure --prefix=/work/dev/arm/bin_x86/install
--enable-bootstrap --disable-nls --enable-languages=c,c++,fortran
--disable-multilib
Thread model: posix
gcc version 5.0.0 20141023 (experimental) (GCC)


[Bug c/63678] New: __mm256_blend_epi16 only accepts 8-bit masks (should accept 16-bit)

2014-10-29 Thread peter.bumbulis at ianywhere dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63678

Bug ID: 63678
   Summary: __mm256_blend_epi16 only accepts 8-bit masks (should
accept 16-bit)
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: peter.bumbulis at ianywhere dot com

Created attachment 33844
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33844action=edit
.i file for repro.

__mm256_blend_epi16 only accepts 8-bit masks as the 3rd parameter, not 16.  The
Intel and Microsoft compilers handle this properly.

$ gcc -c -mavx2 -save-temps foo.c 
foo.c: In function ‘blend’:
foo.c:4:46: error: the last argument must be an 8-bit immediate
  return _mm256_blend_epi16(a, b, 0xabcd);
  ^
where foo.c is

#include immintrin.h

__m256i blend(__m256i a, __m256i b) {
return _mm256_blend_epi16(a, b, 0xabcd);
}

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1'
--with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.8 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap
--enable-plugin --with-system-zlib --disable-browser-plugin
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686
--with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)

[Bug ipa/63587] [5 Regression] ICE : tree check: expected var_decl, have result_decl in add_local_variables, at tree-inline.c:4112

2014-10-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63587

--- Comment #14 from Martin Liška marxin at gcc dot gnu.org ---
Author: marxin
Date: Wed Oct 29 15:17:42 2014
New Revision: 216841

URL: https://gcc.gnu.org/viewcvs?rev=216841root=gccview=rev
Log:
PR ipa/63587

* g++.dg/ipa/pr63587-1.C: New test
* g++.dg/ipa/pr63587-2.C: New test.

* cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
to local declarations.
* function.c (add_local_decl): Implementation moved from header
file, assert introduced for tree type.
* function.h: Likewise.


Added:
trunk/gcc/testsuite/g++.dg/ipa/pr63587-1.C
trunk/gcc/testsuite/g++.dg/ipa/pr63587-2.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cgraphunit.c
trunk/gcc/function.c
trunk/gcc/function.h
trunk/gcc/testsuite/ChangeLog

[Bug ipa/63587] [5 Regression] ICE : tree check: expected var_decl, have result_decl in add_local_variables, at tree-inline.c:4112

2014-10-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63587

Martin Liška marxin at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #15 from Martin Liška marxin at gcc dot gnu.org ---
Resolved.

[Bug target/63679] New: [4.9 Regression][AArch64] Failure to constant fold.

2014-10-29 Thread belagod at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63679

Bug ID: 63679
   Summary: [4.9 Regression][AArch64] Failure to constant fold.
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: belagod at gcc dot gnu.org

When this piece of code is compiled with -O3 -mgeneral-regs-only

int __attribute__ ((noinline))
foo ()
{
  const int a[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
  int i, sum;

  sum = 0;
  for (i = 0; i  sizeof (a) / sizeof (*a); i++)
sum += a[i];

  return sum;
}

4.9 gcc generates:

foo:
subsp, sp, #32
movw0, 28
addsp, sp, 32
ret
.sizefoo, .-foo
.identGCC: (unknown) 4.9.2 20140930 (prerelease)

5.0 generates:

foo:
adrpx0, .LANCHOR0
subsp, sp, #32
addx0, x0, :lo12:.LANCHOR0
ldrx7, [x0]
ldrx6, [x0, 16]
ldrx1, [x0, 8]
sbfxx5, x7, 32, 32
ldrx0, [x0, 24]
addw2, w6, w7
strx0, [sp, 24]
movx4, x1
strx1, [sp, 8]
sbfxx1, x6, 32, 32
ldrx3, [sp, 24]
addw1, w1, w5
addw1, w1, w2
strx7, [sp]
addw0, w3, w4
sbfxx4, x4, 32, 32
sbfxx3, x3, 32, 32
addw0, w0, w1
addw3, w4, w3
strx6, [sp, 16]
addw0, w3, w0
addsp, sp, 32
ret
.sizefoo, .-foo
.section.rodata
.align3
.LANCHOR0 = . + 0
.LC0:
.word0
.word1
.word2
.word3
.word4
.word5
.word6
.word7
.identGCC: (unknown) 5.0.0 20141023 (experimental)

Constant-folding seems to have got a bit messed up. I've observed this only on
aarch64-none-elf-gcc. 5.0 x86_64 seems to work fine. 

foo:
.LFB0:
.cfi_startproc
movl$28, %eax
ret
.cfi_endproc
.LFE0:
.sizefoo, .-foo
.section.text.unlikely
.LCOLDE0:
.text
.LHOTE0:
.identGCC: (GNU) 5.0.0 20141023 (experimental)
.section.note.GNU-stack,,@progbits


Looks like a aarch64-specific backend issue.

$ aarch64-none-elf-gcc -v
Target: aarch64-none-elf
Configured with: /work/dev/arm/src/gcc/configure --target=aarch64-none-elf
--prefix=/work/dev/arm/bin//install --with-gmp=/work/dev/arm/bin//host-tools
--with-mpfr=/work/dev/arm/bin//host-tools
--with-mpc=/work/dev/arm/bin//host-tools
--with-cloog=/work/dev/arm/bin//host-tools
--with-isl=/work/dev/arm/bin//host-tools --with-pkgversion=unknown
--disable-shared --disable-nls --disable-threads --disable-tls
--enable-checking=yes --enable-languages=c,c++ --with-newlib
Thread model: single
gcc version 5.0.0 20141023 (experimental) (unknown)


[Bug fortran/63640] move_alloc memory leak

2014-10-29 Thread patnel97269-gfortran at yahoo dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63640

patnel97269-gfortran at yahoo dot fr changed:

   What|Removed |Added

   Severity|major   |critical


[Bug bootstrap/63573] [5 Regression] libgo: ICE building libgo on powerpc-linux-gnu

2014-10-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63573

Martin Liška marxin at gcc dot gnu.org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
   Last reconfirmed||2014-10-29
 Resolution|DUPLICATE   |---
 Ever confirmed|0   |1

--- Comment #4 from Martin Liška marxin at gcc dot gnu.org ---
PR still persists after installation of patch for PR63587.

[Bug tree-optimization/63677] Failure to constant fold with vectorization.

2014-10-29 Thread belagod at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63677

--- Comment #1 from Tejas Belagod belagod at gcc dot gnu.org ---
There is similar behaviour on aarch64. So, it doesn't look like a backend
issue.


[Bug c++/63680] New: ice

2014-10-29 Thread marco.morandini at polimi dot it
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63680

Bug ID: 63680
   Summary: ice
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marco.morandini at polimi dot it

Created attachment 33845
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33845action=edit
reduced testcase

g++ version:

marco@pao:~/Mbdyn/mbdyn.cvs g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/home/marco/local/gcc-4.9.1/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/home/marco/local/gcc-4.9.1
--enable-checking=release --enable-__cxa_atexit
--enable-libstdcxx-allocator=new --enable-linux-futex --enable-lto
--with-arch=native --enable-threads=posix --with-ppl --with-cloog
--enable-languages=c,c++,fortran,lto
Thread model: posix
gcc version 4.9.1 (GCC) 

--

ice message:

marco@pao:~/TTT/GccTestcaseReduction g++ -c RulesDirective.ii
RulesDirective.ii: In function ‘void processLabels()’:
RulesDirective.ii:7:6: internal compiler error: Segmentation fault
 void processLabels() {
  ^
0x9aca5f crash_signal
../../gcc/toplev.c:337
0x8583ea get_class_context
../../gcc/ipa-devirt.c:997
0x8593fd contains_type_p
../../gcc/ipa-devirt.c:1012
0x8593fd get_polymorphic_call_info(tree_node*, tree_node*, tree_node**, long*,
ipa_polymorphic_call_context*)
../../gcc/ipa-devirt.c:1227
0x73669f cgraph_create_indirect_edge(cgraph_node*, gimple_statement_base*, int,
long, int)
../../gcc/cgraph.c:976
0x737cd3 build_cgraph_edges
../../gcc/cgraphbuild.c:343
0x737cd3 execute
../../gcc/cgraphbuild.c:409

[Bug libgcc/63681] New: bfin-rtems ICE in cfg_layout_initialize, at cfgrtl.c:4233

2014-10-29 Thread joel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63681

Bug ID: 63681
   Summary: bfin-rtems ICE in cfg_layout_initialize, at
cfgrtl.c:4233
   Product: gcc
   Version: 4.9.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcc
  Assignee: unassigned at gcc dot gnu.org
  Reporter: joel at gcc dot gnu.org

git 4.9 branch with last commit 1d2b7cdfcb9376a6ee98964b11cf73fe14154e13
newlib head

Configure command (lots of newlib options)

 ../${GCC}/configure \
 --prefix=${PREFIX} \
 --bindir=${PREFIX}/bin \
 --exec_prefix=${PREFIX} \
 --includedir=${PREFIX}/include \
 --libdir=${PREFIX}/lib \
 --libexecdir=${PREFIX}/libexec \
 --mandir=${PREFIX}/share/man \
 --infodir=${PREFIX}/share/info \
 --datadir=${PREFIX}/share \
 --target=${TARGET} \
 ${sjlj} \
 --disable-libstdcxx-pch \
 --with-gnu-as --with-gnu-ld --verbose \
 --with-newlib \
 --with-system-zlib \
 --disable-nls --without-included-gettext \
 --disable-win32-registry \
 --enable-version-specific-runtime-libs \
 --disable-lto \
 --enable-newlib-io-c99-formats \
 --enable-newlib-iconv \
 --enable-newlib-iconv-encodings=big5,cp775,cp850,cp852,cp855,\
cp866,euc_jp,euc_kr,euc_tw,iso_8859_1,iso_8859_10,iso_8859_11,\
iso_8859_13,iso_8859_14,iso_8859_15,iso_8859_2,iso_8859_3,\
iso_8859_4,iso_8859_5,iso_8859_6,iso_8859_7,iso_8859_8,iso_8859_9,\
iso_ir_111,koi8_r,koi8_ru,koi8_u,koi8_uni,ucs_2,ucs_2_internal,\
ucs_2be,ucs_2le,ucs_4,ucs_4_internal,ucs_4be,ucs_4le,us_ascii,\
utf_16,utf_16be,utf_16le,utf_8,win_1250,win_1251,win_1252,\
win_1253,win_1254,win_1255,win_1256,win_1257,win_1258 \
 --enable-threads \
 --disable-plugin \
 --enable-languages=c,c++

The build fails in libgcc with this. Should be easy to reproduce:

/users/joel/test-gcc/b-bfin-rtems4.11-gcc/./gcc/xgcc
-B/users/joel/test-gcc/b-bfin-rtems4.11-gcc/./gcc/ -nostdinc
-B/users/joel/test-gcc/b-bfin-rtems4.11-gcc/bfin-rtems4.11/newlib/ -isystem
/users/joel/test-gcc/b-bfin-rtems4.11-gcc/bfin-rtems4.11/newlib/targ-include
-isystem /users/joel/test-gcc/gcc/newlib/libc/include
-B/users/joel/test-gcc/install-head/bfin-rtems4.11/bin/
-B/users/joel/test-gcc/install-head/bfin-rtems4.11/lib/ -isystem
/users/joel/test-gcc/install-head/bfin-rtems4.11/include -isystem
/users/joel/test-gcc/install-head/bfin-rtems4.11/sys-include-g -O2 -O2
-I../../../gcc/libgcc/../newlib/libc/sys/rtems/include -g -O2 -DIN_GCC 
-DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-narrowing -Wwrite-strings
-Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition 
-isystem ./include   -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector
-Dinhibit_libc  -I. -I. -I../.././gcc -I../../../gcc/libgcc
-I../../../gcc/libgcc/. -I../../../gcc/libgcc/../gcc
-I../../../gcc/libgcc/../include  -DHAVE_CC_TLS -DUSE_EMUTLS -o _div_sf.o -MT
_div_sf.o -MD -MP -MF _div_sf.dep -DFINE_GRAINED_LIBRARIES -DL_div_sf -DFLOAT 
-c ../../../gcc/libgcc/fp-bit.c -fvisibility=hidden -DHIDE_EXPORTS
../../../gcc/libgcc/fp-bit.c: In function '__divsf3':
../../../gcc/libgcc/fp-bit.c:1082:1: internal compiler error: in
cfg_layout_initialize, at cfgrtl.c:4233
 }
 ^
0x4f030a cfg_layout_initialize(unsigned int)
../../gcc/gcc/cfgrtl.c:4233
0x9b9be1 reorder_loops
../../gcc/gcc/hw-doloop.c:500
0x9b9be1 reorg_loops(bool, hw_doloop_hooks*)
../../gcc/gcc/hw-doloop.c:641
0x938e85 bfin_reorg_loops
../../gcc/gcc/config/bfin/bfin.c:3888
0x938e85 bfin_reorg
../../gcc/gcc/config/bfin/bfin.c:4630
0x710bc9 rest_of_handle_machine_reorg
../../gcc/gcc/reorg.c:3936
0x710bc9 execute
../../gcc/gcc/reorg.c:3966
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.
make[2]: *** [_div_sf.o] Error 1
make[2]: Leaving directory
`/users/joel/test-gcc/b-bfin-rtems4.11-gcc/bfin-rtems4.11/libgcc'
ma


[Bug tree-optimization/63677] Failure to constant fold with vectorization.

2014-10-29 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63677

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org ---
I have seen this also.


[Bug libgcc/63682] New: m32c: libgcc configure checks for SJLJ model even when C++ and Java are disabled

2014-10-29 Thread joel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63682

Bug ID: 63682
   Summary: m32c: libgcc configure checks for SJLJ model even when
C++ and Java are disabled
   Product: gcc
   Version: 4.9.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcc
  Assignee: unassigned at gcc dot gnu.org
  Reporter: joel at gcc dot gnu.org

On the m32c, C++ and Java are not supported. Thus we build with C only and the
target doesn't have any need for SJLJ information. Unfortunately libgcc always
probes for this.

checking whether decimal floating point is supported... no
configure: WARNING: decimal float is not supported for this target, ignored
checking whether fixed-point is supported... no
checking whether to use setjmp/longjmp exceptions... unknown
configure: error: unable to detect exception model

And if you pass in --disable-sjlj-exceptions, the build fails in libgcc with an
ICE.


[Bug libgcc/63683] New: m32c-rtems ICE unable to find spill register compiling libgcc

2014-10-29 Thread joel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63683

Bug ID: 63683
   Summary: m32c-rtems ICE unable to find spill register compiling
libgcc
   Product: gcc
   Version: 4.9.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcc
  Assignee: unassigned at gcc dot gnu.org
  Reporter: joel at gcc dot gnu.org

gcc 4.9 branch in git at 1d2b7cdfcb9376a6ee98964b11cf73fe14154e13
newlib head

m32c fails with ICE

Configured as follows:

 ../${GCC}/configure \
 --prefix=${PREFIX} \
 --bindir=${PREFIX}/bin \
 --exec_prefix=${PREFIX} \
 --includedir=${PREFIX}/include \
 --libdir=${PREFIX}/lib \
 --libexecdir=${PREFIX}/libexec \
 --mandir=${PREFIX}/share/man \
 --infodir=${PREFIX}/share/info \
 --datadir=${PREFIX}/share \
 --target=${TARGET} \
 --disable-sjlj-exceptions \
 --disable-libstdcxx-pch \
 --with-gnu-as --with-gnu-ld --verbose \
 --with-newlib \
 --with-system-zlib \
 --disable-nls --without-included-gettext \
 --disable-win32-registry \
 --enable-version-specific-runtime-libs \
 --disable-lto \
 --enable-newlib-io-c99-formats \
 --enable-newlib-iconv \
 --enable-newlib-iconv-encodings=big5,cp775,cp850,cp852,cp855,\
cp866,euc_jp,euc_kr,euc_tw,iso_8859_1,iso_8859_10,iso_8859_11,\
iso_8859_13,iso_8859_14,iso_8859_15,iso_8859_2,iso_8859_3,\
iso_8859_4,iso_8859_5,iso_8859_6,iso_8859_7,iso_8859_8,iso_8859_9,\
iso_ir_111,koi8_r,koi8_ru,koi8_u,koi8_uni,ucs_2,ucs_2_internal,\
ucs_2be,ucs_2le,ucs_4,ucs_4_internal,ucs_4be,ucs_4le,us_ascii,\
utf_16,utf_16be,utf_16le,utf_8,win_1250,win_1251,win_1252,\
win_1253,win_1254,win_1255,win_1256,win_1257,win_1258 \
 --enable-threads \
 --disable-plugin \
 --enable-languages=c

/users/joel/test-gcc/b-m32c-rtems4.11-gcc/./gcc/xgcc
-B/users/joel/test-gcc/b-m32c-rtems4.11-gcc/./gcc/ -nostdinc
-B/users/joel/test-gcc/b-m32c-rtems4.11-gcc/m32c-rtems4.11/newlib/ -isystem
/users/joel/test-gcc/b-m32c-rtems4.11-gcc/m32c-rtems4.11/newlib/targ-include
-isystem /users/joel/test-gcc/gcc/newlib/libc/include
-B/users/joel/test-gcc/install-head/m32c-rtems4.11/bin/
-B/users/joel/test-gcc/install-head/m32c-rtems4.11/lib/ -isystem
/users/joel/test-gcc/install-head/m32c-rtems4.11/include -isystem
/users/joel/test-gcc/install-head/m32c-rtems4.11/sys-include-g -O2
-mcpu=m32cm -O2 -I../../../../gcc/libgcc/../newlib/libc/sys/rtems/include -g
-O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-narrowing
-Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition  -isystem ./include   -g -DIN_LIBGCC2 -fbuilding-libgcc
-fno-stack-protector -Dinhibit_libc  -I. -I. -I../../.././gcc
-I../../../../gcc/libgcc -I../../../../gcc/libgcc/.
-I../../../../gcc/libgcc/../gcc -I../../../../gcc/libgcc/../include 
-DHAVE_CC_TLS -DUSE_EMUTLS -o _ffssi2.o -MT _ffssi2.o -MD -MP -MF _ffssi2.dep
-DL_ffssi2 -c ../../../../gcc/libgcc/libgcc2.c -fvisibility=hidden
-DHIDE_EXPORTS
../../../../gcc/libgcc/libgcc2.c: In function '__ffssi2':
../../../../gcc/libgcc/libgcc2.c:522:1: error: unable to find a register to
spill in class 'A_REGS'
 }
 ^
../../../../gcc/libgcc/libgcc2.c:522:1: error: this is the insn:
(insn 62 60 63 10 (set (reg:HI 0 r0 [49])
(zero_extend:HI (mem/u/j:QI (plus:PSI (subreg:PSI (reg:SI 45 [ D.2964
]) 0)
(symbol_ref:PSI (__clz_tab) [flags 0x40] var_decl
0x7f5d80ddcc78 __clz_tab)) [0 __clz_tab S1 A8])))
../../../../gcc/libgcc/libgcc2.c:520 115 {zero_extendqihi2}
 (expr_list:REG_DEAD (reg:SI 45 [ D.2964 ])
(nil)))
../../../../gcc/libgcc/libgcc2.c:522: confused by earlier errors, bailing out
make[4]: *** [_ffssi2.o] Error 1


[Bug c/63678] __mm256_blend_epi16 only accepts 8-bit masks (should accept 16-bit)

2014-10-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63678

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org,
   ||kyukhin at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
What means properly?  The underlying instruction (256-bit VPBLENDW) certainly
accepts only 8-bit mask, and e.g.
https://software.intel.com/sites/products/documentation/doclib/iss/2013/compiler/cpp-lin/GUID-5369B2B5-B1E1-4D96-85AB-2019982667B4.htm
says nothing what would the upper bits mean, it also says that the mask is
8-bit immediate.  Perhaps icc just doesn't diagnose incorrect masks?
Or do you see that for 16-bit masks _mm256_blend_epi16 would actually emit more
than one insn (say separate blends with the low 8-bit mask, high 8-bit mask and
then blend together)?


[Bug libgcc/63682] m32c: libgcc configure checks for SJLJ model even when C++ and Java are disabled

2014-10-29 Thread dj at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63682

--- Comment #1 from DJ Delorie dj at redhat dot com ---
m32c-elf supports C++.  What is the contents of the failing config.log?

Also, there's nothing m32c-specific in the sjlj checks, it's the same for all
sjlj targets.


[Bug libgcc/63684] New: Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread sasha.levin at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

Bug ID: 63684
   Summary: Build failure due to Let GDB reuse GCC's parser.
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcc
  Assignee: unassigned at gcc dot gnu.org
  Reporter: sasha.levin at oracle dot com
CC: pmuldoon at redhat dot com

Hi,

I'm seeing the following build error:

n file included from ../.././libcc1/findcomp.cc:20:0:
../.././libcc1/../gcc/config.h:6:23: fatal error: auto-host.h: No such file or
directory
compilation terminated.
In file included from ../.././libcc1/plugin.cc:27:0:
../.././libcc1/../gcc/config.h:6:23: fatal error: auto-host.h: No such file or
directory
compilation terminated.

I've bisected it down to:

commit ab103e33b2aae243b231eba689e0b99418fa1663
Author: pmuldoon pmuldoon@138bc75d-0d04-0410-961f-82ee72b054a4
Date:   Mon Oct 27 17:21:42 2014 +

Let GDB reuse GCC's parser.


[Bug tree-optimization/63677] Failure to constant fold with vectorization.

2014-10-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63677

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-10-29
 CC||jakub at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
The problem is that the loop is first vectorized, then several passes later slp
vectorizes the initialization, so after some cleanups we have e.g. in cddce2:
  MEM[(int *)a] = { 0, 1, 2, 3 };
  MEM[(int *)a + 16B] = { 4, 5, 6, 7 };
  vect__13.6_20 = MEM[(int *)a];
  vect__13.6_17 = MEM[(int *)a + 16B];
But there is no further FRE pass that would optimize the loads into
  vect__13.6_20 = { 0, 1, 2, 3 };
  vect__13.6_17 = { 4, 5, 6, 7 };
(supposedly that would need to be done before forwprop4 that could in theory
refold all the stmts into constant).

Richard, how expensive would be to schedule another FRE pass if anything has
been vectorized in the current function (either vect pass, or slp)?  Or are
there other passes that handle this?  Looking at e.g.
typedef int V __attribute__((vector_size (4 * sizeof (int;
struct S { int a[4]; };
V __attribute__ ((noinline)) foo (struct S *p)
{
  *(V *) p = (V) { 1, 2, 3, 4 };
  return *(V *) p;
}
with -O2 -fno-tree-fre, it seems DOM is able to do that, but unfortunately at
dom2 time the values have not been sufficiently forward propagated for dom2 to
optimize this.


[Bug target/63678] __mm256_blend_epi16 only accepts 8-bit masks (should accept 16-bit)

2014-10-29 Thread peter.bumbulis at ianywhere dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63678

--- Comment #2 from Peter Bumbulis peter.bumbulis at ianywhere dot com ---
The referenced web page is incorrect.  Look in the instruction set reference
manual
(https://software.intel.com/sites/default/files/managed/c6/a9/319433-020.pdf,
search for VPBLENDMW) or the intrinsics guide
(https://software.intel.com/sites/landingpage/IntrinsicsGuide/).

These instructions blend 16 bit quantities:  you can fit 16 of these in a 256
bit register.  For AVX512 it's a 32-bit constant.


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
What target?  How options did you configure GCC with?


[Bug libstdc++/62318] optimization of string searches using Nigel Horspool's Boyer-Moore-Horpool algorithm

2014-10-29 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62318

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |5.0

--- Comment #8 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to Jonathan Wakely from comment #4)
 See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3905.html which
 proposes adding it to the C++ standard library as a separate API. The new
 components are part of the Library Fundamentals TS:
 http://cplusplus.github.io/fundamentals-ts/main.html#func
 
 That part of the TS has not yet been implemented in libstdc++.

This is now implemented on trunk.


[Bug target/63678] __mm256_blend_epi16 only accepts 8-bit masks (should accept 16-bit)

2014-10-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63678

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
(In reply to Peter Bumbulis from comment #2)
 The referenced web page is incorrect.  Look in the instruction set reference
 manual
 (https://software.intel.com/sites/default/files/managed/c6/a9/319433-020.pdf,
 search for VPBLENDMW) or the intrinsics guide
 (https://software.intel.com/sites/landingpage/IntrinsicsGuide/).
 
 These instructions blend 16 bit quantities:  you can fit 16 of these in a
 256 bit register.  For AVX512 it's a 32-bit constant.

Your first reference is AVX512 documentation, _mm256_blend_epi16 is not
_mm256_mask_blend_epi16.  _mm256_blend_epi16 is for VPBLENDW instruction, and
the
https://software.intel.com/sites/landingpage/IntrinsicsGuide/ looks incorrect,
because it doesn't describe what the VPBLENDW instruction does.  In particular,
it only has 8-bit immediate, and both 128-bit lanes are blended the same given
that mask:
IF (imm8[0] == 1) THEN DEST[15:0] - SRC2[15:0]
ELSE DEST[15:0] - SRC1[15:0]
IF (imm8[1] == 1) THEN DEST[31:16] - SRC2[31:16]
ELSE DEST[31:16] - SRC1[31:16]
IF (imm8[2] == 1) THEN DEST[47:32] - SRC2[47:32]
ELSE DEST[47:32] - SRC1[47:32]
IF (imm8[3] == 1) THEN DEST[63:48] - SRC2[63:48]
ELSE DEST[63:48] - SRC1[63:48]
IF (imm8[4] == 1) THEN DEST[79:64] - SRC2[79:64]
ELSE DEST[79:64] - SRC1[79:64]
IF (imm8[5] == 1) THEN DEST[95:80] - SRC2[95:80]
ELSE DEST[95:80] - SRC1[95:80]
IF (imm8[6] == 1) THEN DEST[111:96] - SRC2[111:96]
ELSE DEST[111:96] - SRC1[111:96]
IF (imm8[7] == 1) THEN DEST[127:112] - SRC2[127:112]
ELSE DEST[127:112] - SRC1[127:112]
IF (imm8[0] == 1) THEN DEST[143:128] - SRC2[143:128]
ELSE DEST[143:128] - SRC1[143:128]
IF (imm8[1] == 1) THEN DEST[159:144] - SRC2[159:144]
ELSE DEST[159:144] - SRC1[159:144]
IF (imm8[2] == 1) THEN DEST[175:160] - SRC2[175:160]
ELSE DEST[175:160] - SRC1[175:160]
IF (imm8[3] == 1) THEN DEST[191:176] - SRC2[191:176]
ELSE DEST[191:176] - SRC1[191:176]
IF (imm8[4] == 1) THEN DEST[207:192] - SRC2[207:192]
ELSE DEST[207:192] - SRC1[207:192]
IF (imm8[5] == 1) THEN DEST[223:208] - SRC2[223:208]
ELSE DEST[223:208] - SRC1[223:208]
IF (imm8[6] == 1) THEN DEST[239:224] - SRC2[239:224]
ELSE DEST[239:224] - SRC1[239:224]
IF (imm8[7] == 1) THEN DEST[255:240] - SRC2[255:240]
ELSE DEST[255:240] - SRC1[255:240]


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread sasha.levin at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #2 from Sasha Levin sasha.levin at oracle dot com ---
Building on x86, config options are:

./configure --prefix=/home/sasha/gcc-inst/ --with-arch=native
--with-tune=native --enable-languages=c --enable-lto --enable-gold
--disable-libstdcxx 
e --with-tune=native --enable-languages=c --enable-lto --enable-gold
--disable-libstdcx


[Bug target/63678] __mm256_blend_epi16 only accepts 8-bit masks (should accept 16-bit)

2014-10-29 Thread peter.bumbulis at ianywhere dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63678

--- Comment #4 from Peter Bumbulis peter.bumbulis at ianywhere dot com ---
(In reply to Peter Bumbulis from comment #2)
 The referenced web page is incorrect.  Look in the instruction set reference
 manual
 (https://software.intel.com/sites/default/files/managed/c6/a9/319433-020.pdf,
 search for VPBLENDMW) or the intrinsics guide
 (https://software.intel.com/sites/landingpage/IntrinsicsGuide/).
 
 These instructions blend 16 bit quantities:  you can fit 16 of these in a
 256 bit register.  For AVX512 it's a 32-bit constant.

My mistake:  it looks like the generated code only uses the low 8 bytes.  Sorry
for any wasted bandwidth.


[Bug target/63678] __mm256_blend_epi16 only accepts 8-bit masks (should accept 16-bit)

2014-10-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63678

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Trying icc 14.0.2.144 Build 2014012, I see that
a) it indeed fails to report the bug in your source
b) when using -c, it silently discards the upper 8 bits of the immediate, so
   you end up with:
   0:c4 e3 7d 0e c1 cdvpblendw $0xcd,%ymm1,%ymm0,%ymm0
c) when using -S, it generates invalid assembly:
vpblendw  $43981, %ymm1, %ymm0, %ymm0   #4.16
   which doesn't assemble at least with gas.
So, I believe erroring out on this is significantly better than what icc does
with it.


[Bug target/63678] __mm256_blend_epi16 only accepts 8-bit masks (should accept 16-bit)

2014-10-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63678

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
.


[Bug preprocessor/63662] __has_include is not implemented but it is defined, so #ifdef __has_include guards are ineffective in blocking usage of __has_include

2014-10-29 Thread andre.mccurdy at linaro dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63662

--- Comment #6 from andre.mccurdy at linaro dot org ---
The issue seems to be specific to Linaro 4.9-2014.10.

There's now a Linaro 4.9-2014.10-1 release which merges the missing updates to
libcpp.


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread pmuldoon at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #3 from Phil Muldoon pmuldoon at redhat dot com ---
I am trying to replicate locally.  Do you recall at which stage (1, 2 .. etc)
during the build process this occurred at?


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread sasha.levin at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #4 from Sasha Levin sasha.levin at oracle dot com ---
Created attachment 33846
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33846action=edit
Build log


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread sasha.levin at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #5 from Sasha Levin sasha.levin at oracle dot com ---
It happened very early. I've attached the full build log for reference.


[Bug libgcc/63682] m32c: libgcc configure checks for SJLJ model even when C++ and Java are disabled

2014-10-29 Thread joel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63682

--- Comment #2 from Joel Sherrill joel at gcc dot gnu.org ---
Created attachment 33847
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33847action=edit
config.log


[Bug libgcc/63682] m32c: libgcc configure checks for SJLJ model even when C++ and Java are disabled

2014-10-29 Thread joel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63682

--- Comment #3 from Joel Sherrill joel at gcc dot gnu.org ---
(In reply to DJ Delorie from comment #1)
 m32c-elf supports C++.  What is the contents of the failing config.log?

Hmm... then this should work. We intentionally don't deviate much from *-elf
targets. I was only building C in this run.

 Also, there's nothing m32c-specific in the sjlj checks, it's the same for
 all sjlj targets.

I know. But m32c and (I think) h8300 were the only failures.


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread pmuldoon at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #6 from Phil Muldoon pmuldoon at redhat dot com ---
I am already past that point in my build.  auto-host.h is an automatically
generated file, so I am quite puzzled why in your case it has not found it.  In
my case, it is in obj/gcc/auto-host.h.  I built with your parameters.

Was this a new build from a new checkout? If you updated from an existing src
base, did you run make distclean over the old build?  Or just start with a new
obj/ location?


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread sasha.levin at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #7 from Sasha Levin sasha.levin at oracle dot com ---
The built was from a clean checkout. 

auto-host.h seems to be correctly created during the build. I see this after
the build failure:

$ stat host-x86_64-unknown-linux-gnu/gcc/auto-host.h 
  File: `host-x86_64-unknown-linux-gnu/gcc/auto-host.h'
  Size: 47262   Blocks: 96 IO Block: 4096   regular file
Device: fe00h/65024dInode: 15209562Links: 1
Access: (0644/-rw-r--r--)  Uid: (10017/   sasha)   Gid: (10017/   sasha)
Access: 2014-10-29 15:59:10.713463956 -0400
Modify: 2014-10-29 15:59:09.677398847 -0400
Change: 2014-10-29 15:59:09.685399348 -0400
 Birth: -


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread pmuldoon at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #8 from Phil Muldoon pmuldoon at redhat dot com ---
I am still waiting for my build to complete the full-stages.  Meanwhile does
--disable-libcc1 allow you to continue with your work?


[Bug tree-optimization/63666] [5.0 regression] FAIL: gcc.dg/vect/pr45752.c (internal compiler error)

2014-10-29 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63666

--- Comment #12 from Marc Glisse glisse at gcc dot gnu.org ---
(I am traveling this week, so I can only post a short comment)

(In reply to Richard Biener from comment #11)
 - if (need_mask_canon  arg2 == op2)
 + if (need_mask_canon  arg2 == op2
 +  can_vec_perm_p (TYPE_MODE (type), false, sel))

seems reasonable, though if we didn't have can_vec_perm_p before the
transformation (which implies we are before vector lowering) we should probably
still transform. Also, I believe that targets should try to support single
argument permutations when they support a 2 argument version that degenerates
to it when both arguments are the same.

By the way, from a quick look, I don't see where we protect against
TREE_SIDE_EFFECTS(op0) when doing op0=op1 or op1=op0 in this code, I don't
remember if there is a reason why it isn't needed.


[Bug target/63534] [5 Regression] Bootstrap failure on x86_64/i686-linux

2014-10-29 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63534

--- Comment #51 from Dominique d'Humieres dominiq at lps dot ens.fr ---
  In addition r216154 breaks a lot of asan tests with -m32: see
  
  https://gcc.gnu.org/ml/gcc-testresults/2014-10/msg02834.html

 Could you please try following patch?

 diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
 ...

The failures are gone with the patch. Thanks.


[Bug bootstrap/63622] [5.0 Regression] Bootstrap fails on x86_64-apple-darwin1[34] after revision r216305

2014-10-29 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63622

--- Comment #4 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 Created attachment 33843 [details]
 IPA ICF aliasing restriction

 Can you please try to apply following patch?
 It should disable alias creation for targets that do not support aliasing.

With the patch bootstrap proceeds up to stage 2 where it fails with

/opt/gcc/build_w/./prev-gcc/xg++ -B/opt/gcc/build_w/./prev-gcc/
-B/opt/gcc/gcc4.10w/x86_64-apple-darwin14.0.0/bin/ -nostdinc++
-B/opt/gcc/build_w/prev-x86_64-apple-darwin14.0.0/libstdc++-v3/src/.libs
-B/opt/gcc/build_w/prev-x86_64-apple-darwin14.0.0/libstdc++-v3/libsupc++/.libs 
-I/opt/gcc/build_w/prev-x86_64-apple-darwin14.0.0/libstdc++-v3/include/x86_64-apple-darwin14.0.0
 -I/opt/gcc/build_w/prev-x86_64-apple-darwin14.0.0/libstdc++-v3/include 
-I/opt/gcc/work/libstdc++-v3/libsupc++
-L/opt/gcc/build_w/prev-x86_64-apple-darwin14.0.0/libstdc++-v3/src/.libs
-L/opt/gcc/build_w/prev-x86_64-apple-darwin14.0.0/libstdc++-v3/libsupc++/.libs
-c   -g -O2  -gtoggle -DIN_GCC-fno-exceptions -fno-rtti
-fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings
-Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic
-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common
 -DHAVE_CONFIG_H -I. -I. -I../../work/gcc -I../../work/gcc/.
-I../../work/gcc/../include -I./../intl -I../../work/gcc/../libcpp/include
-I/opt/mp/include  -I../../work/gcc/../libdecnumber
-I../../work/gcc/../libdecnumber/dpd -I../libdecnumber
-I../../work/gcc/../libbacktrace -DCLOOG_INT_GMP  -DCLOOG_INT_GMP
-I/opt/mp/include  -o tree-inline.o -MT tree-inline.o -MMD -MP -MF
./.deps/tree-inline.TPo ../../work/gcc/tree-inline.c
../../work/gcc/tree-inline.c: In function 'int
estimate_num_insns_seq(gimple_seq, eni_weights*)':
../../work/gcc/tree-inline.c:5667:1: error: invalid argument to gimple call
 }
 ^
stmts
# .MEM_3 = VDEF .MEM_1(D)
retval.1640_4 = count_insns_seq (stmts, weights_2(D)); [tail call]
../../work/gcc/tree-inline.c:5667:1: internal compiler error: verify_gimple
failed

../../work/gcc/tree-inline.c:5667:1: internal compiler error: Abort trap: 6
xg++: internal compiler error: Abort trap: 6 (program cc1plus)
make[3]: *** [tree-inline.o] Abort trap: 6
make[3]: Leaving directory `/opt/gcc/build_w/gcc'
make[2]: *** [all-stage2-gcc] Error 2
make[2]: Leaving directory `/opt/gcc/build_w'
make[1]: *** [stage2-bubble] Error 2
make[1]: Leaving directory `/opt/gcc/build_w'
make: *** [all] Error 2


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread pmuldoon at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #9 from Phil Muldoon pmuldoon at redhat dot com ---
My build is not complete with the parameters specified in the PR:

../trunk/configure --prefix=/home/pmuldoon/gdb_compile_gcc/ --with-arch=native
--with-tune=native --enable-languages=c --enable-lto --enable-gold
--disable-libstdcxx --with-tune=native --enable-languages=c --enable-lto
--enable-gold --disable-libstdcx   make -j9

And it built successfully.  Which is puzzling! I notice your configure was
./configure.  Was it it an in-source build (IE not building to a separate
object file directory?)


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread pmuldoon at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #10 from Phil Muldoon pmuldoon at redhat dot com ---
Sorry I mean my build is now complete


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread sasha.levin at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #11 from Sasha Levin sasha.levin at oracle dot com ---
That's correct. I'm just building in-tree and using 'git clean -df' to reset
everything back to a pristine checkout state when I need to.


[Bug ada/62236] built-in: error: aggregate value used where an integer was expected

2014-10-29 Thread porton at narod dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62236

--- Comment #1 from Victor Porton porton at narod dot ru ---
Confirmed in GNAT GPL 2014.


[Bug ada/62235] segmentation fault on Ada 2012 code

2014-10-29 Thread porton at narod dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62235

--- Comment #2 from Victor Porton porton at narod dot ru ---
Confirmed in GNAT GPL 2014.


[Bug ada/62205] GNAT does not accept class types for Default_Iterator

2014-10-29 Thread porton at narod dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62205

--- Comment #1 from Victor Porton porton at narod dot ru ---
It does not work with GNAT GPL 2014.

$ gnat compile -gnatc -gnat12 test.ads 
gcc -c -gnatc -gnat12 test.ads
test.ads:19:28: Default Iterator must be a primitive of Descriptions_List
gnatmake: test.ads compilation error


[Bug ada/62042] Missing optimization of copying non-limited objects

2014-10-29 Thread porton at narod dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62042

--- Comment #1 from Victor Porton porton at narod dot ru ---
Confirmed in GNAT GPL 2014.


[Bug ada/62236] built-in: error: aggregate value used where an integer was expected

2014-10-29 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62236

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-10-29
 CC||ebotcazou at gcc dot gnu.org
 Ever confirmed|0   |1
   Severity|major   |normal

--- Comment #2 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
GNAT GPL has nothing to do with this Bugzilla though.


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org ---
./configure isn't supported in GCC, don't do that.


[Bug libgcc/63684] Build failure due to Let GDB reuse GCC's parser.

2014-10-29 Thread sasha.levin at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63684

--- Comment #13 from Sasha Levin sasha.levin at oracle dot com ---
From Installing GCC: Configuration
(https://gcc.gnu.org/install/configure.html):

building where srcdir == objdir should still work, but doesn't get extensive
testing


[Bug bootstrap/63622] [5.0 Regression] Bootstrap fails on x86_64-apple-darwin1[34] after revision r216305

2014-10-29 Thread howarth at bromo dot med.uc.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63622

howarth at bromo dot med.uc.edu changed:

   What|Removed |Added

 CC||howarth at bromo dot med.uc.edu

--- Comment #5 from howarth at bromo dot med.uc.edu ---
(In reply to Martin Liška from comment #3)
 Created attachment 33843 [details]
 IPA ICF aliasing restriction
 
 Can you please try to apply following patch?
 It should disable alias creation for targets that do not support aliasing.

Is there a problem with this patch due to the definition of...

#define ASM_WEAKEN_DECL(FILE, DECL, NAME, ALIAS)\

in gcc/config/darwin.h?

[Bug fortran/63685] New: kern.osversion bug shows up with GFORTRAN as well as GCC

2014-10-29 Thread cloverm at leidos dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63685

Bug ID: 63685
   Summary: kern.osversion bug shows up with GFORTRAN as well as
GCC
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: cloverm at leidos dot com

I used the fortran compiler, 4.9.0, with the new Mac OS (Yosemite, 10.10), and
got the same error message others got from the gcc compiler:

gfortran: warning: couldn’t understand kern.osversion ‘14.0.0

There doesn't seem to be a way to work around this, so my laptop is currently
useless for compiling my code.

[Bug target/63685] kern.osversion bug shows up with GFORTRAN as well as GCC

2014-10-29 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63685

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Component|fortran |target
 Resolution|--- |DUPLICATE

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
Yosemite support is not there yet or at least in a released version. See bug
61407.

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


[Bug target/61407] Build errors on latest OS X 10.10 Yosemite with Xcode 6 on GCC 4.8.3

2014-10-29 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61407

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 CC||cloverm at leidos dot com

--- Comment #44 from Andrew Pinski pinskia at gcc dot gnu.org ---
*** Bug 63685 has been marked as a duplicate of this bug. ***


[Bug target/63534] [5 Regression] Bootstrap failure on x86_64/i686-linux

2014-10-29 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63534

--- Comment #52 from Jeffrey A. Law law at redhat dot com ---
Igor, can you post the patch from c#50 for official review?  Thanks!


[Bug rtl-optimization/63620] RELOAD lost SET_GOT dependency on Darwin

2014-10-29 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63620

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |vmakarov at redhat dot 
com

--- Comment #14 from Jeffrey A. Law law at redhat dot com ---
Ilya, thanks for the Linux (well, non-Darwin) testcase.  I think it shows very
clearly that this is an IRA/LRA problem.

If we look at the .ira dump we have:


(insn/f 43 7 2 2 (parallel [
(set (reg:SI 88)
(unspec:SI [
(const_int 0 [0])
] UNSPEC_SET_GOT))
(clobber (reg:CC 17 flags))
]) 679 {set_got}
 (expr_list:REG_UNUSED (reg:SI 88)
(expr_list:REG_UNUSED (reg:CC 17 flags)
(expr_list:REG_EQUIV (unspec:SI [
(const_int 0 [0])
] UNSPEC_SET_GOT)
(expr_list:REG_CFA_FLUSH_QUEUE (nil)
(nil))


We assign r88 to %eax.  Note the REG_UNUSED note.  The validity of the
REG_UNUSED note is debatable since there aren't any uses of r88 in the RTL, but
we do have those hidden uses when we have reloads.

Later in the .ira dump we have:

(call_insn 13 12 14 2 (parallel [
(call (mem:QI (reg/v/f:SI 4 si [orig:87 f ] [87]) [0 *(__float128
(*T311) (__float128)) f_4(D) S1 A8])
(const_int 32 [0x20]))
(set (reg/f:SI 7 sp)
(plus:SI (reg/f:SI 7 sp)
(const_int 4 [0x4])))
]) j.c:11 657 {*call_pop}
 (expr_list:REG_CALL_DECL (nil)
(expr_list:REG_ARGS_SIZE (const_int 28 [0x1c])
(nil)))
(nil))

[ ... ]

(insn 21 18 22 3 (set (mem:TF (pre_dec:SI (reg/f:SI 7 sp)) [1  S16 A128])
(const_double:TF 1.0e+29 [0x0.a18f07d736b90be55p+97])) j.c:13 121
{*pushtf}
 (expr_list:REG_ARGS_SIZE (const_int 16 [0x10])
(nil)))


So IRA assigns r88 to %eax.  Which makes sense given the raw RTL.  As far as
IRA can tell, r88 is just set in the SET_GOT insn and it never gets used.

LRA turns that into:

(insn/f 43 7 2 2 (parallel [
(set (reg:SI 0 ax [88])
(unspec:SI [
(const_int 0 [0])
] UNSPEC_SET_GOT))
(clobber (reg:CC 17 flags))
]) 679 {set_got}
 (expr_list:REG_EQUIV (unspec:SI [
(const_int 0 [0])
] UNSPEC_SET_GOT)
(expr_list:REG_CFA_FLUSH_QUEUE (nil)
(nil

[ ... ]

(call_insn 13 12 14 2 (parallel [
(call (mem:QI (reg/v/f:SI 4 si [orig:87 f ] [87]) [0 *(__float128
(*T311) (__float128)) f_4(D) S1 A8])
(const_int 32 [0x20]))
(set (reg/f:SI 7 sp)
(plus:SI (reg/f:SI 7 sp)
(const_int 4 [0x4])))
]) j.c:11 657 {*call_pop}
 (expr_list:REG_CALL_DECL (nil)
(expr_list:REG_ARGS_SIZE (const_int 28 [0x1c])
(nil)))
(nil))

[ ... ]

(insn 46 18 47 3 (set (reg:SI 0 ax [93])
(plus:SI (reg:SI 0 ax [88])
(const:SI (unspec:SI [
(symbol_ref/u:SI (*.LC0) [flags 0x2])
] UNSPEC_GOTOFF j.c:13 213 {*leasi}
 (expr_list:REG_EQUAL (symbol_ref/u:SI (*.LC0) [flags 0x2])
(nil)))
(insn 47 46 21 3 (set (reg:TF 23 xmm2 [94])
(mem/u/c:TF (reg:SI 0 ax [93]) [1  S16 A128])) j.c:13 126
{*movtf_internal}
 (nil))



Which is obviously bogus because %eax is clobbered at insn 13 and thus won't
have a useful value at insn 46.

Officially assigning to Vlad...