This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] [testsuite+spu] enable vectorizer testuite for the SPU


This patch enables the vectorizer testcases for the SPU, and fixes a few
bits here and there to have the vectorizer testsuite pass (almost) cleanly.
Enabling the testcases for the SPU just means adding this in vect.exp:

@@ -49,6 +49,8 @@
        }
        set dg-do-what-default compile
     }
+} elseif { [istarget  "spu-*-*"] } {
+   set dg-do-what-default run
 } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
     lappend DEFAULT_VECTCFLAGS "-msse2"
     set dg-do-what-default run

and also adding spu to the list of targets that support vector float, int,
and double (in target-supports.exp).
In the meantime, I also added the spu to list of targets that don't support
misalignment (until I model the "mask_for_realign_load" idiom - coming up).

These are the testcases that failed (when just adding the above to vect.exp
and target-support.exp), and corresponfing fixes:

(1) testcases that xpass because of this problem:
http://gcc.gnu.org/ml/gcc-patches/2006-12/msg00017.html (the patch to fix
this is also included in that link):

XPASS: gcc.dg/vect/pr16105.c scan-tree-dump-times vectorized 1 loops 1
XPASS: gcc.dg/vect/pr20122.c scan-tree-dump-times vectorized 1 loops 2
XPASS: gcc.dg/vect/vect-105.c scan-tree-dump-times vectorized 1 loops 1
XPASS: gcc.dg/vect/vect-30.c scan-tree-dump-times vectorized 1 loops 2
XPASS: gcc.dg/vect/vect-42.c scan-tree-dump-times vectorized 1 loops 1
XPASS: gcc.dg/vect/vect-43.c scan-tree-dump-times vectorized 1 loops 1
XPASS: gcc.dg/vect/vect-74.c scan-tree-dump-times vectorized 1 loops 1
XPASS: gcc.dg/vect/vect-75.c scan-tree-dump-times vectorized 1 loops 1
XPASS: gcc.dg/vect/vect-8.c scan-tree-dump-times vectorized 1 loops 1
XPASS: gcc.dg/vect/vect-multitypes-3.c scan-tree-dump-times vectorized 1
loops 1
XPASS: gcc.dg/vect/vect-multitypes-6.c scan-tree-dump-times vectorized 1
loops 1

(2) testcases that require integer maximum vector idiom; Until we model the
required idioms, I'm adding the spu to the list of targets that are
"no_int_max" (for which the testcase already xfails):

FAIL: gcc.dg/vect/vect-13.c scan-tree-dump-times vectorized 1 loops 1
FAIL: gcc.dg/vect/vect-reduc-1.c scan-tree-dump-times vectorized 3 loops 1
FAIL: gcc.dg/vect/vect-reduc-1char.c scan-tree-dump-times vectorized 3
loops 1
FAIL: gcc.dg/vect/vect-reduc-1short.c scan-tree-dump-times vectorized 3
loops 1
FAIL: gcc.dg/vect/vect-reduc-2.c scan-tree-dump-times vectorized 3 loops 1
FAIL: gcc.dg/vect/wrapv-vect-reduc-2char.c scan-tree-dump-times vectorized
3 loops 1
FAIL: gcc.dg/vect/wrapv-vect-reduc-2short.c scan-tree-dump-times vectorized
3 loops 1

(3) testcases that fail because the data is too large; The data size is
really not the point of these tests, so I just reduced the size of the
arrays in these tests:

FAIL: gcc.dg/vect/vect-70.c execution test
FAIL: gcc.dg/vect/no-section-anchors-vect-69.c (test for excess errors)
WARNING: gcc.dg/vect/no-section-anchors-vect-69.c compilation failed to
produce executable

(4) testcases that require a float maximum vector idiom. I modeled this one
in spu.md:

FAIL: gcc.dg/vect/fast-math-vect-reduc-5.c scan-tree-dump-times vectorized
3 loops 1

(5) testcases that require double-precision-fp conditional operations. I
added a keyword for targets that don't support this, and xfailed this test
for those targets:

FAIL: gcc.dg/vect/fast-math-vect-reduc-7.c scan-tree-dump-times vectorized
3 loops 1

(6) these tests would still fail (a fix is not included in this patch). I
think this is related to the fact that we son't have neg and sub idioms for
v16qi, so we fall back to use TImode, and I guess the respective TImode
arithmetic is wrong:

FAIL: gcc.dg/vect/vect-22.c execution test
FAIL: gcc.dg/vect/vect-reduc-1char.c execution test
FAIL: gcc.dg/vect/wrapv-vect-reduc-2char.c execution test

tested on the vectorizer testcases. ok to commit once passes full
regression suite?

thanks,
dorit

(See attached file: spupatch.txt)

Attachment: spupatch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]