+2007-05-01 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR testsuite/31589
+ * gcc.dg/vect/vect-iv-9.c: Added vect_int_mult target keyword to
+ dg-final test.
+ * gcc.dg/vect/vect-reduc-dot-u16b.c: Added vect_pack_trunc target
+ keyword to dg-final test.
+ * gcc.dg/vect/vect-iv-4.c: Likewise.
+ * gcc.dg/vect/vect-widen-mult-u16.c: Likewise.
+ * gcc.dg/vect/pr30771.c: Added vect_unapck target keyword to dg-final
+ test.
+ * gcc.dg/vect/vect-reduc-dot-u16a.c: Change variable type to avoid a
+ cast.
+ * gcc.dg/vect/no-section-anchors-vect-69.c: xfail on is64.
+ * lib/target-supports.exp
+ (check_effective_target_vect_widen_sum_hi_to_si): Added ia64.
+ (check_effective_target_vect_widen_sum_qi_to_hi): Added ia64.
+
2007-04-30 Kazu Hirata <kazu@codesourcery.com>
* gcc.c-torture/execute/ieee/20000320-1.c: Use
abort ();
}
- /* 2. aligned */
+ /* 2. aligned on 8-bytes */
for (i = 3; i < N-1; i++)
{
tmp1[2].a.n[1][2][i] = 6;
abort ();
}
- /* 3. aligned */
+ /* 3. aligned on 16-bytes */
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
/* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" } } */
+/* Loops 1,2,4 are unaligned on targets that require 16-byte alignment.
+ Loops 1,4 are unaligned on targets that require 8-byte alignment (ia64). */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" { xfail ia64-*-* } } } */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { target ia64-*-* } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
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" } } */
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_trunc } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
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" } } */
int main (void)
{
unsigned int dot1;
- int i;
+ unsigned short i;
check_vect ();
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_trunc } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
/*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_trunc } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
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
}
}
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
}
}