diff mbox

[AArch64] Enable shuffle on big-endian and turn on the testsuite

Message ID 53483288.9010706@arm.com
State New
Headers show

Commit Message

Alan Lawrence April 11, 2014, 6:20 p.m. UTC
As a followup to http://gcc.gnu.org/ml/gcc-patches/2014-04/msg00079.html, which 
implements the shuffle operation but still leaves that unused - if/once that's 
gone in, I see no reason now we can't start using it, and enable the appropriate 
tests. I see the following test changes:

FAIL->PASS:
gcc.c-torture/execute/20000112-1.c execution,  -O0
gcc.c-torture/execute/20000112-1.c execution,  -O1
gcc.c-torture/execute/900409-1.c execution,  -O0
gcc.c-torture/execute/900409-1.c execution,  -O1
gcc.c-torture/execute/ieee/20000320-1.c execution,  -O0
gcc.c-torture/execute/ieee/20000320-1.c execution,  -O1
gcc.dg/vect/no-vfa-vect-depend-2.c scan-tree-dump-times vect "dependence 
distance negative" 1
gcc.dg/vect/no-vfa-vect-depend-2.c scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/no-vfa-vect-depend-3.c scan-tree-dump-times vect "dependence 
distance negative" 4
gcc.dg/vect/no-vfa-vect-depend-3.c scan-tree-dump-times vect "vectorized 1 loops" 4
gcc.dg/vect/slp-perm-1.c -flto -ffat-lto-objects execution test
gcc.dg/vect/slp-perm-1.c execution test
gcc.dg/vect/slp-perm-3.c -flto -ffat-lto-objects execution test
gcc.dg/vect/slp-perm-3.c execution test
gcc.dg/vect/slp-perm-5.c -flto -ffat-lto-objects execution test
gcc.dg/vect/slp-perm-5.c execution test
gcc.dg/vect/slp-perm-6.c -flto -ffat-lto-objects execution test
gcc.dg/vect/slp-perm-6.c execution test
gcc.dg/vect/slp-perm-7.c -flto -ffat-lto-objects execution test
gcc.dg/vect/slp-perm-7.c execution test

UNSUPPORTED/NA->PASS:
gcc.dg/vect/nodump-forwprop-22.c (test for excess errors)
gcc.dg/vect/nodump-forwprop-22.c scan-tree-dump-not copyprop1 "BIT_FIELD_REF"
gcc.dg/vect/nodump-forwprop-22.c scan-tree-dump-times copyprop1 "VEC_PERM_EXPR" 1
gcc.dg/vect/pr43432.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 1 loops" 1
gcc.dg/vect/pr43432.c scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/pr45752.c -flto -ffat-lto-objects  scan-tree-dump vect "permutation 
requires at least three vectors"
gcc.dg/vect/pr45752.c scan-tree-dump vect "permutation requires at least three 
vectors"
gcc.dg/vect/slp-38.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 1 loops in function" 1
gcc.dg/vect/slp-38.c scan-tree-dump-times vect "vectorized 1 loops in function" 1
gcc.dg/vect/slp-perm-1.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 1 loops" 1
gcc.dg/vect/slp-perm-1.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorizing stmts using SLP" 1
gcc.dg/vect/slp-perm-1.c scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/slp-perm-1.c scan-tree-dump-times vect "vectorizing stmts using SLP" 1
gcc.dg/vect/slp-perm-2.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 1 loops" 1
gcc.dg/vect/slp-perm-2.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorizing stmts using SLP" 1
gcc.dg/vect/slp-perm-2.c scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/slp-perm-2.c scan-tree-dump-times vect "vectorizing stmts using SLP" 1
gcc.dg/vect/slp-perm-3.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 1 loops" 1
gcc.dg/vect/slp-perm-3.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorizing stmts using SLP" 1
gcc.dg/vect/slp-perm-3.c scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/slp-perm-3.c scan-tree-dump-times vect "vectorizing stmts using SLP" 1
gcc.dg/vect/slp-perm-4.c -flto -ffat-lto-objects  scan-tree-dump vect 
"permutation requires at least three vectors"
gcc.dg/vect/slp-perm-4.c scan-tree-dump vect "permutation requires at least 
three vectors"
gcc.dg/vect/slp-perm-5.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 1 loops" 1
gcc.dg/vect/slp-perm-5.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorizing stmts using SLP" 2
gcc.dg/vect/slp-perm-5.c scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/slp-perm-5.c scan-tree-dump-times vect "vectorizing stmts using SLP" 2
gcc.dg/vect/slp-perm-6.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 1 loops" 1
gcc.dg/vect/slp-perm-6.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorizing stmts using SLP" 2
gcc.dg/vect/slp-perm-6.c scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/slp-perm-6.c scan-tree-dump-times vect "vectorizing stmts using SLP" 2
gcc.dg/vect/slp-perm-7.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 1 loops" 1
gcc.dg/vect/slp-perm-7.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorizing stmts using SLP" 1
gcc.dg/vect/slp-perm-7.c scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/slp-perm-7.c scan-tree-dump-times vect "vectorizing stmts using SLP" 1
gcc.dg/vect/vect-114.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 1 loops" 1
gcc.dg/vect/vect-114.c scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/vect-15-big-array.c -flto -ffat-lto-objects  scan-tree-dump-times 
vect "vectorized 1 loops" 1
gcc.dg/vect/vect-15-big-array.c scan-tree-dump-times vect "vectorized 1 loops" 1
gcc.dg/vect/vect-15.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 1 loops" 1
gcc.dg/vect/vect-15.c scan-tree-dump-times vect "vectorized 1 loops" 1


Also a PASS->NA:
gcc.dg/vect/vect-114.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 0 loops" 1
gcc.dg/vect/vect-114.c scan-tree-dump-times vect "vectorized 0 loops" 1

Ok for stage 1 (repeat, only after 
http://gcc.gnu.org/ml/gcc-patches/2014-04/msg00079.html) ?


gcc/ChangeLog:
2014-04-11  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_evpc_tbl): enable for bigendian.

gcc/testsuite/ChangeLog:
2014-04-11  Alan Lawrence  <alan.lawrence@arm.com>

	* lib/target-supports.exp (check_effective_target_vect_perm): return
	true for aarch64_be.

Comments

Marcus Shawcroft April 24, 2014, 12:36 p.m. UTC | #1
> gcc/ChangeLog:
> 2014-04-11  Alan Lawrence  <alan.lawrence@arm.com>
>
>         * config/aarch64/aarch64.c (aarch64_evpc_tbl): enable for bigendian.
>
> gcc/testsuite/ChangeLog:
> 2014-04-11  Alan Lawrence  <alan.lawrence@arm.com>
>
>         * lib/target-supports.exp (check_effective_target_vect_perm): return
>         true for aarch64_be.

ChangeLog entries are sentences, start with a capital, otherwise.

OK /Marcus
Tejas Belagod April 24, 2014, 2:22 p.m. UTC | #2
Marcus Shawcroft wrote:
>> gcc/ChangeLog:
>> 2014-04-11  Alan Lawrence  <alan.lawrence@arm.com>
>>
>>         * config/aarch64/aarch64.c (aarch64_evpc_tbl): enable for bigendian.
>>
>> gcc/testsuite/ChangeLog:
>> 2014-04-11  Alan Lawrence  <alan.lawrence@arm.com>
>>
>>         * lib/target-supports.exp (check_effective_target_vect_perm): return
>>         true for aarch64_be.
> 
> ChangeLog entries are sentences, start with a capital, otherwise.
> 
> OK /Marcus
> 

Committed r209749 on trunk for Alan with sentence-case Changelog entries.

Thanks
Tejas.
diff mbox

Patch

diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 0c8d77c..d332741 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -8089,11 +8089,6 @@  aarch64_evpc_tbl (struct expand_vec_perm_d *d)
   enum machine_mode vmode = d->vmode;
   unsigned int i, nelt = d->nelt;
 
-  /* TODO: ARM's TBL indexing is little-endian.  In order to handle GCC's
-     numbering of elements for big-endian, we must reverse the order.  */
-  if (BYTES_BIG_ENDIAN)
-    return false;
-
   if (d->testing_p)
     return true;
 
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 0d2ccd5..84eb82c 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3462,8 +3462,7 @@  proc check_effective_target_vect_perm { } {
     } else {
         set et_vect_perm_saved 0
         if { [is-effective-target arm_neon_ok]
-	     || ([istarget aarch64*-*-*]
-		 && [is-effective-target aarch64_little_endian])
+	     || [istarget aarch64*-*-*]
 	     || [istarget powerpc*-*-*]
              || [istarget spu-*-*]
 	     || [istarget i?86-*-*]