Bug 49443 - gcc.dg/vect/vect-peel-3.c and vect-peel-4.c fail on IA64 after testsuite change
Summary: gcc.dg/vect/vect-peel-3.c and vect-peel-4.c fail on IA64 after testsuite change
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: testsuite (show other bugs)
Version: 4.7.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-16 16:11 UTC by Steve Ellcey
Modified: 2012-08-10 13:26 UTC (History)
1 user (show)

See Also:
Host:
Target: ia64-*-*
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
Dump file with vectorize details (3.10 KB, text/plain)
2011-06-16 16:13 UTC, Steve Ellcey
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Ellcey 2011-06-16 16:11:37 UTC
This Change:

r175009 | irar | 2011-06-14 00:00:37 -0700 (Tue, 14 Jun 2011) | 12 lines


        * gcc.dg/vect/vect-16.c: Rename to...
        * gcc.dg/vect/no-fast-math-vect16.c: ...this.
        * gcc.dg/vect/vect-peel-3.c: Adjust misalignment values
        for double-word vectors.
        * gcc.dg/vect/vect-peel-4.c: Likewise.
        * gcc.dg/vect/bb-slp-10.c: Replace vect_hw_misalign with
        vect_element_align.
        * gcc.dg/vect/vect.exp: Run no-fast-math-* tests with

Caused gcc.dg/vect/vect-peel-3.c and gcc.dg/vect/vect-peel-4.c to
start failing on the ia64-*-* platforms (HP-UX and Linux).


FAIL: gcc.dg/vect/vect-peel-3.c scan-tree-dump-times vect "vectorized 1 loops" 1
FAIL: gcc.dg/vect/vect-peel-3.c scan-tree-dump-times vect "Alignment of access forced using peeling" 1
FAIL: gcc.dg/vect/vect-peel-4.c scan-tree-dump-times vect "vectorized 1 loops" 1
FAIL: gcc.dg/vect/vect-peel-3.c -flto scan-tree-dump-times vect "vectorized 1 loops" 1
FAIL: gcc.dg/vect/vect-peel-3.c -flto scan-tree-dump-times vect "Alignment of access forced using peeling" 1
FAIL: gcc.dg/vect/vect-peel-4.c -flto scan-tree-dump-times vect "vectorized 1 loops" 1
Comment 1 Steve Ellcey 2011-06-16 16:13:42 UTC
Created attachment 24547 [details]
Dump file with vectorize details

Dump file from vect-peel-3.c when run with

-ftree-vectorize -fno-vect-cost-model -O2 -fdump-tree-vect-details
Comment 2 Ira Rosen 2011-06-19 08:09:43 UTC
Both tests contain misaligned accesses and cannot be vectorized on targets that have no misalignment support, like ia64. So, I think, the tests should just fail:

Index: vect-peel-3.c
===================================================================
--- vect-peel-3.c       (revision 175101)
+++ vect-peel-3.c       (working copy)
@@ -47,7 +47,7 @@
   return main1 ();
 }

-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect"  { xfail vect_no_align } } } */
-/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
Index: vect-peel-4.c
===================================================================
--- vect-peel-4.c       (revision 175101)
+++ vect-peel-4.c       (working copy)
@@ -44,7 +44,7 @@
   return main1 ();
 }

-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect"  { xfail vect_no_align } } } */
 /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */


They worked before r175009, because the tests didn't take into account vectors of two ints, and all the accesses were aligned unintentionally.

Could you please verify that the above patch fixes the failures?

Thanks,
Ira
Comment 3 Steve Ellcey 2011-06-20 17:12:41 UTC
Yes, the patch in comment #2 fixes the failures on IA64.
Comment 4 irar 2011-06-21 09:01:29 UTC
Author: irar
Date: Tue Jun 21 09:01:23 2011
New Revision: 175246

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175246
Log:

        PR testsuite/49443
        * gcc.dg/vect/vect-peel-3.c: Expect to fail on vect_no_align
        targets.
        * gcc.dg/vect/vect-peel-4.c: Likewise.


Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/vect/vect-peel-3.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-peel-4.c
Comment 5 Ira Rosen 2011-06-21 09:02:39 UTC
Fixed.
Comment 6 jye2 2011-09-20 09:01:06 UTC
Author: jye2
Date: Tue Sep 20 09:00:58 2011
New Revision: 179003

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179003
Log:
2011-09-20  Jiangning Liu  <jiangning.liu@arm.com>

	Backport r175246 from mainline
	2011-06-21  Ira Rosen  <ira.rosen@linaro.org>

	PR testsuite/49443
	* gcc.dg/vect/vect-peel-3.c: Expect to fail on vect_no_align
	targets.
	* gcc.dg/vect/vect-peel-4.c: Likewise.

2011-09-20  Jiangning Liu  <jiangning.liu@arm.com>

	Backport r175009 from mainline
	2011-06-14  Ira Rosen  <ira.rosen@linaro.org>

	* gcc.dg/vect/vect-16.c: Rename to...
	* gcc.dg/vect/no-fast-math-vect16.c: ...this.
	* gcc.dg/vect/vect-peel-3.c: Adjust misalignment values
	for double-word vectors.
	* gcc.dg/vect/vect-peel-4.c: Likewise.
	* gcc.dg/vect/bb-slp-10.c: Replace vect_hw_misalign with
	vect_element_align.
	* gcc.dg/vect/vect.exp: Run no-fast-math-* tests with
	-fno-fast-math.


Added:
    branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c   (props changed)
      - copied unchanged from r178998, branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-16.c
Removed:
    branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-16.c
Modified:
    branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm
    branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/bb-slp-10.c
    branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-peel-3.c
    branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-peel-4.c
    branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/vect.exp

Propchange: branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
            ('svn:mergeinfo' added)
Comment 7 Ulrich Weigand 2012-08-10 13:26:51 UTC
Author: uweigand
Date: Fri Aug 10 13:26:44 2012
New Revision: 190296

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190296
Log:
ChangeLog:

	Backport from mainline
	2012-07-30  Ulrich Weigand  <ulrich.weigand@linaro.org>
		    Richard Earnshaw  <rearnsha@arm.com>

	* target.def (vector_alignment): New target hook.
	* doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_vector_alignment): New function.
	* targhooks.h (default_vector_alignment): Add prototype.
	* stor-layout.c (layout_type): Use targetm.vector_alignment.
	* config/arm/arm.c (arm_vector_alignment): New function.
	(TARGET_VECTOR_ALIGNMENT): Define.

	* tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use
	vector type alignment instead of size.
	* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use
	element type size directly instead of computing it from alignment.
	Fix variable naming and comment.


testsuite/ChangeLog:

	Backport from mainline
	2012-07-30  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* lib/target-supports.exp
	(check_effective_target_vect_natural_alignment): New function.
	* gcc.dg/align-2.c: Only run on targets with natural alignment
	of vector types.
	* gcc.dg/vect/slp-25.c: Adjust tests for targets without natural
	alignment of vector types.

	2011-12-21  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* gcc.dg/vect/vect-peel-1.c: Adjust test diag-scans to fix fail on AVX.
	* gcc.dg/vect/vect-peel-2.c: Ditto.

	2011-06-21  Ira Rosen  <ira.rosen@linaro.org>

	PR testsuite/49443
	* gcc.dg/vect/vect-peel-3.c: Expect to fail on vect_no_align
	targets.
	* gcc.dg/vect/vect-peel-4.c: Likewise.

	2011-06-14  Ira Rosen  <ira.rosen@linaro.org>

	* gcc.dg/vect/vect-peel-3.c: Adjust misalignment values
	for double-word vectors.
	* gcc.dg/vect/vect-peel-4.c: Likewise.

Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/config/arm/arm.c
    branches/gcc-4_6-branch/gcc/doc/tm.texi
    branches/gcc-4_6-branch/gcc/doc/tm.texi.in
    branches/gcc-4_6-branch/gcc/stor-layout.c
    branches/gcc-4_6-branch/gcc/target.def
    branches/gcc-4_6-branch/gcc/targhooks.c
    branches/gcc-4_6-branch/gcc/targhooks.h
    branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/align-2.c
    branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/vect/slp-25.c
    branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-peel-1.c
    branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-peel-2.c
    branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-peel-3.c
    branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-peel-4.c
    branches/gcc-4_6-branch/gcc/testsuite/lib/target-supports.exp
    branches/gcc-4_6-branch/gcc/tree-vect-data-refs.c
    branches/gcc-4_6-branch/gcc/tree-vect-loop-manip.c