Patchwork [testsuite] Fix vec_interleave and vec_extract_even_odd to fall back to vec_perm

login
register
mail settings
Submitter Ramana Radhakrishnan
Date Jan. 23, 2012, 4:52 p.m.
Message ID <CACUk7=XMMsbhoB+3Z48ufFuNH+Q+b-sga95fRjyobnJ8gyv5eQ@mail.gmail.com>
Download mbox | patch
Permalink /patch/137428/
State New
Headers show

Comments

Ramana Radhakrishnan - Jan. 23, 2012, 4:52 p.m.
On 23 January 2012 09:15, Jakub Jelinek <jakub@redhat.com> wrote:
> On Mon, Jan 23, 2012 at 08:30:46AM +0000, Ramana Radhakrishnan wrote:
>> Now that we have vec_perm support, vec_interleave and
>> vec_extract_even_odd should fall out from that rather than having to
>> handle an additional target in each of these. This fixes
>> gcc.dg/vect/slp-11a.c for ARM Neon testing with no other regressions
>> in gcc.dg/vect
>>
>> Ok ?
>
> That will disable ia64 testing of tests that need vect_extract_even_odd
> and vect_interleave.  Not sure if ia64 has good enough vect_perm
> support that it can be enabled there though.  Some targets might be
> supporting only a couple of specific permutations like these two
> and not general permutations.
> So safer would be to add [is-effective-target arm_neon_ok] to these
> two checks for now.


Right ok - Sorry I missed ia64 when I looked at those routines. This
is what I committed in the end .

cheers
Ramana

2012-01-23  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

        * lib/target-supports.exp
        (check_effective_target_vect_extract_even_odd): Handle
        ARM neon.
        (check_effective_target_vect_interleave): Likewise.

Patch

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index be33407a..2747089 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3480,6 +3480,7 @@  proc check_effective_target_vect_extract_even_odd { } {
     } else {
         set et_vect_extract_even_odd_saved 0 
         if { [istarget powerpc*-*-*] 
+            || [is-effective-target arm_neon_ok]
              || [istarget i?86-*-*]
              || [istarget x86_64-*-*]
              || [istarget ia64-*-*]
@@ -3502,6 +3503,7 @@  proc check_effective_target_vect_interleave { } {
     } else {
         set et_vect_interleave_saved 0
         if { [istarget powerpc*-*-*]
+            || [is-effective-target arm_neon_ok]
              || [istarget i?86-*-*]
              || [istarget x86_64-*-*]
              || [istarget ia64-*-*]