This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug testsuite/84004] [8 regression] gcc.dg/vect/vect-95.c XPASSes
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 27 Mar 2018 09:59:08 +0000
- Subject: [Bug testsuite/84004] [8 regression] gcc.dg/vect/vect-95.c XPASSes
- Auto-submitted: auto-generated
- References: <bug-84004-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84004
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling"
0 "vect" { xfail {vect_element_align} } } } */
but
# Return 1 if the target only requires element alignment for vector accesses
proc check_effective_target_vect_element_align { } {
so I'm not sure why we consider vect_element_align to be a reason to peel?
In fact we don't have a good target to test whether there's likely peeling.
Given the testcase in question:
__attribute__ ((noinline)) int
main1 (int n, float * __restrict__ pd, float * __restrict__ pa, float *
__restrict__ pb, float * __restrict__ pc)
{
int i;
for (i = 0; i < n; i++)
{
pa[i] = pb[i] * pc[i];
pd[i] = 5.0;
}
there are four refs and we can at most align one (unless IPA comes in the
way with LTO).
We have
r164941 | jules | 2010-10-04 16:59:30 +0200 (Mon, 04 Oct 2010) | 40 lines
gcc/testsuite/
* gcc.dg/vect/vect-42.c: Use vect_element_align instead of
vect_hw_misalign.
* gcc.dg/vect/vect-95.c: Likewise.
but vect_element_align is essentially vect_hw_misalign for most targets.
I'd say we should never peel this for alignment, that just doesn't make
sense. Some target costs models might disagree but we'll find out...