[Bug tree-optimization/44336] [4.4/4.5/4.6 Regression] ICE: verify_ssa failed: SSA_NAME_DEF_STMT is wrong with -fipa-struct-reorg -fwhole-program

2010-06-08 Thread zsojka at seznam dot cz


--- Comment #2 from zsojka at seznam dot cz  2010-06-08 14:41 ---
Created an attachment (id=20867)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20867action=view)
different testcase

This testcase fails with similiar message:
$ gcc -O1 -fipa-struct-reorg -fwhole-program pr44336-2.c
pr44336-2.c: In function 'main':
pr44336-2.c:11:1: error: SSA_NAME_DEF_STMT is wrong
Expected definition statement:
# .MEM_4 = VDEF .MEM_3
D.2721_1 = foo (s.0);

Actual definition statement:
# .MEM_3 = VDEF .MEM_2(D)
D.2721_1 = foo (s);
pr44336-2.c:11:1: internal compiler error: verify_ssa failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Fails in 4.4 r158133 and 4.5 r158978 too.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44336



[Bug bootstrap/44469] New: [4.5/4.6 Regression] internal compiler error: in fixup_reorder_chain, at cfglayout.c:797

2010-06-08 Thread siarhei dot siamashka at gmail dot com
Target: armv7l-unknown-linux-gnueabi
Configured with: ../gcc-4_5-branch/configure --prefix=/home/ssvb/gcc-test/bin
--target=armv7l-unknown-linux-gnueabi --enable-languages=c --without-headers
Thread model: posix
gcc version 4.5.1 20100607 (prerelease) (GCC)

$ armv7l-unknown-linux-gnueabi -O2 testcase.i
testcase.i: In function ‘a’:
testcase.i:15:1: internal compiler error: in fixup_reorder_chain, at
cfglayout.c:797
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

This bug prevents bootstrap on ARM when configured with '--disable-checking'
option.
Also see PR42347 comment 28


-- 
   Summary: [4.5/4.6 Regression] internal compiler error: in
fixup_reorder_chain, at cfglayout.c:797
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: siarhei dot siamashka at gmail dot com
GCC target triplet: armv7l-unknown-linux-gnueabi


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44469



[Bug bootstrap/44469] [4.5/4.6 Regression] internal compiler error: in fixup_reorder_chain, at cfglayout.c:797

2010-06-08 Thread siarhei dot siamashka at gmail dot com


--- Comment #1 from siarhei dot siamashka at gmail dot com  2010-06-08 
14:45 ---
Created an attachment (id=20868)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20868action=view)
testcase.i


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44469



[Bug bootstrap/42347] [4.5/4.6 Regression] sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796

2010-06-08 Thread siarhei dot siamashka at gmail dot com


--- Comment #30 from siarhei dot siamashka at gmail dot com  2010-06-08 
14:49 ---
(In reply to comment #29)
 Please file a new PR for that, with preprocessed source and all other relevant
 info for reproduction.

Thanks, filed PR44469


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42347



[Bug tree-optimization/44423] [4.5/4.6 Regression] Massive performance regression in SSE code due to SRA

2010-06-08 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2010-06-08 14:50 ---
I don't think you need flow-sensitivity.

Basically when you have only aggregate uses (as in this case) then you only
want to scalarize if the destination of the use is scalarized as well
(to be able to copyprop out the aggregate copy).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44423



[Bug bootstrap/44469] [4.5/4.6 Regression] internal compiler error: in fixup_reorder_chain, at cfglayout.c:797

2010-06-08 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.5.1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44469



[Bug libstdc++/44413] inefficient code for std::string::compare on x86-64

2010-06-08 Thread dgohman at gmail dot com


--- Comment #3 from dgohman at gmail dot com  2010-06-08 14:54 ---
Callers of compare are already exposed to __builtin_memcmp result values (with
default traits) which vary depending on the target and compiler flags.

And since _S_compare is only used as a tie-breaker after the memcmp, it's hard
to imagine any code innocently relying on it returning a particular value.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44413



[Bug tree-optimization/44468] [4.3/4.4/4.5/4.6 Regression] Bogus access re-construction from offset calculation

2010-06-08 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|Bogus access re-construction|[4.3/4.4/4.5/4.6 Regression]
   |from offset calculation |Bogus access re-construction
   ||from offset calculation
   Target Milestone|--- |4.3.6


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44468



[Bug tree-optimization/44423] [4.5/4.6 Regression] Massive performance regression in SSE code due to SRA

2010-06-08 Thread jamborm at gcc dot gnu dot org


--- Comment #9 from jamborm at gcc dot gnu dot org  2010-06-08 15:00 ---
(In reply to comment #8)
 I don't think you need flow-sensitivity.
 
 Basically when you have only aggregate uses (as in this case)

Vectors are considered scalars in GCC.  That is why the solutions
described above work.

 then you only want to scalarize if the destination of the use is
 scalarized as well (to be able to copyprop out the aggregate copy).

Well, that is what I thought until someone filed PR 43846.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44423



[Bug libstdc++/44413] inefficient code for std::string::compare on x86-64

2010-06-08 Thread paolo dot carlini at oracle dot com


--- Comment #4 from paolo dot carlini at oracle dot com  2010-06-08 15:09 
---
I'm not convinced. The code at issue is used when memcmp returns zero, thus one
string is a prefix of the other, a well defined situation. For *eons* we have
been returning a number which is much larger (in modulo) if one string is much
longer. Before considering changing this, I want to see a very solid real life
example, with numbers, of code benefiting from this tuning. Otherwise, I guess
we'll do it, but only when we'll break the ABI.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44413



[Bug tree-optimization/44423] [4.5/4.6 Regression] Massive performance regression in SSE code due to SRA

2010-06-08 Thread rguenth at gcc dot gnu dot org


--- Comment #10 from rguenth at gcc dot gnu dot org  2010-06-08 15:11 
---
(In reply to comment #9)
 (In reply to comment #8)
  I don't think you need flow-sensitivity.
  
  Basically when you have only aggregate uses (as in this case)
 
 Vectors are considered scalars in GCC.  That is why the solutions
 described above work.
 
  then you only want to scalarize if the destination of the use is
  scalarized as well (to be able to copyprop out the aggregate copy).
 
 Well, that is what I thought until someone filed PR 43846.

Hm, yes.  But there you know that

  D.2464.m[0] = D.2473_20;
  D.2464.m[1] = D.2472_19;
  D.2464.m[2] = D.2471_18;
  *b_1(D) = D.2464;

D.2464 will be dead after scalarization.  In the particular case of the
current bug the aggregate remains live because of the load from va.v
which we cannot scalarize(*).

(*) we can scalarize this particular case if you manage to build a
proper constructor from the elements - but that's probably a bit
involved.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44423



[Bug target/44364] Wrong code with e500 double floating point

2010-06-08 Thread Kyle dot D dot Moffett at boeing dot com


--- Comment #35 from Kyle dot D dot Moffett at boeing dot com  2010-06-08 
15:23 ---
Hrm, well PPL still seems to be failing the interval1 test, but I'm not sure
that one's related as the part that fails is test01float.  More info to
come shortly.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44364



[Bug middle-end/42574] [4.3/4.4/4.5/4.6 Regression] Address of global variable is calculated multiple times (missed CSE)

2010-06-08 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #10 from mkuvyrkov at gcc dot gnu dot org  2010-06-08 15:24 
---
Steven, I'm shamelessly stealing this PR from you.

There are two sides to this missed optimization:

1. Calculation of PIC address is not CSE'd; this is the same as PR42495 and
will be fixed there.
2. Constant 400, which expands to 2 instructions is not CSE'd.

After addressing the first issue, the second problem can be fixed by asking
hoist to CSE complicated constants and making sure that RA will rematerialize
them instead of spilling under high register pressure.

We can define a constant complicated if it takes a PARALLEL -- (parallel
[(set (reg1) (const)) (clobber reg2)]) -- to set it; this is a common way of
defining instructions that should be split later and require a temporary
register to hold intermediate value.

I'm now testing a patch that makes ARM backend to expand constants into
parallels instead of sequences of two instructions and tweaking hoist to gcse
complicated const_int's.

The result is the following:

test:
push{r4, r5, r6, lr}
ldr r3, .L3
ldr r2, .L3+4
.LPIC0:
add r3, pc
ldr r5, [r3, r2]
mov r4, #200
lsl r4, r4, #1
mov r6, r0
ldr r0, [r5, r4]
bl  func1
ldr r0, [r5, r4]
mov r1, r6
bl  func2
cmp r0, #0
beq .L2
bl  func
.L2:
ldr r0, [r5, r4]
bl  func3
@ sp needed for prologue
pop {r4, r5, r6, pc}
.L4:
.align  2
.L3:
.word   _GLOBAL_OFFSET_TABLE_-(.LPIC0+4)
.word   glob(GOT)


-- 

mkuvyrkov at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|steven at gcc dot gnu dot   |mkuvyrkov at gcc dot gnu dot
   |org |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42574



[Bug rtl-optimization/40615] unnecessary CSE

2010-06-08 Thread hjl dot tools at gmail dot com


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40615



[Bug rtl-optimization/42500] Unnecessary mov of sp to a register

2010-06-08 Thread hjl dot tools at gmail dot com


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42500



[Bug libstdc++/44413] inefficient code for std::string::compare on x86-64

2010-06-08 Thread paolo dot carlini at oracle dot com


--- Comment #5 from paolo dot carlini at oracle dot com  2010-06-08 15:59 
---
Let's do this change first in ext/vstring and let's see how people react. In
that case we also have the advantage that nothing is exported from the *.so,
thus old code linking to the new lib will not risk behaving differently all of
a sudden.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44413



[Bug middle-end/44297] Big spec cpu2006 prefetch regressions on gcc 4.6 on x86

2010-06-08 Thread changpeng dot fang at amd dot com


--- Comment #21 from changpeng dot fang at amd dot com  2010-06-08 16:23 
---
Just for the record, non-constant step prefetching improves 459.GemsFDTD
by 5.5% (under -O3 + prefetch) on amd-linux64 systems. And the gains are
from the following set of loops:
NFT.fppized.f90:1268
NFT.fppized.f90:1227
NFT.fppized.f90:1186
NFT.fppized.f90:1148
NFT.fppized.f90:1109
NFT.fppized.f90:1072


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44297



[Bug tree-optimization/44393] [4.5/4.6 Regression] ICE: verify_ssa failed: no immediate_use list with -Os -ftree-loop-distribution

2010-06-08 Thread hjl dot tools at gmail dot com


--- Comment #3 from hjl dot tools at gmail dot com  2010-06-08 16:47 ---
It is caused by revision 145494:

http://gcc.gnu.org/ml/gcc-cvs/2009-04/msg00115.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-06-08 16:47:23
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44393



[Bug tree-optimization/44393] [4.5/4.6 Regression] ICE: verify_ssa failed: no immediate_use list with -Os -ftree-loop-distribution

2010-06-08 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2010-06-08 17:33 ---
Whatever.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-06-08 16:47:23 |2010-06-08 17:33:49
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44393



[Bug libstdc++/43838] Incorrect output from abi::__cxa_demangle

2010-06-08 Thread slawomir at ezono dot com


--- Comment #3 from slawomir at ezono dot com  2010-06-08 17:55 ---
Created an attachment (id=20869)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20869action=view)
simpler example

Preprocessed source of simpler program.
The only #include used was typeinfo which is needed in order to compile with
g++


-- 

slawomir at ezono dot com changed:

   What|Removed |Added

  Attachment #20456|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43838



[Bug libstdc++/43838] Incorrect output from abi::__cxa_demangle

2010-06-08 Thread paolo dot carlini at oracle dot com


--- Comment #4 from paolo dot carlini at oracle dot com  2010-06-08 17:57 
---
Excellent, thanks a lot.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 Status|WAITING |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-06-08 17:57:00
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43838



[Bug libstdc++/43838] Incorrect output from abi::__cxa_demangle

2010-06-08 Thread paolo dot carlini at oracle dot com


--- Comment #5 from paolo dot carlini at oracle dot com  2010-06-08 18:02 
---
I also double checked that indeed the last null_type appears truncated.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43838



[Bug libstdc++/43838] Incorrect output from abi::__cxa_demangle

2010-06-08 Thread paolo dot carlini at oracle dot com


--- Comment #6 from paolo dot carlini at oracle dot com  2010-06-08 18:05 
---
Ian, any idea what may be happening here?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43838



[Bug tree-optimization/39874] [4.4 regression] missing VRP (submission)

2010-06-08 Thread sandra at gcc dot gnu dot org


--- Comment #5 from sandra at gcc dot gnu dot org  2010-06-08 18:16 ---
Subject: Bug 39874

Author: sandra
Date: Tue Jun  8 18:15:53 2010
New Revision: 160445

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=160445
Log:
2010-06-08  Sandra Loosemore  san...@codesourcery.com

PR tree-optimization/39874
PR middle-end/28685

gcc/
* gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
Declare.
* gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
same_bool_result_p): New.
(and_var_with_comparison, and_var_with_comparison_1,
and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
(or_var_with_comparison, or_var_with_comparison_1,
or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
* tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
of combine_comparisons.
* tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.

gcc/testsuite/
* gcc.dg/pr39874.c: New file.

Added:
trunk/gcc/testsuite/gcc.dg/pr39874.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-fold.c
trunk/gcc/gimple.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-ifcombine.c
trunk/gcc/tree-ssa-reassoc.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39874



[Bug middle-end/28685] Multiple comparisons are not simplified

2010-06-08 Thread sandra at gcc dot gnu dot org


--- Comment #16 from sandra at gcc dot gnu dot org  2010-06-08 18:16 ---
Subject: Bug 28685

Author: sandra
Date: Tue Jun  8 18:15:53 2010
New Revision: 160445

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=160445
Log:
2010-06-08  Sandra Loosemore  san...@codesourcery.com

PR tree-optimization/39874
PR middle-end/28685

gcc/
* gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
Declare.
* gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
same_bool_result_p): New.
(and_var_with_comparison, and_var_with_comparison_1,
and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
(or_var_with_comparison, or_var_with_comparison_1,
or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
* tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
of combine_comparisons.
* tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.

gcc/testsuite/
* gcc.dg/pr39874.c: New file.

Added:
trunk/gcc/testsuite/gcc.dg/pr39874.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-fold.c
trunk/gcc/gimple.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-ifcombine.c
trunk/gcc/tree-ssa-reassoc.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28685



[Bug libffi/42275] pkg-config (.pc) file missing in libffi (lost during import)

2010-06-08 Thread ensonic at hora-obscura dot de


--- Comment #2 from ensonic at hora-obscura dot de  2010-06-08 19:16 ---
There are even patches flying around on the net for this, please!
http://www.mail-archive.com/pld-cvs-com...@lists.pld-linux.org/msg178946.html


-- 

ensonic at hora-obscura dot de changed:

   What|Removed |Added

   Severity|normal  |major


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42275



[Bug middle-end/44297] Big spec cpu2006 prefetch regressions on gcc 4.6 on x86

2010-06-08 Thread borntraeger at de dot ibm dot com


--- Comment #22 from borntraeger at de dot ibm dot com  2010-06-08 19:42 
---
I bootstrapped with patches 0002 and 0003.
The results are also good.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44297



[Bug libffi/42275] pkg-config (.pc) file missing in libffi (lost during import)

2010-06-08 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|major   |normal


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42275



[Bug plugins/44459] plugin interface depends on name mangling

2010-06-08 Thread pinskia at gcc dot gnu dot org


--- Comment #5 from pinskia at gcc dot gnu dot org  2010-06-08 19:55 ---
There is no specifications for plugins really.  And really this is on purpose
as we don't want to freeze down the rest of the compiler just for plugins. 


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44459



[Bug tree-optimization/44462] Redundant looping pure functions whose return value is dead are not optimized out

2010-06-08 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2010-06-08 20:10 ---
Why do we remove register LHS in DCE again? 

Because it reduces the amount of garbage produced by expand :).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44462



[Bug target/44364] Wrong code with e500 double floating point

2010-06-08 Thread Kyle dot D dot Moffett at boeing dot com


--- Comment #36 from Kyle dot D dot Moffett at boeing dot com  2010-06-08 
20:34 ---
Ok, I'm pretty sure this is unrelated to this bug, but I still get one
test-failure with PPL 0.10.2.  The interval1 test fails due to the
test01float subtest, apparently due to very slightly excessive float
rounding errors (after 100 rounds of the equivalent of x = (x + (2/x)) / 2 it
approximates ~0.02% past the maximum acceptable error bounds).

The double testcase passes just fine (although with the same error bounds and
extra precision that seems perfectly reasonable).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44364



[Bug plugins/44459] plugin interface depends on name mangling

2010-06-08 Thread amylaar at gcc dot gnu dot org


--- Comment #6 from amylaar at gcc dot gnu dot org  2010-06-08 20:34 ---
(In reply to comment #5)
 There is no specifications for plugins really.  And really this is on purpose
 as we don't want to freeze down the rest of the compiler just for plugins.

There is a difference between freezing the rest of the compiler and making
reasonable adaptations to avoid unnecessary interface churn / cross-language
linking issues.  I intend to apply the approved patch to gcc-plugin.h on
Wednesday (we are supposedly still in a trunk freeze right now, even though I
have seen a few non-merge patches going in). 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44459



[Bug fortran/43040] Wrong decl for mathbuiltins - wrong code with LTO

2010-06-08 Thread fxcoudert at gcc dot gnu dot org


--- Comment #6 from fxcoudert at gcc dot gnu dot org  2010-06-08 20:39 
---
I'm currently looking at math builtins for __float128 support, so I'll check
that.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-02-12 11:07:37 |2010-06-08 20:39:06
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43040



[Bug fortran/32049] Support on x86_64 also kind=16

2010-06-08 Thread fxcoudert at gcc dot gnu dot org


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-06-02 07:37:11 |2010-06-08 20:42:25
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32049



[Bug testsuite/42843] --enable-build-with-cxx plugin tests fail

2010-06-08 Thread amylaar at gcc dot gnu dot org


--- Comment #3 from amylaar at gcc dot gnu dot org  2010-06-08 20:52 ---
(In reply to comment #1)
 A patch is here:
 http://gcc.gnu.org/ml/gcc-patches/2010-01/msg01200.html

This is an update of the patch to revision 160389:
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg00822.html


-- 

amylaar at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to fail||4.5.0 4.6.0
   Last reconfirmed|-00-00 00:00:00 |2010-06-08 20:52:24
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42843



[Bug bootstrap/44470] New: [4.6 Regression] Failed to bootstrap with - -with-arch=atom

2010-06-08 Thread hjl dot tools at gmail dot com
Revision 160417 failed to compile libgcc:

[...@gnu-32 rrs]$ cat testcase.i
typedef int SItype __attribute__ ((mode (SI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));
typedef int DItype __attribute__ ((mode (DI)));
  struct DWstruct {SItype low, high;};
typedef union
{
  struct DWstruct s;
  DItype ll;
} DWunion;
DItype
__negdi2 (DItype u)
{
  const DWunion uu = {.ll = u};
  const DWunion w = { {.low = -uu.s.low,
 .high = -uu.s.high - ((USItype) -uu.s.low  0) } };
  return w.ll;
}
[...@gnu-32 rrs]$ /export/gnu/import/rrs/160417/usr/bin/gcc  -m32 -march=atom
-O2 -fPIC -S testcase.i   
testcase.i: In function ‘__negdi2’:
testcase.i:17:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
[...@gnu-32 rrs]$


-- 
   Summary: [4.6 Regression] Failed to bootstrap with - -with-
arch=atom
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44470



[Bug fortran/44471] New: Wrong call with variadic declaration

2010-06-08 Thread burnus at gcc dot gnu dot org
Reported by Jakub. gfortran -O2 -fwhole-file generates a variadic call to
bar_. (The decl of the procedure itself is OK.)

Expected:
a) With -fwhole-file, the actual declaration should be used.
b) As Fortran does not support variadic calls at all, there should be never
variatic calls be generated.


(variadic calls are those whose prototype ends in C with ...; when generating
the argument list with build_function_type_list the function is always
non-variadic (cf. also build_varargs_function_type_list) - if one generates the
argument list manually, the last argument should be VOID_TYPE.)

 * * *

subroutine bar (a, n)
  integer :: n, a(*)
end subroutine bar

subroutine foo (b, n)
  integer :: n, b(n)
  n = 6
  call bar (b, 5)
  b(1:5) = 0
end subroutine foo

 * * *

How to test (thanks to Jakub for the list of options):

a) x86_64 (for non floating points): Assembler has xorl %eax, %eax before the
call (i.e. the variadic function has no floating-point arguments)

b) In a debugger:  b var-tracking.c:8357 if insn-code == CALL_INSN
(which is if (INSN_P (insn)) in vt_initialize) -- and then:
debug_rtx (insn)


-- 
   Summary: Wrong call with variadic declaration
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44471



[Bug bootstrap/44458] Bootstrap fails on arm_float_words_big_endian implicit declaration when Ada on arm-linux

2010-06-08 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |steven at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-06-08 21:51:28
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44458



[Bug bootstrap/44335] [4.6 regression] gcc-4.6-20100529 java bootstrap failure on arm-linux-gnueabi

2010-06-08 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |steven at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-06-08 21:51:43
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44335



[Bug bootstrap/44470] [4.6 Regression] Failed to bootstrap with - -with-arch=atom

2010-06-08 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2010-06-08 22:00 ---
It may be broken by revision 160394:

http://gcc.gnu.org/ml/gcc-cvs/2010-06/msg00307.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

URL||uros
Summary|[4.6 Regression] Failed to  |[4.6 Regression] Failed to
   |bootstrap with - -with- |bootstrap with - -with-
   |arch=atom   |arch=atom


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44470



[Bug bootstrap/44432] [boot with C++] configure does not check presence of host C++ compiler

2010-06-08 Thread amylaar at gcc dot gnu dot org


--- Comment #1 from amylaar at gcc dot gnu dot org  2010-06-08 22:50 ---
A patch is here:
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg00835.html


-- 

amylaar at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||patch
   Last reconfirmed|-00-00 00:00:00 |2010-06-08 22:50:20
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44432



[Bug bootstrap/44433] [meta-bug] --enable-build-with-cxx issues

2010-06-08 Thread amylaar at gcc dot gnu dot org


--- Comment #1 from amylaar at gcc dot gnu dot org  2010-06-08 23:15 ---
I think PR44362 no longer block adoption of --enable-build-with-cxx
in trunk, since the C++ part of the patch for that PR was checked in.
It might sense to keep it in the dependency list if we need this to
backport the fixes into a branch, though.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44433



[Bug plugins/44459] plugin interface depends on name mangling

2010-06-08 Thread amylaar at gcc dot gnu dot org


--- Comment #7 from amylaar at gcc dot gnu dot org  2010-06-08 23:21 ---
Subject: Bug 44459

Author: amylaar
Date: Tue Jun  8 23:21:48 2010
New Revision: 160448

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=160448
Log:
PR plugins/44459:
* gcc-plugin.h: Encapsulate all declarations in extern C.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/gcc-plugin.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44459



[Bug target/44067] internal compiler error: in rs6000_split_multireg_move, at config/rs6000/rs6000.c:16713

2010-06-08 Thread amodra at gcc dot gnu dot org


--- Comment #9 from amodra at gcc dot gnu dot org  2010-06-09 00:16 ---
Subject: Bug 44067

Author: amodra
Date: Wed Jun  9 00:15:46 2010
New Revision: 160449

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=160449
Log:
PR target/44067
* config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
e500v2 target.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.md


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44067



[Bug target/44067] internal compiler error: in rs6000_split_multireg_move, at config/rs6000/rs6000.c:16713

2010-06-08 Thread amodra at gcc dot gnu dot org


--- Comment #10 from amodra at gcc dot gnu dot org  2010-06-09 00:20 ---
Subject: Bug 44067

Author: amodra
Date: Wed Jun  9 00:20:27 2010
New Revision: 160454

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=160454
Log:
PR target/44067
* config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
e500v2 target.


Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/config/rs6000/rs6000.md


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44067



[Bug target/44067] internal compiler error: in rs6000_split_multireg_move, at config/rs6000/rs6000.c:16713

2010-06-08 Thread amodra at gmail dot com


--- Comment #11 from amodra at gmail dot com  2010-06-09 00:29 ---
Fixed


-- 

amodra at gmail dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.5.1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44067



[Bug bootstrap/44470] [4.6 Regression] Failed to bootstrap with - -with-arch=atom

2010-06-08 Thread hjl dot tools at gmail dot com


--- Comment #2 from hjl dot tools at gmail dot com  2010-06-09 00:52 ---
(In reply to comment #1)
 It may be broken by revision 160394:
 
 http://gcc.gnu.org/ml/gcc-cvs/2010-06/msg00307.html
 

This change moved

(insn:TI 11 41 12 pr44470.i:15 (parallel [
(set (reg:SI 1 dx [orig:61 w$s$high ] [61])
(plus:SI (reg:SI 2 cx [69])
(reg:SI 1 dx [orig:75 uu+4 ] [75])))
(clobber (reg:CC 17 flags))
]) 251 {*addsi_1} (expr_list:REG_DEAD (reg:SI 2 cx [69])
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil

(insn 12 11 23 pr44470.i:15 (parallel [
(set (reg:SI 1 dx [orig:61 w$s$high ] [61])
(neg:SI (reg:SI 1 dx [orig:61 w$s$high ] [61])))
(clobber (reg:CC 17 flags))
]) 442 {*negsi2_1} (expr_list:REG_UNUSED (reg:CC 17 flags)
(nil)))

into epilogue.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44470



[Bug bootstrap/44470] [4.6 Regression] Failed to bootstrap with - -with-arch=atom

2010-06-08 Thread hjl dot tools at gmail dot com


--- Comment #3 from hjl dot tools at gmail dot com  2010-06-09 00:59 ---
The old scheduler:

;;   ==
;;   -- basic block 2 from 37 to 42 -- after reload
;;   ==

;;0--37 [--sp]=bp :atom-dual-2c
;;1--44 {cx=0;clobber flags;} :atom-simple-either
;;2--38 bp=sp :atom-simple-either
;;6--26 ax=[bp+0x8]   :atom-simple-either
;;6--27 dx=[bp+0xc]   :atom-simple-either
;;7--45 flags=cmp(ax,0)   :atom-simple-either
;;8--46 strict_low_part=flags!=0  :atom-simple-either
;;8--13 {ax=-ax;clobber flags;}   :atom-simple-either
;;9--11 {dx=cx+dx;clobber flags;} :atom-simple-either
;;   10--12 {dx=-dx;clobber flags;}   :atom-simple-either
;;   10--23 use ax:nothing
;;   11--41 {bp=[sp];sp=sp+0x4;}  :atom-dual-2c
;;   12--42 return:atom-dual-1c
;;  Ready list (final):  
;;   total time = 12
;;   new head = 37
;;   new tail = 42

The new one:
;;   ==
;;   -- basic block 2 from 37 to 42 -- after reload
;;   ==

;;0--37 [--sp]=bp :atom-dual-2c
;;1--44 {cx=0;clobber flags;} :atom-simple-either
;;2--38 bp=sp :atom-simple-either
;;6--26 ax=[bp+0x8]   :atom-simple-either
;;6--27 dx=[bp+0xc]   :atom-simple-either
;;7--45 flags=cmp(ax,0)   :atom-simple-either
;;8--46 strict_low_part=flags!=0  :atom-simple-either
;;8--13 {ax=-ax;clobber flags;}   :atom-simple-either
;;9--41 {bp=[sp];sp=sp+0x4;}  :atom-dual-2c
;;   12--11 {dx=cx+dx;clobber flags;} :atom-simple-either
;;   12--12 {dx=-dx;clobber flags;}   :atom-simple-either
;;   13--23 use ax:nothing
;;   13--42 return:atom-dual-1c
;;  Ready list (final):  
;;   total time = 13
;;   new head = 37
;;   new tail = 42

It is slower.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44470



[Bug target/43876] [avr] Improper updating of struct members when written out of order from struct definition

2010-06-08 Thread eric dot weddington at atmel dot com


--- Comment #3 from eric dot weddington at atmel dot com  2010-06-09 02:13 
---
Confirmed.
Testing fix...


-- 

eric dot weddington at atmel dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |eric dot weddington at atmel
   |dot org |dot com
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-06-09 02:13:23
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43876



[Bug c/44472] New: __builtin_ia32_pcmpestri128 generates an additional pcmpestrm operation

2010-06-08 Thread jeff_wegher at yahoo dot com
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-trunk/configure --prefix=/home/jeff/gnu/TR
--program-suffix=TR --enable-languages=c,c++
Thread model: posix
gcc version 4.6.0 20100608 (experimental) (GCC) 

While running some tests against SSE4.2 instructions, I noticed that the
__builtin_ia32_pcmpestri128 method generates the correct pcmpestri call
followed immediately by an extraneous pcmpestrm call.  The second call goes
away when compiled with any optimization level.

A very simple test program requiring no pre-processing:

BEGIN SAMPLE: sseTest2.c
typedef long long __m128i __attribute__ ((__vector_size__ (16),
__may_alias__));
typedef char __v16qi __attribute__ ((__vector_size__ (16)));

int
main()
{
__v16qi c = (__v16qi){ 'K' };
__v16qi str1 =
(__v16qi){'A','B','C','D','E','F','G','H','I','J','K','L','M'};

int v = __builtin_ia32_pcmpestri128(c, 1, str1, 13, 0);

return v;
}
END SAMPLE

Building with:
~/gnu/TR/bin/gccTR -S -msse4.2 sseTest2.c -o sseTest2.nonoptimized.s

shows the extra opcode:
movdqa  .LC0(%rip), %xmm0
movdqa  %xmm0, -32(%rbp)
movdqa  .LC1(%rip), %xmm0
movdqa  %xmm0, -48(%rbp)
movdqa  -48(%rbp), %xmm1
movdqa  -32(%rbp), %xmm0
movl$1, %eax
movl$13, %edx
pcmpestri   $0, %xmm1, %xmm0
pcmpestrm   $0, %xmm1, %xmm0
movl%ecx, -4(%rbp)
movl-4(%rbp), %eax
leave


Building with:
~/gnu/TR/bin/gccTR -S -O -msse4.2 sseTest2.c -o sseTest2.optimized.s

shows no extra opcode:
movdqa  .LC0(%rip), %xmm0
movl$1, %eax
movl$13, %edx
pcmpestri   $0, .LC1(%rip), %xmm0
movl%ecx, %eax
ret


-- 
   Summary: __builtin_ia32_pcmpestri128 generates an additional
pcmpestrm operation
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jeff_wegher at yahoo dot com
 GCC build triplet: 4.6.0
  GCC host triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44472



[Bug c/44472] __builtin_ia32_pcmpestri128 generates an additional pcmpestrm operation

2010-06-08 Thread jeff_wegher at yahoo dot com


--- Comment #1 from jeff_wegher at yahoo dot com  2010-06-09 02:38 ---
Created an attachment (id=20870)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20870action=view)
Example program


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44472



[Bug other/44034] target hooks are hard to maintain

2010-06-08 Thread amylaar at gcc dot gnu dot org


--- Comment #5 from amylaar at gcc dot gnu dot org  2010-06-09 03:14 ---
(In reply to comment #4)

updated patch for revision 160454:

http://gcc.gnu.org/ml/gcc-patches/2010-06/msg00846.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44034



[Bug c++/44473] New: iterators already defined for std::vector when using std::decimal

2010-06-08 Thread rmlong at gmail dot com
If checking empty then attempting to push back the following errors are
reported:
main.s: Assembler messages:
main.s:2236: Error: symbol
`_ZNK9__gnu_cxx17__normal_iteratorIPDfSt6vectorIDfSaIDfEEE4baseEv' is already
defined
main.s:2542: Error: symbol
`_ZN9__gnu_cxx17__normal_iteratorIPDfSt6vectorIDfSaIDfEEEC2ERKS1_' is already
defined

Preprocessed file: http://dl.dropbox.com/u/2280/main.ii
Example code:
#include decimal/decimal
#include vector

int main()
{
std::vectorstd::decimal::decimal32 vec;

if (vec.empty())
{
vec.push_back(std::decimal::decimal32(0));
}

return 0;
}


-- 
   Summary: iterators already defined for std::vector when using
std::decimal
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rmlong at gmail dot com
 GCC build triplet: --with-gmp=/devsandbox/cxp/ext/compiler/gmp/ --with-
mpc=/devsand
  GCC host triplet: RHEL5.5
GCC target triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44473



[Bug c++/44473] iterators already defined for std::vector when using std::decimal

2010-06-08 Thread rmlong at gmail dot com


--- Comment #1 from rmlong at gmail dot com  2010-06-09 03:15 ---
Created an attachment (id=20871)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20871action=view)
Preprocessed file


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44473



[Bug c++/44473] iterators already defined for std::vector when using std::decimal

2010-06-08 Thread rmlong at gmail dot com


--- Comment #2 from rmlong at gmail dot com  2010-06-09 03:17 ---
Created an attachment (id=20872)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20872action=view)
Example code


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44473



[Bug c/44472] __builtin_ia32_pcmpestri128 generates an additional pcmpestrm operation

2010-06-08 Thread hjl dot tools at gmail dot com


--- Comment #2 from hjl dot tools at gmail dot com  2010-06-09 03:26 ---
(In reply to comment #0)
 
 While running some tests against SSE4.2 instructions, I noticed that the
 __builtin_ia32_pcmpestri128 method generates the correct pcmpestri call
 followed immediately by an extraneous pcmpestrm call.  The second call goes
 away when compiled with any optimization level.
 

-O0 generates unoptimized code. In your testcase, gcc also generates

movdqa  .LC0(%rip), %xmm0
movdqa  %xmm0, -32(%rbp)
movdqa  .LC1(%rip), %xmm0
movdqa  %xmm0, -48(%rbp)
movdqa  -48(%rbp), %xmm1
movdqa  -32(%rbp), %xmm0

Those aren't necessary either.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44472



[Bug c/44474] New: GCC inserts redundant test instruction due to incorrect clobber

2010-06-08 Thread darkshikari at gmail dot com
Take the following test case:

int foo();

int test( int *b )
{
(*b)--;
if( *b == 0 )
return foo();
return 0;
}

On x86_64, with -fomit-frame-pointer -O3 -c, gcc 4.6 compiles this to:

   0:   8b 07   moveax, [rdi]
   2:   83 e8 01subeax, 0x1
   5:   85 c0   test   eax, eax
   7:   89 07   mov[rdi], eax
   9:   74 05   je 10 test+0x10
   b:   31 c0   xoreax, eax
   d:   c3  ret
 10:e9 00 00 00 00  jmp15 test+0x15 //foo

As can be seen, gcc inserts a redundant test instruction.  This problem is
present in all versions of gcc I tested (3.4, 4.3.4, 4.4.1, and 4.6 SVN
r160330).

According to Alexander Strange on IRC:

astrange the problem is that subl $1, %eax does (clobber (reg:CC 17 flags))
instead of (set (reg:CCZ 17 flags) (compare:CCZ 
astrange which i don't think is fixable in a real way, but i didn't write it


-- 
   Summary: GCC inserts redundant test instruction due to
incorrect clobber
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: darkshikari at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44474



[Bug rtl-optimization/44013] [4.5 Regression] VTA produces wrong code

2010-06-08 Thread aoliva at gcc dot gnu dot org


--- Comment #12 from aoliva at gcc dot gnu dot org  2010-06-09 04:54 ---
Fixed


-- 

aoliva at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44013



[Bug debug/41371] [4.5/4.6 Regression] var-tracking is slow and memory hungry

2010-06-08 Thread aoliva at gcc dot gnu dot org


--- Comment #40 from aoliva at gcc dot gnu dot org  2010-06-09 04:56 ---
Fixed


-- 

aoliva at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41371



[Bug c/44472] __builtin_ia32_pcmpestri128 generates an additional pcmpestrm operation

2010-06-08 Thread jeff_wegher at yahoo dot com


--- Comment #3 from jeff_wegher at yahoo dot com  2010-06-09 05:03 ---
Sure, non-optimized code generates a lot of instructions that aren't strictly
needed.  This one seemed a little beyond that to me.

Just so I understand then...  By design, __builtin*_pcmpestri and
__builtin*_pcmpestrm both generate the same pair of opcodes to calculate both
the index and the mask and then allow the optimizer to remove the value that
isn't used?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44472



<    1   2