This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Someone broke vectorizer testcases on powerpc


"Richard Guenther" <richard.guenther@gmail.com> wrote on 10/12/2006
13:37:03:

> On 12/10/06, Ira Rosen <IRAR@il.ibm.com> wrote:
> >
> > A lot of the vectorizer testcases are broken on powerpc-linux. The last
> > version they passed was r119475 (from December 3). The tests are
failing at
> > least since December 6. Looking at the tests that fail, it seems that
the
> > failures are connected to misaligned accesses. Wonder which patch broke
> > it...
>
> My bet would be another missed GIMPLE_STMT_OPERAND transition
> from Aldys patch.  Just look at one of the ICEs, it should be trivial to
> fix.

I did the following fixes:

Index: tree-vect-patterns.c
===================================================================
--- tree-vect-patterns.c        (revision 119704)
+++ tree-vect-patterns.c        (working copy)
@@ -204,7 +204,7 @@ vect_recog_dot_prod_pattern (tree last_s
       /* Has been detected as widening-summation?  */

       stmt = STMT_VINFO_RELATED_STMT (stmt_vinfo);
-      expr = TREE_OPERAND (stmt, 1);
+      expr = GIMPLE_STMT_OPERAND (stmt, 1);
       type = TREE_TYPE (expr);
       if (TREE_CODE (expr) != WIDEN_SUM_EXPR)
         return NULL;
Index: tree-vect-transform.c
===================================================================
--- tree-vect-transform.c       (revision 119704)
+++ tree-vect-transform.c       (working copy)
@@ -2575,7 +2575,7 @@ vect_permute_store_chain (VEC(tree,heap)
   unsigned int j;
   VEC(tree,heap) *first, *second;

-  scalar_dest = TREE_OPERAND (stmt, 0);
+  scalar_dest = GIMPLE_STMT_OPERAND (stmt, 0);
   first = VEC_alloc (tree, heap, length/2);
   second = VEC_alloc (tree, heap, length/2);

@@ -2941,7 +2941,7 @@ vect_setup_realignment (tree stmt, block
   loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
   struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
   edge pe = loop_preheader_edge (loop);
-  tree scalar_dest = TREE_OPERAND (stmt, 0);
+  tree scalar_dest = GIMPLE_STMT_OPERAND (stmt, 0);
   tree vec_dest;
   tree init_addr;
   tree inc;

Should I commit them as obvious (I can't bootstrap, since it's broken)?


There is still one failure:

FAIL: gcc.dg/vect/vect-101.c scan-tree-dump-times vectorized 1 loops 0
FAIL: gcc.dg/vect/vect-101.c scan-tree-dump-times can't determine
dependence 1

It seems to be unrelated. The data-refs in this testcase now have different
name_mem_tags, and, therefore, are independent.

Ira


>
> Richard.
>
> > Ira
> >
> > FAIL: gcc.dg/vect/pr16105.c (internal compiler error)
> > FAIL: gcc.dg/vect/pr16105.c (test for excess errors)
> > FAIL: gcc.dg/vect/pr16105.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/pr20122.c (internal compiler error)
> > FAIL: gcc.dg/vect/pr20122.c (test for excess errors)
> > WARNING: gcc.dg/vect/pr20122.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/pr20122.c scan-tree-dump-times vectorized 1 loops 2
> > FAIL: gcc.dg/vect/pr21591.c (internal compiler error)
> > FAIL: gcc.dg/vect/pr21591.c (test for excess errors)
> > FAIL: gcc.dg/vect/pr21591.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/pr23816-1.c (internal compiler error)
> > FAIL: gcc.dg/vect/pr23816-1.c (test for excess errors)
> > FAIL: gcc.dg/vect/pr24300.c (internal compiler error)
> > FAIL: gcc.dg/vect/pr24300.c (test for excess errors)
> > FAIL: gcc.dg/vect/vect-101.c scan-tree-dump-times vectorized 1 loops 0
> > FAIL: gcc.dg/vect/vect-101.c scan-tree-dump-times can't determine
> > dependence 1
> > FAIL: gcc.dg/vect/vect-105.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-105.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-105.c compilation failed to produce
executable
> > FAIL: gcc.dg/vect/vect-105.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-27.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-27.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-27.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-27.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-29.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-29.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-29.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-29.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-42.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-42.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-42.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-42.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-43.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-43.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-43.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-43.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-44.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-44.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-44.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-44.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-48.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-48.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-48.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-48.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-50.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-50.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-50.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-50.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-52.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-52.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-52.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-52.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-56.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-56.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-56.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-56.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-60.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-60.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-60.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-60.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-72.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-72.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-72.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-72.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-74.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-74.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-74.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-74.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-75.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-75.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-75.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-75.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-76.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-76.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-76.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-76.c scan-tree-dump-times vectorized 3 loops 1
> > FAIL: gcc.dg/vect/vect-76.c scan-tree-dump-times Vectorizing an
unaligned
> > access 2
> > FAIL: gcc.dg/vect/vect-77.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-77.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-77.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-77.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-78.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-78.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-78.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-78.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-80.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-80.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-80.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-80.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-93.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-93.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-93.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-93.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-95.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-95.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-95.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-95.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-96.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-96.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-96.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-96.c scan-tree-dump-times vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-98.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-98.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-98.c compilation failed to produce executable
> > FAIL: gcc.dg/vect/vect-98.c scan-tree-dump-times vectorized 1 loops 1
> > XPASS: gcc.dg/vect/vect-98.c scan-tree-dump-times vectorized 1 loops 0
> > FAIL: gcc.dg/vect/vect-multitypes-1.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-multitypes-1.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-multitypes-1.c compilation failed to produce
> > executable
> > FAIL: gcc.dg/vect/vect-multitypes-1.c scan-tree-dump-times vectorized 1
> > loops 2
> > FAIL: gcc.dg/vect/vect-multitypes-1.c scan-tree-dump-times Alignment of
> > access forced using peeling 2
> > FAIL: gcc.dg/vect/vect-multitypes-1.c scan-tree-dump-times Vectorizing
an
> > unaligned access 4
> > FAIL: gcc.dg/vect/vect-multitypes-3.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-multitypes-3.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-multitypes-3.c compilation failed to produce
> > executable
> > FAIL: gcc.dg/vect/vect-multitypes-3.c scan-tree-dump-times vectorized 1
> > loops 1
> > FAIL: gcc.dg/vect/vect-multitypes-4.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-multitypes-4.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-multitypes-4.c compilation failed to produce
> > executable
> > FAIL: gcc.dg/vect/vect-multitypes-4.c scan-tree-dump-times vectorized 1
> > loops 2
> > FAIL: gcc.dg/vect/vect-multitypes-4.c scan-tree-dump-times Alignment of
> > access forced using peeling 2
> > FAIL: gcc.dg/vect/vect-multitypes-4.c scan-tree-dump-times Vectorizing
an
> > unaligned access 8
> > FAIL: gcc.dg/vect/vect-multitypes-6.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-multitypes-6.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-multitypes-6.c compilation failed to produce
> > executable
> > FAIL: gcc.dg/vect/vect-multitypes-6.c scan-tree-dump-times vectorized 1
> > loops 1
> > FAIL: gcc.dg/vect/vect-reduc-dot-s16b.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-reduc-dot-s16b.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-reduc-dot-s16b.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-reduc-dot-s8a.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-reduc-dot-s8a.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-reduc-dot-s8a.c compilation failed to produce
> > executable
> > FAIL: gcc.dg/vect/vect-reduc-dot-s8a.c scan-tree-dump-times
> > vect_recog_dot_prod_pattern: detected 1
> > FAIL: gcc.dg/vect/vect-reduc-dot-s8a.c scan-tree-dump-times vectorized
1
> > loops 1
> > FAIL: gcc.dg/vect/vect-reduc-dot-u16a.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-reduc-dot-u16a.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-reduc-dot-u16a.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-reduc-dot-u8a.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-reduc-dot-u8a.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-reduc-dot-u8a.c compilation failed to produce
> > executable
> > FAIL: gcc.dg/vect/vect-reduc-dot-u8a.c scan-tree-dump-times
> > vect_recog_dot_prod_pattern: detected 1
> > FAIL: gcc.dg/vect/vect-reduc-dot-u8a.c scan-tree-dump-times vectorized
1
> > loops 1
> > FAIL: gcc.dg/vect/vect-reduc-dot-u8a.c scan-tree-dump-times vectorized
1
> > loops 1
> > FAIL: gcc.dg/vect/vect-reduc-pattern-1a.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-reduc-pattern-1a.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-reduc-pattern-1a.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-reduc-pattern-1a.c scan-tree-dump-times
vectorized 1
> > loops 1
> > FAIL: gcc.dg/vect/vect-reduc-pattern-1b.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-reduc-pattern-1b.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-reduc-pattern-1b.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-reduc-pattern-1b.c scan-tree-dump-times
vectorized 1
> > loops 1
> > FAIL: gcc.dg/vect/vect-reduc-pattern-2a.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-reduc-pattern-2a.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-reduc-pattern-2a.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-reduc-pattern-2a.c scan-tree-dump-times
vectorized 1
> > loops 1
> > FAIL: gcc.dg/vect/vect-reduc-pattern-2b.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-reduc-pattern-2b.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-reduc-pattern-2b.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-reduc-pattern-2b.c scan-tree-dump-times
vectorized 1
> > loops 1
> > FAIL: gcc.dg/vect/vect-strided-mult-char-ls.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-mult-char-ls.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-mult-char-ls.c compilation failed to
> > produce executable
> > FAIL: gcc.dg/vect/vect-strided-mult-char-ls.c scan-tree-dump-times
> > vectorized 1 loops 1
> > FAIL: gcc.dg/vect/vect-strided-mult.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-mult.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-mult.c compilation failed to produce
> > executable
> > FAIL: gcc.dg/vect/vect-strided-mult.c scan-tree-dump-times vectorized 1
> > loops 1
> > FAIL: gcc.dg/vect/vect-strided-u16-i2.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-u16-i2.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-u16-i2.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-strided-u16-i2.c scan-tree-dump-times vectorized
1
> > loops 1
> > FAIL: gcc.dg/vect/vect-strided-u16-i4.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-u16-i4.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-u16-i4.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-strided-u16-i4.c scan-tree-dump-times vectorized
1
> > loops 1
> > FAIL: gcc.dg/vect/vect-strided-u32-i4.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-u32-i4.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-u32-i4.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-strided-u32-i4.c scan-tree-dump-times vectorized
1
> > loops 1
> > FAIL: gcc.dg/vect/vect-strided-u32-i8.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-u32-i8.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-u32-i8.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-strided-u32-i8.c scan-tree-dump-times vectorized
1
> > loops 1
> > FAIL: gcc.dg/vect/vect-strided-u32-mult.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-u32-mult.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-u32-mult.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-strided-u32-mult.c scan-tree-dump-times
vectorized 1
> > loops 1
> > FAIL: gcc.dg/vect/vect-strided-u8-i2-gap.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-u8-i2-gap.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-u8-i2-gap.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-strided-u8-i2-gap.c scan-tree-dump-times
vectorized
> > 1 loops 1
> > FAIL: gcc.dg/vect/vect-strided-u8-i2.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-u8-i2.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-u8-i2.c compilation failed to produce
> > executable
> > FAIL: gcc.dg/vect/vect-strided-u8-i2.c scan-tree-dump-times vectorized
1
> > loops 1
> > FAIL: gcc.dg/vect/vect-strided-u8-i8-gap2.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-u8-i8-gap2.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-u8-i8-gap2.c compilation failed to
> > produce executable
> > FAIL: gcc.dg/vect/vect-strided-u8-i8-gap2.c scan-tree-dump-times
vectorized
> > 1 loops 1
> > FAIL: gcc.dg/vect/vect-strided-u8-i8-gap4.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-u8-i8-gap4.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-u8-i8-gap4.c compilation failed to
> > produce executable
> > FAIL: gcc.dg/vect/vect-strided-u8-i8-gap4.c scan-tree-dump-times
vectorized
> > 1 loops 1
> > FAIL: gcc.dg/vect/vect-strided-u8-i8-gap7.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-u8-i8-gap7.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-u8-i8-gap7.c compilation failed to
> > produce executable
> > FAIL: gcc.dg/vect/vect-strided-u8-i8-gap7.c scan-tree-dump-times
vectorized
> > 1 loops 1
> > FAIL: gcc.dg/vect/vect-strided-u8-i8.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-strided-u8-i8.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-strided-u8-i8.c compilation failed to produce
> > executable
> > FAIL: gcc.dg/vect/vect-strided-u8-i8.c scan-tree-dump-times vectorized
1
> > loops 1
> > FAIL: gcc.dg/vect/vect-widen-mult-sum.c (internal compiler error)
> > FAIL: gcc.dg/vect/vect-widen-mult-sum.c (test for excess errors)
> > WARNING: gcc.dg/vect/vect-widen-mult-sum.c compilation failed to
produce
> > executable
> > FAIL: gcc.dg/vect/vect-widen-mult-sum.c scan-tree-dump-times vectorized
1
> > loops 1
> >
> >
> >


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]