[Bug tree-optimization/43543] Reorder the statements in the loop can vectorize it

2010-03-28 Thread irar at il dot ibm dot com
--- Comment #1 from irar at il dot ibm dot com 2010-03-28 11:16 --- Looks similar to PR 32806. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43543

[Bug tree-optimization/43436] Missed vectorization: "unhandled data-ref"

2010-03-28 Thread irar at il dot ibm dot com
--- Comment #6 from irar at il dot ibm dot com 2010-03-28 18:05 --- (In reply to comment #4) > What about fixing the diagnostic message like this: > It would be nice to do the same for SLP (compute_data_dependences_for_bb) for completeness. Thanks, Ira > diff --git a/gcc/

[Bug tree-optimization/43436] Missed vectorization: "unhandled data-ref"

2010-03-28 Thread irar at il dot ibm dot com
--- Comment #7 from irar at il dot ibm dot com 2010-03-28 18:22 --- (In reply to comment #5) > When defining the missing function like this: > > static inline int mid_pred(int a, int b, int c) > { > int t= (a-b)&((a-b)>>31); > a-=t; > b

[Bug tree-optimization/43692] small loop not vectorized

2010-04-08 Thread irar at il dot ibm dot com
--- Comment #1 from irar at il dot ibm dot com 2010-04-08 17:14 --- It probably happens because the vectorization is not profitable. Try -fno-vect-cost-model flag. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43692

[Bug tree-optimization/43692] small loop not vectorized

2010-04-08 Thread irar at il dot ibm dot com
--- Comment #3 from irar at il dot ibm dot com 2010-04-08 17:33 --- Both loops get vectorized for me with -O3 on x86_64-suse-linux. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43692

[Bug tree-optimization/43692] small loop not vectorized

2010-04-08 Thread irar at il dot ibm dot com
--- Comment #5 from irar at il dot ibm dot com 2010-04-08 17:59 --- In GCC 4.4 the smaller loop gets completely unrolled before the vectorizer. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43692

[Bug tree-optimization/43771] [4.5/4.6 Regression] ICE on valid when compiling ParMetis with gcc 4.5.0 and -O3

2010-04-18 Thread irar at il dot ibm dot com
-- irar at il dot ibm dot com changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |irar at il dot ibm dot com |dot org

[Bug tree-optimization/43771] [4.5/4.6 Regression] ICE on valid when compiling ParMetis with gcc 4.5.0 and -O3

2010-04-19 Thread irar at il dot ibm dot com
--- Comment #7 from irar at il dot ibm dot com 2010-04-19 07:48 --- Fixed on 4.6, 4.5 and 4.4. -- irar at il dot ibm dot com changed: What|Removed |Added

[Bug tree-optimization/37027] SLP loop vectorization missing support for reductions

2010-04-19 Thread irar at il dot ibm dot com
--- Comment #5 from irar at il dot ibm dot com 2010-04-19 14:35 --- Fixed. -- irar at il dot ibm dot com changed: What|Removed |Added Status|NEW

[Bug rtl-optimization/31485] C complex numbers, amd64 SSE, missed optimization opportunity

2010-04-21 Thread irar at il dot ibm dot com
--- Comment #8 from irar at il dot ibm dot com 2010-04-21 11:33 --- Yes, it's possible to add this to SLP. But I don't understand how D.3154_3 = COMPLEX_EXPR ; should be vectorized. D.3154_3 is complex and the rhs will be a vector {D.3163_8, D.3164_9} (btw, we have to chang

[Bug rtl-optimization/31485] C complex numbers, amd64 SSE, missed optimization opportunity

2010-04-21 Thread irar at il dot ibm dot com
--- Comment #10 from irar at il dot ibm dot com 2010-04-21 18:33 --- Thanks. So, it is not always profitable and requires a cost model. I am now working on cost model for basic block vectorization, I can look at this once we have one. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id

[Bug tree-optimization/43842] [4.6 Regression] ice in vect_create_epilog_for_reduction

2010-04-22 Thread irar at il dot ibm dot com
-- irar at il dot ibm dot com changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |irar at il dot ibm dot com |dot org

[Bug testsuite/43482] Fix *.log tests merged output containing "==="

2010-04-22 Thread irar at il dot ibm dot com
--- Comment #6 from irar at il dot ibm dot com 2010-04-22 18:11 --- Yes, sorry about that. I updated the ChangeLogs. Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43482

[Bug middle-end/43901] [4.6 Regression] FAIL: gcc.c-torture/compile/pr42196-2.c

2010-04-26 Thread irar at il dot ibm dot com
--- Comment #1 from irar at il dot ibm dot com 2010-04-27 05:53 --- Could you please give some more information? It doesn't fail on x86_64-linux. (For SLP dump please use -fdump-tree-slp-details). Thanks, Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43901

[Bug tree-optimization/22029] [4.1 Regression] ICE with -fdump-tree-copyprop3-details

2005-06-30 Thread irar at il dot ibm dot com
--- Additional Comments From irar at il dot ibm dot com 2005-06-30 11:38 --- Submitted a patch that fixes this: http://gcc.gnu.org/ml/gcc-patches/2005- 06/msg02228.html -- What|Removed |Added

[Bug tree-optimization/22184] tree vectorizer depends on context

2005-07-07 Thread irar at il dot ibm dot com
--- Additional Comments From irar at il dot ibm dot com 2005-07-07 07:47 --- The problem occurs in decision whether the number of loop iterations is greater than zero. The (single) predecessor edge is checked for being EDGE_TRUE_VALUE or EDGE_FALSE_VALUE, and the corresponding

[Bug tree-optimization/22526] vectorizer produces mis-match types in conditionals

2005-07-20 Thread irar at il dot ibm dot com
--- Additional Comments From irar at il dot ibm dot com 2005-07-21 05:45 --- I submitted a patch to fix this - http://gcc.gnu.org/ml/gcc-patches/2005- 07/msg01388.html -- What|Removed |Added

[Bug tree-optimization/19049] not vectorizing a fortran loop

2005-07-26 Thread irar at il dot ibm dot com
--- Additional Comments From irar at il dot ibm dot com 2005-07-26 07:07 --- The data dependence issue was solved by this patch http://gcc.gnu.org/ml/gcc- patches/2005-07/msg01195.html (committed). However, this loop is still not vectorizable because of noncontinuous access

[Bug tree-optimization/23320] [4.1 Regression] ICE in in base_addr_differ_p, at tree-data-ref.c:430

2005-08-11 Thread irar at il dot ibm dot com
--- Additional Comments From irar at il dot ibm dot com 2005-08-11 08:14 --- Created an attachment (id=9469) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9469&action=view) Patch Yes, you are right, I should check the type of the data-ref (array type in the first cas

[Bug tree-optimization/42108] [4.4/4.5 Regression] Vectorizer cannot deal with PAREN_EXPR gracefully, 50% performance regression

2009-11-23 Thread irar at il dot ibm dot com
--- Comment #18 from irar at il dot ibm dot com 2009-11-23 09:02 --- I tried to vectorize eval.f90 with 4.3 and mainline on x86_64-suse-linux. In both cases no loop gets vectorized in subroutine eval. The k loop is not vectorizable because the step of x is unknown (function argument

[Bug middle-end/42193] [4.5 Regression] 454.calculix in SPEC CPU 2006 failed to compile at -O3

2009-11-29 Thread irar at il dot ibm dot com
-- irar at il dot ibm dot com changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |irar at il dot ibm dot com |dot org

[Bug tree-optimization/42108] [4.4/4.5 Regression] Vectorizer cannot deal with PAREN_EXPR gracefully, 50% performance regression

2009-11-30 Thread irar at il dot ibm dot com
--- Comment #20 from irar at il dot ibm dot com 2009-11-30 08:52 --- Actually, PAREN_EXPRs are vectorizable (the support was added by you, Richard, in your original PAREN_EXPR patch http://gcc.gnu.org/viewcvs?limit_changes=0&view=revision&revision=132515 )). The problem here

[Bug tree-optimization/42108] [4.4/4.5 Regression] Vectorizer cannot deal with PAREN_EXPR gracefully, 50% performance regression

2009-11-30 Thread irar at il dot ibm dot com
--- Comment #21 from irar at il dot ibm dot com 2009-11-30 08:54 --- Created an attachment (id=19183) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19183&action=view) Multiple types support patch -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42108

[Bug tree-optimization/42108] [4.4/4.5 Regression] Vectorizer cannot deal with PAREN_EXPR gracefully, 50% performance regression

2009-11-30 Thread irar at il dot ibm dot com
--- Comment #23 from irar at il dot ibm dot com 2009-11-30 12:20 --- Applied: http://gcc.gnu.org/viewcvs?limit_changes=0&view=revision&revision=154794 Thanks, Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42108

[Bug tree-optimization/42286] October 23rd change to tree-ssa-pre.c breaks calculix on powerpc with -ffast-math

2009-12-06 Thread irar at il dot ibm dot com
--- Comment #3 from irar at il dot ibm dot com 2009-12-06 13:25 --- On powerpc64-suse-linux with current trunk calculix failed after a couple of minutes with -O3 -maltivec -ffast-math -O3 -maltivec -ffast-math -fno-tree-vectorize -O2 -maltivec -ffast-math -O1 -maltivec -ffast-math

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-15 Thread irar at il dot ibm dot com
--- Comment #7 from irar at il dot ibm dot com 2009-12-15 08:25 --- I can't reproduce it with current mainline on powerpc64-suse-linux. Could you please attach vectorizer dump? Does the good old version gets vectorized? If so, could you please attach it as well? Thanks

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-15 Thread irar at il dot ibm dot com
--- Comment #11 from irar at il dot ibm dot com 2009-12-15 10:59 --- Looks that it has to be my patch that enables vectorization of conditions: r149806 | irar | 2009-07-20 14:59:10 +0300 (Mon, 20 Jul 2009) | 19 lines * tree-vectorizer.h (vectorizable_condition): Add

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-15 Thread irar at il dot ibm dot com
--- Comment #13 from irar at il dot ibm dot com 2009-12-15 13:07 --- (In reply to comment #12) > > Looks that it has to be my patch that enables vectorization of conditions: > I am doing a clean bootstrap of C and FORTRAN of revision 149805 to see if the > test works for i

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-15 Thread irar at il dot ibm dot com
--- Comment #14 from irar at il dot ibm dot com 2009-12-15 13:08 --- Created an attachment (id=19311) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19311&action=view) powerpc64-suse-linux vect dump -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-15 Thread irar at il dot ibm dot com
--- Comment #16 from irar at il dot ibm dot com 2009-12-15 13:35 --- But in comment #5 you wrote that it passes with the print, right? So, this dump contains correct or incorrect code? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-16 Thread irar at il dot ibm dot com
--- Comment #21 from irar at il dot ibm dot com 2009-12-16 12:01 --- Thanks. I'll be able to look at this only on Sunday due to holidays. Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-20 Thread irar at il dot ibm dot com
--- Comment #23 from irar at il dot ibm dot com 2009-12-20 12:18 --- The code that now gets vectorized is the summation of array 'reduce': sum(reduce). It looks like the problem is with adding the reduction result to the correct index of 'temp' (scalar code), and no

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-20 Thread irar at il dot ibm dot com
--- Comment #26 from irar at il dot ibm dot com 2009-12-20 13:46 --- I think the problem is in alignment. We force alignment of temp.6 and temp.20 - the arrays of relevant comaprison results - even though we don't vectorize their loop. The decision whether we can force alignment is

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-20 Thread irar at il dot ibm dot com
--- Comment #28 from irar at il dot ibm dot com 2009-12-20 13:59 --- Hm, I don't know, but this is my best guess - we change something in the code that goes wrong... We also force alignment of reduce, but the reduction computation looks ok. -- http://gcc.gnu.org/bug

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-22 Thread irar at il dot ibm dot com
--- Comment #30 from irar at il dot ibm dot com 2009-12-22 11:42 --- We can try to verify the alignment issue by applying the two hacks I am attaching. The first one disables alignment forcing for all the data-refs (and marks the alignment as unknown). The loops are still vectorizable

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-22 Thread irar at il dot ibm dot com
--- Comment #31 from irar at il dot ibm dot com 2009-12-22 11:43 --- Created an attachment (id=19370) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19370&action=view) disable alignment forcing -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-22 Thread irar at il dot ibm dot com
--- Comment #32 from irar at il dot ibm dot com 2009-12-22 11:44 --- Created an attachment (id=19371) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19371&action=view) force alignment of vectorized arrays only -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-22 Thread irar at il dot ibm dot com
--- Comment #36 from irar at il dot ibm dot com 2009-12-23 07:54 --- Thanks! So, it is alignment of the vectorized arrays. I'd like to do two more checks: 1. Just force alignment of the two arrays (temp and reduce) and do not vectorize. 2. Force alignment of reduce only (and vect

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-22 Thread irar at il dot ibm dot com
--- Comment #37 from irar at il dot ibm dot com 2009-12-23 07:54 --- Created an attachment (id=19377) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19377&action=view) Force alignment but don't vectorize -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-22 Thread irar at il dot ibm dot com
--- Comment #38 from irar at il dot ibm dot com 2009-12-23 07:55 --- Created an attachment (id=19378) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19378&action=view) Force alignment of reduce only -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41082

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2009-12-23 Thread irar at il dot ibm dot com
--- Comment #40 from irar at il dot ibm dot com 2009-12-23 14:49 --- (In reply to comment #39) > I have regtested the patch in comment #31 and I have ~75 regressions on > x86_64-apple-darwin10 in the gcc vect test suite (~100 on > powerpc-apple-darwin9). Is this expected? a

[Bug middle-end/41956] Segfault in vectorizer

2009-12-30 Thread irar at il dot ibm dot com
--- Comment #7 from irar at il dot ibm dot com 2009-12-30 10:16 --- The bug is in SLP load permutation analysis. I am testing a patch. -- irar at il dot ibm dot com changed: What|Removed |Added

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2010-01-05 Thread irar at il dot ibm dot com
--- Comment #42 from irar at il dot ibm dot com 2010-01-05 09:09 --- So, it's enough to force alignment of reduce only (and to vectorize its loop) to get wrong code. On the other hand, the result of the vectorized loop is correct, and the problem is in choosing the correct index of

[Bug tree-optimization/42652] vectorizer created unaligned vector insns

2010-01-10 Thread irar at il dot ibm dot com
--- Comment #5 from irar at il dot ibm dot com 2010-01-10 08:22 --- In vector_alignment_reachable_p() we check if an access is packed using contains_packed_reference(). For packed accesses we return false, meaning alignment is unreachable and peeling cannot be used. In the attached

[Bug middle-end/41082] [4.5 Regression] FAIL: gfortran.fortran-torture/execute/where_2.f90 execution, -O3 -g with -m64

2010-01-10 Thread irar at il dot ibm dot com
--- Comment #43 from irar at il dot ibm dot com 2010-01-10 13:43 --- Since -O2 -ftree-vectorize doesn't cause bad code, it has to be some other optimization on top of vectorized code that causes the problem. Bad code is generated when the alignment of 'reduce' is

[Bug tree-optimization/42652] vectorizer created unaligned vector insns

2010-01-12 Thread irar at il dot ibm dot com
--- Comment #8 from irar at il dot ibm dot com 2010-01-12 08:08 --- So, to be on the safe side, we should assume that COMPONENT_REFs are not naturally aligned and never use peeling for them? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42652

[Bug tree-optimization/42652] vectorizer created unaligned vector insns

2010-01-13 Thread irar at il dot ibm dot com
--- Comment #10 from irar at il dot ibm dot com 2010-01-13 09:35 --- Yes, I understand that we can't assume that an access is aligned if we can't prove it's aligned. I don't understand how we can prove that a COMPONENT_REF is aligned, i.e., if there is a way to

[Bug tree-optimization/42709] [4.5 Regression] error: type mismatch in pointer plus expression

2010-01-13 Thread irar at il dot ibm dot com
-- irar at il dot ibm dot com changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |irar at il dot ibm dot com |dot org

[Bug tree-optimization/42652] vectorizer created unaligned vector insns

2010-01-18 Thread irar at il dot ibm dot com
--- Comment #13 from irar at il dot ibm dot com 2010-01-18 12:17 --- Does something like this make sense? (With this patch we will never use peeling for function parameters, unless the builtin returns OK to peel for packed types). Index: tree-vect-data-refs.c

[Bug tree-optimization/42846] GCC sometimes ignores information about pointer target alignment

2010-01-23 Thread irar at il dot ibm dot com
--- Comment #3 from irar at il dot ibm dot com 2010-01-24 07:39 --- This has already been discussed in PR 41464. Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42846

[Bug lto/44152] ICE on compiling xshow.f of xplor-nih with -O3 -ffast-math -fwhopr

2010-07-27 Thread irar at il dot ibm dot com
--- Comment #4 from irar at il dot ibm dot com 2010-07-27 09:25 --- I am testing a patch. -- irar at il dot ibm dot com changed: What|Removed |Added AssignedTo

[Bug tree-optimization/45241] CPU2006 465.tonto ICE in the vectorizer with -fno-tree-pre

2010-08-10 Thread irar at il dot ibm dot com
--- Comment #4 from irar at il dot ibm dot com 2010-08-10 09:06 --- I am testing the same patch as in comment #1. Testcase that shows the problem: int foo(short x) { short i, y; int sum; for (i = 0; i < x; i++) y = x * i; for (i = x; i > 0; i--) sum += y;

[Bug tree-optimization/45241] CPU2006 465.tonto ICE in the vectorizer with -fno-tree-pre

2010-08-10 Thread irar at il dot ibm dot com
--- Comment #5 from irar at il dot ibm dot com 2010-08-10 10:23 --- (In reply to comment #1) > This patch should be a valid fix, because the recognition of the dot_prod > pattern is known to be fail at this point if the stmt is outside the loop. > (I am not sure whether we s

[Bug tree-optimization/41881] [4.5/4.6 regression] Complete unrolling (inner) versus vectorization of reduction

2010-08-11 Thread irar at il dot ibm dot com
--- Comment #7 from irar at il dot ibm dot com 2010-08-11 10:24 --- (In reply to comment #6) > I think that SLP doesn't handle reduction. > Not all kinds of reduction. We handle #a1 = phi #b1 = phi ... a2 = a1 + x b2 = b1 + y Here we also have: #a1 = phi ... a2 = a1

[Bug tree-optimization/45470] [4.6 Regression] ICE: verify_flow_info failed: BB 2 can not throw but has an EH edge with -ftree-vectorize -fnon-call-exceptions

2010-09-01 Thread irar at il dot ibm dot com
--- Comment #3 from irar at il dot ibm dot com 2010-09-01 09:06 --- r163260 only made this BB vectorizable. I checked lookup_stmt_eh_lp for the last stmt of the BB and EDGE_EH flags before and after vectorization (basic block SLP), and in both cases lookup_stmt_eh_lp returns 0 and

[Bug tree-optimization/45470] [4.6 Regression] ICE: verify_flow_info failed: BB 2 can not throw but has an EH edge with -ftree-vectorize -fnon-call-exceptions

2010-09-01 Thread irar at il dot ibm dot com
--- Comment #6 from irar at il dot ibm dot com 2010-09-01 11:54 --- (In reply to comment #5) > I see before SLP: > > : > MEM[(struct A *)this_1(D)].a = 0; > MEM[(struct A *)this_1(D)].b = 0; > MEM[(struct A *)this_1(D)].c = 0; > [LP 2] MEM[(struct A *)t

[Bug tree-optimization/45470] [4.6 Regression] ICE: verify_flow_info failed: BB 2 can not throw but has an EH edge with -ftree-vectorize -fnon-call-exceptions

2010-09-12 Thread irar at il dot ibm dot com
--- Comment #9 from irar at il dot ibm dot com 2010-09-12 09:46 --- OK, thanks. I am going to test this patch, it only checks data-refs and function calls: Index: tree-vect-data-refs.c === --- tree-vect-data-refs.c

[Bug tree-optimization/45714] [4.6 Regression] Vectorization of double pow function causes a segmentation fault

2010-09-19 Thread irar at il dot ibm dot com
--- Comment #3 from irar at il dot ibm dot com 2010-09-19 08:52 --- gimple_bb (stmt) returns NULL for that statement (D.1575_33 = __builtin_pow (D.1542_14, D.1574_32)). We can avoid vectorization in such cases, but looks like it should be fixed to return the actual basic block. Ira

[Bug tree-optimization/45714] [4.6 Regression] Vectorization of double pow function causes a segmentation fault

2010-09-19 Thread irar at il dot ibm dot com
--- Comment #5 from irar at il dot ibm dot com 2010-09-19 10:08 --- Right. This patch fixes it: Index: tree-vect-stmts.c === --- tree-vect-stmts.c (revision 164332) +++ tree-vect-stmts.c (working copy) @@ -4478,6

[Bug tree-optimization/45714] [4.6 Regression] Vectorization of double pow function causes a segmentation fault

2010-09-19 Thread irar at il dot ibm dot com
--- Comment #7 from irar at il dot ibm dot com 2010-09-20 06:43 --- Fixed. -- irar at il dot ibm dot com changed: What|Removed |Added Status|NEW

[Bug tree-optimization/45733] [4.6 Regression] ICE: verify_stmts failed: invalid conversion in gimple call with -fstrict-overflow -ftree-vectorize

2010-09-20 Thread irar at il dot ibm dot com
--- Comment #2 from irar at il dot ibm dot com 2010-09-20 12:17 --- Looks like it is caused by revision 164367: http://gcc.gnu.org/ml/gcc-cvs/2010-09/msg00661.html -- irar at il dot ibm dot com changed: What|Removed |Added

[Bug tree-optimization/45733] [4.6 Regression] ICE: verify_stmts failed: invalid conversion in gimple call with -fstrict-overflow -ftree-vectorize

2010-09-20 Thread irar at il dot ibm dot com
--- Comment #3 from irar at il dot ibm dot com 2010-09-20 13:08 --- For vector(2) void * we get vec_perm_v2di_u builtin declaration, because the mode of vector(2) void * is unsigned V2DI. I wonder if this can happen for every builtin call, and we should convert back to the original

[Bug middle-end/43901] [4.6 Regression] FAIL: gcc.c-torture/compile/pr42196-2.c

2010-05-01 Thread irar at il dot ibm dot com
--- Comment #4 from irar at il dot ibm dot com 2010-05-02 05:51 --- I don't have access to ia64. I tried to change the types in the test to make the basic blocks vectorizable on x86_64, but didn't get any error. So I still need SLP dump in order to solve this. Thanks, Ira

[Bug middle-end/43901] [4.6 Regression] FAIL: gcc.c-torture/compile/pr42196-2.c

2010-05-02 Thread irar at il dot ibm dot com
--- Comment #9 from irar at il dot ibm dot com 2010-05-02 11:08 --- Thanks, Uros! I reproduced the ICE using your instructions. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43901

[Bug middle-end/43901] [4.6 Regression] FAIL: gcc.c-torture/compile/pr42196-2.c

2010-05-02 Thread irar at il dot ibm dot com
--- Comment #10 from irar at il dot ibm dot com 2010-05-02 12:12 --- Looks like it's caused by: r158157 | rguenth | 2010-04-09 13:40:14 +0300 (Fri, 09 Apr 2010) | 28 lines The problem is in getting vectype for f1_2: foo (int b, double f1, double f2, int c1, int c2) { ... fl

[Bug middle-end/43901] [4.6 Regression] FAIL: gcc.c-torture/compile/pr42196-2.c

2010-05-03 Thread irar at il dot ibm dot com
--- Comment #12 from irar at il dot ibm dot com 2010-05-03 12:30 --- > Well. For loops we'd have disqualified it as there is no vector > type for the external def (well, the stmt inside the loop). I don't think that's true. With -fno-tree-pre we get

[Bug middle-end/43901] [4.6 Regression] FAIL: gcc.c-torture/compile/pr42196-2.c

2010-05-05 Thread irar at il dot ibm dot com
--- Comment #14 from irar at il dot ibm dot com 2010-05-05 09:02 --- > It tries to get a _vector_ type of the same size. In theory each > vectorization method can choose whatever vector size suits them > most (as for external defs they need to build up a vector of e

[Bug middle-end/43901] [4.6 Regression] FAIL: gcc.c-torture/compile/pr42196-2.c

2010-05-10 Thread irar at il dot ibm dot com
--- Comment #16 from irar at il dot ibm dot com 2010-05-10 08:17 --- Fixed. -- irar at il dot ibm dot com changed: What|Removed |Added Status|ASSIGNED

[Bug tree-optimization/44183] Vectorizer may generate invalid memory access

2010-05-20 Thread irar at il dot ibm dot com
--- Comment #1 from irar at il dot ibm dot com 2010-05-20 07:13 --- Do you mean that extract_even implementation does something illegal with this last element? Misaligned load also accesses elements outside the array, but the problem is in extract_even? Other than doing something in

[Bug tree-optimization/44183] Vectorizer may generate invalid memory access

2010-05-20 Thread irar at il dot ibm dot com
--- Comment #3 from irar at il dot ibm dot com 2010-05-20 10:04 --- I am curious what is the problem with that? These elements are not used, they are just loaded... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44183

[Bug tree-optimization/44183] Vectorizer may generate invalid memory access

2010-05-20 Thread irar at il dot ibm dot com
--- Comment #5 from irar at il dot ibm dot com 2010-05-20 10:24 --- Even if we are talking about less than vector size from array boundary? And that boundary is not (vector) aligned. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44183

[Bug tree-optimization/44507] [4.5/4.6 Regression] vectorization ANDs array elements together incorrectly

2010-06-13 Thread irar at il dot ibm dot com
--- Comment #5 from irar at il dot ibm dot com 2010-06-13 10:29 --- The bug is in creation of a neutral value for BIT_AND_EXPR. What is the correct way to create it for all types? I found double-int.h:#define ALL_ONES (~((unsigned HOST_WIDE_INT) 0)) but it won't work for s

[Bug tree-optimization/44507] [4.5/4.6 Regression] vectorization ANDs array elements together incorrectly

2010-06-13 Thread irar at il dot ibm dot com
--- Comment #7 from irar at il dot ibm dot com 2010-06-13 12:01 --- (In reply to comment #6) > (In reply to comment #5) > > The bug is in creation of a neutral value for BIT_AND_EXPR. What is the > > correct > > way to create it for all types? I found > > do

[Bug tree-optimization/44710] New: If-conversion generates redundant statements

2010-06-29 Thread irar at il dot ibm dot com
riority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: irar at il dot ibm dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44710

[Bug tree-optimization/44710] If-conversion generates redundant statements

2010-06-29 Thread irar at il dot ibm dot com
--- Comment #1 from irar at il dot ibm dot com 2010-06-29 09:11 --- Created an attachment (id=21036) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21036&action=view) Full testcase -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44710

[Bug tree-optimization/44711] New: PRE doesn't remove equivalent computations of induction variables

2010-06-29 Thread irar at il dot ibm dot com
Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: irar at il dot ibm dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44711

[Bug tree-optimization/44711] PRE doesn't remove equivalent computations of induction variables

2010-06-29 Thread irar at il dot ibm dot com
--- Comment #1 from irar at il dot ibm dot com 2010-06-29 11:00 --- Created an attachment (id=21037) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21037&action=view) Full testcase -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44711

[Bug tree-optimization/44861] internal compiler error: in vectorizable_load, at tree-vect-stmts.c:3812

2010-07-08 Thread irar at il dot ibm dot com
--- Comment #1 from irar at il dot ibm dot com 2010-07-08 09:14 --- The failure is in vectorizable_store(): /* If accesses through a pointer to vectype do not alias the original memory reference we have a problem. This should never happen

[Bug tree-optimization/33804] ICE in vect_transform_stmt, at tree-vect-transform.c:6131 with -ftree-vectorize

2007-10-21 Thread irar at il dot ibm dot com
--- Comment #7 from irar at il dot ibm dot com 2007-10-22 06:31 --- Falk, Could you please check if the patch in Comment #6 fixes the ICE? Thanks, Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33804

[Bug tree-optimization/33854] [4.3 Regression] ICE in vectorizable_conversion, at tree-vect-transform.c:3374

2007-10-22 Thread irar at il dot ibm dot com
--- Comment #4 from irar at il dot ibm dot com 2007-10-22 07:23 --- I am testing the following patch: Index: tree-vect-analyze.c === --- tree-vect-analyze.c (revision 129404) +++ tree-vect-analyze.c (working copy

[Bug tree-optimization/33856] [4.3 Regression] Segfault in create_data_ref/compute_data_dependences_for_loop

2007-10-22 Thread irar at il dot ibm dot com
--- Comment #5 from irar at il dot ibm dot com 2007-10-22 11:52 --- For the data ref in the testcase, VIEW_CONVERT_EXPR(0), get_base_address() (in dr_analyze_alias) returns NULL, which causes the segfault. Ira -- irar at il dot ibm dot com changed: What|Removed

[Bug tree-optimization/33866] [4.3 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-transform.c:1937

2007-10-24 Thread irar at il dot ibm dot com
--- Comment #4 from irar at il dot ibm dot com 2007-10-24 07:48 --- In this testcase we perform vectorization of strided accesses in a loop with multiple types. In vectorizable_store() we gather all the scalar operands of the stores in the strided accesses group and later call

[Bug tree-optimization/33869] [4.3 Regression] ICE verify_ssa failed (missing definition for SSA_NAME)

2007-10-29 Thread irar at il dot ibm dot com
--- Comment #8 from irar at il dot ibm dot com 2007-10-29 10:22 --- I don't have access to ia64. Could you please attach vectorizer's dump (-fdump-tree-vect-all)? Thanks, Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33869

[Bug tree-optimization/33804] ICE in vect_transform_stmt, at tree-vect-transform.c:6131 with -ftree-vectorize

2007-10-30 Thread irar at il dot ibm dot com
--- Comment #10 from irar at il dot ibm dot com 2007-10-30 10:09 --- Fixed. -- irar at il dot ibm dot com changed: What|Removed |Added Status|UNCONFIRMED

[Bug tree-optimization/33866] [4.3 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-transform.c:1937

2007-10-30 Thread irar at il dot ibm dot com
--- Comment #6 from irar at il dot ibm dot com 2007-10-30 10:10 --- Fixed. -- irar at il dot ibm dot com changed: What|Removed |Added Status|NEW

[Bug tree-optimization/33953] [4.3 regression] internal compiler error: vector VEC(tree,base) index domain error, in vectorizable_operation at tree-vect-transform.c:4017

2007-10-31 Thread irar at il dot ibm dot com
--- Comment #5 from irar at il dot ibm dot com 2007-10-31 10:57 --- The problem here is that more than one vector stmts are used to vectorize (SLP) this loop, while only one vector operand is created in case of vector shift with scalar argument. I am preparing a patch. Thanks, Ira

[Bug tree-optimization/33953] [4.3 regression] internal compiler error: vector VEC(tree,base) index domain error, in vectorizable_operation at tree-vect-transform.c:4017

2007-10-31 Thread irar at il dot ibm dot com
--- Comment #6 from irar at il dot ibm dot com 2007-10-31 11:22 --- (In reply to comment #2) > Uh, the VEC_* stuff used there looks like a mess. It's not clear who > allocates > and what the size should be. I'll take a look and fix if necess

[Bug tree-optimization/33953] [4.3 regression] internal compiler error: vector VEC(tree,base) index domain error, in vectorizable_operation at tree-vect-transform.c:4017

2007-10-31 Thread irar at il dot ibm dot com
--- Comment #7 from irar at il dot ibm dot com 2007-10-31 12:57 --- I am testing the following patch: Index: tree-vect-transform.c === --- tree-vect-transform.c (revision 129627) +++ tree-vect-transform.c

[Bug tree-optimization/33953] [4.3 regression] internal compiler error: vector VEC(tree,base) index domain error, in vectorizable_operation at tree-vect-transform.c:4017

2007-11-06 Thread irar at il dot ibm dot com
--- Comment #8 from irar at il dot ibm dot com 2007-11-06 13:17 --- (In reply to comment #6) > (In reply to comment #2) > > For example vect_get_vec_defs_for_stmt_copy > > doesn't allocate the VECs which is exactly what causes the problem here. > > vect_get

[Bug tree-optimization/34038] 176.gcc segfaults when compiled with -O2 -ftree-vectorize -maltivec

2007-11-29 Thread irar at il dot ibm dot com
--- Comment #1 from irar at il dot ibm dot com 2007-11-29 09:31 --- I can't reproduce this failure with the same flags with revision 130403 on ppc64-redhat-linux. (Some loops indeed get vectorized in reload.c and reload1.c: reload1.c.104t.vect:reload1.c:2433: note: LOOP VECTO

[Bug tree-optimization/34265] Missed optimizations

2007-12-03 Thread irar at il dot ibm dot com
--- Comment #32 from irar at il dot ibm dot com 2007-12-04 06:56 --- (In reply to comment #30) > Uh, sorry for being terse. If there are no loops, then "straight-line > parallelization" [SLP] should vectorize your manually unrolled sequence in > comment #24. Curren

[Bug tree-optimization/34038] 176.gcc segfaults when compiled with -O2 -ftree-vectorize -maltivec

2007-12-03 Thread irar at il dot ibm dot com
--- Comment #4 from irar at il dot ibm dot com 2007-12-04 07:31 --- (In reply to comment #3) > The failure occurs with "-m32 -O3 -maltivec -fno-strict-aliasing", but not > without -fno-strict-aliasing. Yes, I succeeded to reproduce the failure with -fno-strict-aliasi

[Bug tree-optimization/34038] 176.gcc segfaults when compiled with -O2 -ftree-vectorize -maltivec

2007-12-05 Thread irar at il dot ibm dot com
--- Comment #5 from irar at il dot ibm dot com 2007-12-06 07:49 --- It also fails with -O2 and -O1 (and not only with -O3). The offending loop is reload.c:2352 (in function find_reloads): for (i = 0; i < noperands; i++) { constraints[i] = constraints

[Bug tree-optimization/34038] 176.gcc segfaults when compiled with -O2 -ftree-vectorize -maltivec

2007-12-11 Thread irar at il dot ibm dot com
--- Comment #6 from irar at il dot ibm dot com 2007-12-11 13:24 --- The first difference I found between with and without -fno-strict-aliasing versions of the loop in reload.c:2352 is in with -fno-strict-aliasing (the "bad" one): (insn 414 413 415 43 ../src/reload.c:2354

[Bug tree-optimization/34618] [4.3 regression] ICE with -fmudflap and vectorization

2008-01-01 Thread irar at il dot ibm dot com
--- Comment #1 from irar at il dot ibm dot com 2008-01-01 10:02 --- The failure occurs in is_gimple_val() for this variable. The problem is that DECL_GIMPLE_REG_P for it is false. The vectorizer sets this value to be true for every variable of the vector type that the vectorizer creates

[Bug tree-optimization/35821] Internal compiler error: segmentation fault

2008-04-10 Thread irar at il dot ibm dot com
--- Comment #10 from irar at il dot ibm dot com 2008-04-10 07:10 --- Fixed. -- irar at il dot ibm dot com changed: What|Removed |Added Status|NEW

[Bug target/35982] [4.3 regression] ICE while building mplayer on ppc with -O3 -ffast-math -mcpu=970

2008-04-22 Thread irar at il dot ibm dot com
--- Comment #4 from irar at il dot ibm dot com 2008-04-22 07:57 --- The problem here is that we do not check the types of interleaved data-refs, but only their steps (and since float and int are of the same size here, their steps are equal). And then we treat all the data-refs as if

[Bug target/35982] [4.4 regression] ICE while building mplayer on ppc with -O3 -ffast-math -mcpu=970

2008-04-24 Thread irar at il dot ibm dot com
--- Comment #7 from irar at il dot ibm dot com 2008-04-24 07:30 --- (In reply to comment #6) > Fixed on the 4.3 branch, but not on the trunk yet. > Yes, I'm going to do this during the next couple of hours. Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35982

[Bug tree-optimization/36033] New: Non-optimal vectorization of interleaved data of different types

2008-04-24 Thread irar at il dot ibm dot com
ReportedBy: irar at il dot ibm dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36033

[Bug target/35982] [4.4 regression] ICE while building mplayer on ppc with -O3 -ffast-math -mcpu=970

2008-04-24 Thread irar at il dot ibm dot com
--- Comment #9 from irar at il dot ibm dot com 2008-04-24 09:40 --- Fixed. I opened pr36033 to get rid off the redundant loads. Ira -- irar at il dot ibm dot com changed: What|Removed |Added

<    1   2   3   4   >