+2015-08-23 Tom de Vries <tom@codesourcery.com>
+
+ * doc/sourcebuild.texi: Rename vect_no_int_max with
+ vect_no_int_min_max. Update description.
+
2015-08-22 Andrew Pinski <apinski@cavium.com>
* aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
@item vect_no_align
Target does not support a vector alignment mechanism.
-@item vect_no_int_max
-Target does not support a vector max instruction on @code{int}.
+@item vect_no_int_min_max
+Target does not support a vector min and max instruction on @code{int}.
@item vect_no_int_add
Target does not support a vector add instruction on @code{int}.
+2015-08-23 Tom de Vries <tom@codesourcery.com>
+
+ * gcc.dg/vect/trapv-vect-reduc-4.c: Use vect_no_int_min_max.
+ * gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c: Rename
+ vect_no_int_max to vect_no_int_min_max.
+ * gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c: Same.
+ * gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c: Same.
+ * gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: Same.
+ * gcc.dg/vect/slp-reduc-4.c: Same.
+ * gcc.dg/vect/slp-reduc-5.c: Same.
+ * gcc.dg/vect/vect-125.c: Same.
+ * gcc.dg/vect/vect-13.c: Same.
+ * gcc.dg/vect/vect-double-reduc-3.c: Same.
+ * gcc.dg/vect/vect-reduc-1.c: Same.
+ * gcc.dg/vect/vect-reduc-1char-big-array.c: Same.
+ * gcc.dg/vect/vect-reduc-1char.c:Same.
+ * gcc.dg/vect/vect-reduc-1short.c: Same.
+ * gcc.dg/vect/vect-reduc-2.c: Same.
+ * gcc.dg/vect/wrapv-vect-reduc-2char.c: Same.
+ * gcc.dg/vect/wrapv-vect-reduc-2short.c: Same.
+ * lib/target-supports.exp: Same.
+
2015-08-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/63693
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
/* { dg-final { scan-tree-dump-times "vectorization not profitable" 0 "vect" } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
/* { dg-final { scan-tree-dump-times "vectorization not profitable" 0 "vect" } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
/* { dg-final { scan-tree-dump-times "vectorization not profitable" 0 "vect" } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_max } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { xfail vect_no_int_min_max } } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_max } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { xfail vect_no_int_min_max } } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail vect_no_int_max } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail vect_no_int_min_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { xfail vect_no_int_min_max } } } */
}
/* { dg-final { scan-tree-dump-times "Detected reduction\\." 2 "vect" } } */
-/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { target { ! { sparc*-*-* } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { target { ! vect_no_int_min_max } } } } */
}
}
-/* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" { xfail vect_no_int_min_max } } } */
return main1 ();
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail vect_no_int_min_max } } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { vect_no_int_add || vect_no_int_max } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { vect_no_int_add || vect_no_int_min_max } } } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { vect_no_int_add || vect_no_int_max } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { vect_no_int_add || vect_no_int_min_max } } } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_min_max } } } */
#
# This won't change for different subtargets so cache the result.
-proc check_effective_target_vect_no_int_max { } {
- global et_vect_no_int_max_saved
+proc check_effective_target_vect_no_int_min_max { } {
+ global et_vect_no_int_min_max_saved
- if [info exists et_vect_no_int_max_saved] {
- verbose "check_effective_target_vect_no_int_max: using cached result" 2
+ if [info exists et_vect_no_int_min_max_saved] {
+ verbose "check_effective_target_vect_no_int_min_max: using cached result" 2
} else {
- set et_vect_no_int_max_saved 0
+ set et_vect_no_int_min_max_saved 0
if { [istarget sparc*-*-*]
|| [istarget spu-*-*]
|| [istarget alpha*-*-*]
|| ([istarget mips*-*-*]
&& [check_effective_target_mips_loongson]) } {
- set et_vect_no_int_max_saved 1
+ set et_vect_no_int_min_max_saved 1
}
}
- verbose "check_effective_target_vect_no_int_max: returning $et_vect_no_int_max_saved" 2
- return $et_vect_no_int_max_saved
+ verbose "check_effective_target_vect_no_int_min_max: returning $et_vect_no_int_min_max_saved" 2
+ return $et_vect_no_int_min_max_saved
}
# Return 1 if the target plus current options does not support a vector