Thanks Tim for sending the dump files!
> for this one:
> > FAIL: gcc.dg/vect/pr30771.c scan-tree-dump-times vectorized 1 loops 1
>
> there should be { target vect_unpack } added to the check. i.e.:
> - /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } }
*/
> + /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"
> { target vect_unpack } } } */
>
> for the rest:
>
> > FAIL: gcc.dg/vect/vect-iv-4.c scan-tree-dump-times vectorized 1 loops 1
this one is missing { target vect_pack_mod }
> > FAIL: gcc.dg/vect/vect-iv-9.c scan-tree-dump-times vectorized 1 loops 2
this one missing { target vect_int_mult }
> > FAIL: gcc.dg/vect/vect-reduc-dot-s16b.c scan-tree-dump-times
> > vectorized 1 loops 0
here we need to add ia64 to the list of targets in
'vect_widen_sum_hi_to_si' in target-support.exp
> > FAIL: gcc.dg/vect/vect-reduc-dot-u16b.c scan-tree-dump-times
> > vectorized 1 loops 1
missing { target vect_pack_mod } again
> > FAIL: gcc.dg/vect/vect-reduc-pattern-1a.c scan-tree-dump-times
> > vectorized 1 loops 0
add ia64 to 'vect_widen_sum_hi_to_si' in target-support.exp
> > FAIL: gcc.dg/vect/vect-reduc-pattern-1c.c scan-tree-dump-times
> > vectorized 1 loops 0
add ia64 to 'vect_widen_sum_qi_to_hi' in target-support.exp
> > FAIL: gcc.dg/vect/vect-reduc-pattern-2a.c scan-tree-dump-times
> > vectorized 1 loops 0
add ia64 to 'vect_widen_sum_hi_to_si' in target-support.exp
> > FAIL: gcc.dg/vect/vect-widen-mult-u16.c scan-tree-dump-times
> > vectorized 1 loops 1
missing { target vect_pack_mod }
> > FAIL: gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c scan-tree-dump-times
> > vectorized 1 loops 0
add ia64 to 'vect_widen_sum_qi_to_hi' in target-support.exp
> > FAIL: gcc.dg/vect/no-section-anchors-vect-69.c scan-tree-dump-times
> > Alignment of access forced using peeling 3
> >
>
For this one - can you please send the dump file generated with
-fdump-tree-vect-details? (the files you sent did not contain the detailed
dump info). Specifically, on powerpc I see this:
Created dr for tmp1[2].e.n[1][i_79][j_68]
base_address: &tmp1
offset from base address: (<unnamed type>) (i_79 * 32)
constant offset from base address: 10544
base_object: tmp1[2].e.n
step: 4B
misalignment from base: 10544B
aligned to: 8
memtag: tmp1
...
/Develop/autovect-dn/gcc/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c:69:
note: === vect_analyze_data_refs_alignment ===
/Develop/autovect-dn/gcc/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c:69:
note: vect_compute_data_ref_alignment:
/Develop/autovect-dn/gcc/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c:69:
note: Unknown alignment for access: tmp1
...
/Develop/autovect-dn/gcc/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c:69:
note: Alignment of access forced using peeling.
/Develop/autovect-dn/gcc/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c:69:
note: Peeling for alignment will be applied.
I'd like to compare that to what you get on ia64.
In the meantime - this patch includes the above suggested fixes for the
rest of the tests (tested on the vectorizer testcases on i686-pc-linux-gnu
and powerpc-linux, but really need to be tested on ia64):
dorit
(See attached file: ia64fixes.txt)
> I'll need to look closer. Could you please send me (offline) the .
> vect dump files (with -fdump-tree-vect-details) for these?
>
> thanks,
> dorit
>
>
> > === gcc Summary ===
> >
> > # of expected passes 42231
> > # of unexpected failures 23
> > # of unexpected successes 2
> > # of expected failures 155
> > # of unresolved testcases 2
> > # of untested testcases 28
> > # of unsupported tests 374
> > /home/tim/src/gcc-4.3-20070413/ia64/gcc/xgcc version 4.3.0 20070413
> > (experimental)
> >
> > === gfortran tests ===
> >
> >
> > Running target unix
> >
> > === gfortran Summary ===
> >
> > # of expected passes 17438
> > # of expected failures 13
> > # of unsupported tests 20
> > /home/tim/src/gcc-4.3-20070413/ia64/gcc/testsuite/gfortran/../..
> > /gfortran version 4.3.0 20070413 (experimental)
> >
> > === g++ tests ===
> >
> >
> > Running target unix
> > FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect
> > call -> direct call.* AA transformation on insn
> > FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect
> > call -> direct call.* AA transformation on insn
> > FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect
> > call -> direct call.* AA transformation on insn
> > FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect
> > call -> direct call.* AA transformation on insn
> > FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect
> > call -> direct call.* AA transformation on insn
> > FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect
> > call -> direct call.* AA transformation on insn
> > FAIL: g++.dg/tree-prof/indir-call-prof.C scan-tree-dump Indirect
> > call -> direct call.* AA transformation on insn
> >
> > === g++ Summary ===
> >
> > # of expected passes 13739
> > # of unexpected failures 7
> > # of expected failures 79
> > # of unsupported tests 119
> > /home/tim/src/gcc-4.3-20070413/ia64/gcc/testsuite/g++/../../g++
> > version 4.3.0 20070413 (experimental)
> >
> > === objc tests ===
> >
> >
> > Running target unix
> >
> > === objc Summary ===
> >
> > # of expected passes 1810
> > # of expected failures 7
> > # of unsupported tests 25
> > /home/tim/src/gcc-4.3-20070413/ia64/gcc/xgcc version 4.3.0 20070413
> > (experimental)
> >
> > === libgomp tests ===
> >
> >
> > Running target unix
> >
> > === libgomp Summary ===
> >
> > # of expected passes 1566
> > === libstdc++ tests ===
> >
> >
> > Running target unix
> > XPASS: 26_numerics/headers/cmath/c99_classification_macros_c.cc
> > (test for excess errors)
> > XPASS: 27_io/fpos/14320-1.cc execution test
> >
> > === libstdc++ Summary ===
> >
> > # of expected passes 4859
> > # of unexpected successes 2
> > # of expected failures 27
> >
> > Compiler version: 4.3.0 20070413 (experimental)
> > Platform: ia64-unknown-linux-gnu
> > configure flags: --enable-languages='c c++ fortran objc' --enable-
> > bootstrap --enable-maintainer-mode --disable-libmudflap --
> > prefix=/usr/local/gcc43
> > EOF
> > Mail -s "Results for 4.3.0 20070413 (experimental) testsuite on
> > ia64-unknown-linux-gnu" [EMAIL PROTECTED] &&
Index: gcc.dg/vect/vect-iv-9.c
===================================================================
--- gcc.dg/vect/vect-iv-9.c (revision 123694)
+++ gcc.dg/vect/vect-iv-9.c (working copy)
@@ -33,5 +33,6 @@
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target
vect_int_mult } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target {!
vect_int_mult } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
Index: gcc.dg/vect/vect-reduc-dot-u16b.c
===================================================================
--- gcc.dg/vect/vect-reduc-dot-u16b.c (revision 123694)
+++ gcc.dg/vect/vect-reduc-dot-u16b.c (working copy)
@@ -53,6 +53,6 @@
dot-product of unsigned shorts) and targets that support widening
multiplication. */
/* The induction loop in main is vectorized. */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail
*-*-* } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target
vect_pack_mod } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
Index: gcc.dg/vect/vect-iv-4.c
===================================================================
--- gcc.dg/vect/vect-iv-4.c (revision 123694)
+++ gcc.dg/vect/vect-iv-4.c (working copy)
@@ -40,5 +40,5 @@
return main1 ();
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target
vect_pack_mod } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
Index: gcc.dg/vect/vect-widen-mult-u16.c
===================================================================
--- gcc.dg/vect/vect-widen-mult-u16.c (revision 123694)
+++ gcc.dg/vect/vect-widen-mult-u16.c (working copy)
@@ -44,6 +44,6 @@
/*The induction loop is vectorized */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail
*-*-* } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target
vect_pack_mod } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
Index: lib/target-supports.exp
===================================================================
--- lib/target-supports.exp (revision 123694)
+++ lib/target-supports.exp (working copy)
@@ -1624,7 +1624,8 @@
verbose "check_effective_target_vect_widen_sum_hi_to_si: using cached
result" 2
} else {
set et_vect_widen_sum_hi_to_si_saved
[check_effective_target_vect_unpack]
- if { [istarget powerpc*-*-*] } {
+ if { [istarget powerpc*-*-*]
+ || [istarget ia64-*-*] } {
set et_vect_widen_sum_hi_to_si_saved 1
}
}
@@ -1646,7 +1647,8 @@
verbose "check_effective_target_vect_widen_sum_qi_to_hi: using cached
result" 2
} else {
set et_vect_widen_sum_qi_to_hi_saved 0
- if { [check_effective_target_vect_unpack] } {
+ if { [check_effective_target_vect_unpack]
+ || [istarget ia64-*-*] } {
set et_vect_widen_sum_qi_to_hi_saved 1
}
}
Index: gcc.dg/vect/pr30771.c
===================================================================
--- gcc.dg/vect/pr30771.c (revision 123694)
+++ gcc.dg/vect/pr30771.c (working copy)
@@ -14,5 +14,5 @@
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target
vect_unpack } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */