Merge lp:~christophe-lyon/gcc-linaro/gcc-4.7-vec-permute-vext into lp:gcc-linaro/4.7

Proposed by Christophe Lyon
Status: Merged
Approved by: Matthew Gretton-Dann
Approved revision: no longer in the source branch.
Merge reported by: Christophe Lyon
Merged at revision: not available
Proposed branch: lp:~christophe-lyon/gcc-linaro/gcc-4.7-vec-permute-vext
Merge into: lp:gcc-linaro/4.7
To merge this branch: bzr merge lp:~christophe-lyon/gcc-linaro/gcc-4.7-vec-permute-vext
Reviewer Review Type Date Requested Status
Matthew Gretton-Dann Approve
Ramana Radhakrishnan Pending
Review via email: mp+122673@code.launchpad.net

This proposal supersedes a proposal from 2012-09-04.

Description of the change

This branch implements constant vec permute operation for the vext instruction as described in the corresponding blueprint: https://launchpad.net/gcc-linaro/+spec/implement-vext-permute-operation.

The patch has been accepted/committed upstream, this is a backport to Linaro-4.7 branch.

To post a comment you must log in.
Revision history for this message
Michael Hope (michaelh1) wrote : Posted in a previous version of this proposal

cbuild has taken a snapshot of this branch at r115012 and queued it for build.

The diff against the ancestor r115010.1.2 is available at:
 http://builds.linaro.org/toolchain/snapshots/gcc-linaro-4.7+bzr115012~christophe-lyon~gcc-4.7-vec-permute-vext.diff

and will be built on the following builders:
 a9-builder a9hf-builder armv5-builder i686 x86_64

You can track the build queue at:
 http://ex.seabright.co.nz/helpers/scheduler

cbuild-snapshot: gcc-linaro-4.7+bzr115012~christophe-lyon~gcc-4.7-vec-permute-vext
cbuild-ancestor: lp:gcc-linaro+bzr115010.1.2
cbuild-state: check

Revision history for this message
Linaro Toolchain Builder (cbuild) wrote : Posted in a previous version of this proposal
Revision history for this message
Linaro Toolchain Builder (cbuild) wrote : Posted in a previous version of this proposal
Revision history for this message
Linaro Toolchain Builder (cbuild) wrote : Posted in a previous version of this proposal

cbuild successfully built this on armv7l-natty-cbuild359-tcpanda06-armv5r2.

The build results are available at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115012~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild359-tcpanda06-armv5r2

-PASS: gcc.dg/vect/vect-114.c -flto execution test
-PASS: gcc.dg/vect/vect-114.c execution test
+FAIL: gcc.dg/vect/vect-114.c -flto execution test
+FAIL: gcc.dg/vect/vect-114.c execution test
-PASS: gcc.dg/vect/vect-15-big-array.c -flto execution test
-PASS: gcc.dg/vect/vect-15-big-array.c execution test
+FAIL: gcc.dg/vect/vect-15-big-array.c -flto execution test
+FAIL: gcc.dg/vect/vect-15-big-array.c execution test
-PASS: gcc.dg/vect/vect-15.c -flto execution test
-PASS: gcc.dg/vect/vect-15.c execution test
+FAIL: gcc.dg/vect/vect-15.c -flto execution test
+FAIL: gcc.dg/vect/vect-15.c execution test
+PASS: gcc.target/arm/neon-vext.c (test for excess errors)
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.16\\t 2
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.32\\t 2
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.64\\t 1
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.8\\t 2
-PASS: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.16\\t 2
-PASS: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.32\\t 2
-PASS: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.8\\t 2
+FAIL: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.16\\t 2
+FAIL: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.32\\t 2
+FAIL: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.8\\t 2

The full diff is at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115012~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild359-tcpanda06-armv5r2/testsuite-diff.txt

The full testsuite results are at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115012~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild359-tcpanda06-armv5r2/gcc-testsuite.txt

cbuild-checked: armv7l-natty-cbuild359-tcpanda06-armv5r2

Revision history for this message
Linaro Toolchain Builder (cbuild) wrote : Posted in a previous version of this proposal

cbuild successfully built this on armv7l-natty-cbuild358-tcpanda02-cortexa9r1.

The build results are available at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115012~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild358-tcpanda02-cortexa9r1

-PASS: gcc.dg/vect/vect-114.c -flto execution test
-PASS: gcc.dg/vect/vect-114.c execution test
+FAIL: gcc.dg/vect/vect-114.c -flto execution test
+FAIL: gcc.dg/vect/vect-114.c execution test
-PASS: gcc.dg/vect/vect-15-big-array.c -flto execution test
-PASS: gcc.dg/vect/vect-15-big-array.c execution test
+FAIL: gcc.dg/vect/vect-15-big-array.c -flto execution test
+FAIL: gcc.dg/vect/vect-15-big-array.c execution test
-PASS: gcc.dg/vect/vect-15.c -flto execution test
-PASS: gcc.dg/vect/vect-15.c execution test
+FAIL: gcc.dg/vect/vect-15.c -flto execution test
+FAIL: gcc.dg/vect/vect-15.c execution test
+PASS: gcc.target/arm/neon-vext.c (test for excess errors)
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.16\\t 2
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.32\\t 2
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.64\\t 1
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.8\\t 2
-PASS: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.16\\t 2
-PASS: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.32\\t 2
-PASS: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.8\\t 2
+FAIL: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.16\\t 2
+FAIL: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.32\\t 2
+FAIL: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.8\\t 2

The full diff is at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115012~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild358-tcpanda02-cortexa9r1/testsuite-diff.txt

The full testsuite results are at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115012~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild358-tcpanda02-cortexa9r1/gcc-testsuite.txt

cbuild-checked: armv7l-natty-cbuild358-tcpanda02-cortexa9r1

Revision history for this message
Matthew Gretton-Dann (matthew-gretton-dann) wrote : Posted in a previous version of this proposal

Can you look at the test changes please? The execution failures are
particularly worrying:

> +FAIL: gcc.dg/vect/vect-114.c -flto execution test
> +FAIL: gcc.dg/vect/vect-114.c execution test
> +FAIL: gcc.dg/vect/vect-15-big-array.c -flto execution test
> +FAIL: gcc.dg/vect/vect-15-big-array.c execution test
> +FAIL: gcc.dg/vect/vect-15.c -flto execution test
> +FAIL: gcc.dg/vect/vect-15.c execution test

These failures are possibly okay - but can you check them please, and
either change the vrev test cases to make the test cases work, or fix
the problem with VEXT?

> +FAIL: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.16\\t 2
> +FAIL: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.32\\t 2
> +FAIL: gcc.target/arm/neon-vrev.c scan-assembler-times vrev64.8\\t 2

The patch has some GNU coding style issues. The script
contrib/check_GNU_style.sh in the GCC repo should help catch most of
those.

There is one commented out section of code:

--- gcc/config/arm/arm.c 2012-07-26 11:51:19 +0000
+++ gcc/config/arm/arm.c 2012-08-16 15:29:38 +0000
@@ -25587,6 +25587,57 @@
   return true;
 }

+/* Recognize patterns for the VEXT insns. */
+
+static bool
+arm_evpc_neon_vext (struct expand_vec_perm_d *d)
+{
+ unsigned int i, nelt = d->nelt;
+ rtx (*gen)(rtx, rtx, rtx, rtx);
+ rtx offset;
+
+ int prev = d->perm[0];
+
+ /*
+ if (d->one_vector_p)
+ return false; */

Can this be removed?

Although if it is a one_vector form we could have a rotation case
where we could generate:
   vext.32 q1, q0, q0, #1
or similar.

A follow-on patch to this one would be to update the appropriate
intrinsics in gcc/config/arm/neon.ml to use 'Use_shuffle' to generate
the appropriate code, and then regenerate arm_neon.h.

Thanks,

Matt

review: Needs Fixing
Revision history for this message
Michael Hope (michaelh1) wrote : Posted in a previous version of this proposal

cbuild has taken a snapshot of this branch at r115014 and queued it for build.

The diff against the ancestor r115010.1.2 is available at:
 http://builds.linaro.org/toolchain/snapshots/gcc-linaro-4.7+bzr115014~christophe-lyon~gcc-4.7-vec-permute-vext.diff

and will be built on the following builders:
 a9-builder a9hf-builder armv5-builder i686 x86_64

You can track the build queue at:
 http://ex.seabright.co.nz/helpers/scheduler

cbuild-snapshot: gcc-linaro-4.7+bzr115014~christophe-lyon~gcc-4.7-vec-permute-vext
cbuild-ancestor: lp:gcc-linaro+bzr115010.1.2
cbuild-state: check

Revision history for this message
Linaro Toolchain Builder (cbuild) wrote : Posted in a previous version of this proposal
Revision history for this message
Linaro Toolchain Builder (cbuild) wrote : Posted in a previous version of this proposal
Revision history for this message
Linaro Toolchain Builder (cbuild) wrote : Posted in a previous version of this proposal

cbuild successfully built this on armv7l-precise-cbuild363-ursa3-cortexa9hfr1.

The build results are available at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115014~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-precise-cbuild363-ursa3-cortexa9hfr1

+PASS: gcc.target/arm/neon-vext.c (test for excess errors)
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.16\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.32\\t 3
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.64\\t 2
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.8\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vrev64.32\\t 1

The full diff is at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115014~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-precise-cbuild363-ursa3-cortexa9hfr1/testsuite-diff.txt

The full testsuite results are at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115014~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-precise-cbuild363-ursa3-cortexa9hfr1/gcc-testsuite.txt

cbuild-checked: armv7l-precise-cbuild363-ursa3-cortexa9hfr1

Revision history for this message
Linaro Toolchain Builder (cbuild) wrote : Posted in a previous version of this proposal

cbuild successfully built this on armv7l-natty-cbuild363-tcpanda06-cortexa9r1.

The build results are available at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115014~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild363-tcpanda06-cortexa9r1

+PASS: gcc.target/arm/neon-vext.c (test for excess errors)
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.16\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.32\\t 3
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.64\\t 2
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.8\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vrev64.32\\t 1

The full diff is at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115014~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild363-tcpanda06-cortexa9r1/testsuite-diff.txt

The full testsuite results are at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115014~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild363-tcpanda06-cortexa9r1/gcc-testsuite.txt

cbuild-checked: armv7l-natty-cbuild363-tcpanda06-cortexa9r1

Revision history for this message
Linaro Toolchain Builder (cbuild) wrote : Posted in a previous version of this proposal

cbuild successfully built this on armv7l-natty-cbuild363-tcpanda05-armv5r2.

The build results are available at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115014~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild363-tcpanda05-armv5r2

+PASS: gcc.target/arm/neon-vext.c (test for excess errors)
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.16\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.32\\t 3
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.64\\t 2
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.8\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vrev64.32\\t 1

The full diff is at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115014~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild363-tcpanda05-armv5r2/testsuite-diff.txt

The full testsuite results are at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115014~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild363-tcpanda05-armv5r2/gcc-testsuite.txt

cbuild-checked: armv7l-natty-cbuild363-tcpanda05-armv5r2

Revision history for this message
Michael Hope (michaelh1) wrote :

cbuild has taken a snapshot of this branch at r115016 and queued it for build.

The diff against the ancestor r115010.1.2 is available at:
 http://builds.linaro.org/toolchain/snapshots/gcc-linaro-4.7+bzr115016~christophe-lyon~gcc-4.7-vec-permute-vext.diff

and will be built on the following builders:
 a9-builder a9hf-builder armv5-builder i686 x86_64

You can track the build queue at:
 http://ex.seabright.co.nz/helpers/scheduler

cbuild-snapshot: gcc-linaro-4.7+bzr115016~christophe-lyon~gcc-4.7-vec-permute-vext
cbuild-ancestor: lp:gcc-linaro+bzr115010.1.2
cbuild-state: check

Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :
Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :
Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :

cbuild successfully built this on armv7l-precise-cbuild366-ursa3-cortexa9hfr1.

The build results are available at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115016~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-precise-cbuild366-ursa3-cortexa9hfr1

+PASS: gcc.target/arm/neon-vext-execute.c (test for excess errors)
+PASS: gcc.target/arm/neon-vext-execute.c execution test
+PASS: gcc.target/arm/neon-vext.c (test for excess errors)
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.16\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.32\\t 3
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.64\\t 2
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.8\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vrev64.32\\t 1

The full diff is at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115016~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-precise-cbuild366-ursa3-cortexa9hfr1/testsuite-diff.txt

The full testsuite results are at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115016~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-precise-cbuild366-ursa3-cortexa9hfr1/gcc-testsuite.txt

cbuild-checked: armv7l-precise-cbuild366-ursa3-cortexa9hfr1

Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :

cbuild successfully built this on armv7l-natty-cbuild366-tcpanda02-cortexa9r1.

The build results are available at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115016~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild366-tcpanda02-cortexa9r1

+PASS: gcc.target/arm/neon-vext-execute.c (test for excess errors)
+PASS: gcc.target/arm/neon-vext-execute.c execution test
+PASS: gcc.target/arm/neon-vext.c (test for excess errors)
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.16\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.32\\t 3
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.64\\t 2
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.8\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vrev64.32\\t 1

The full diff is at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115016~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild366-tcpanda02-cortexa9r1/testsuite-diff.txt

The full testsuite results are at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115016~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild366-tcpanda02-cortexa9r1/gcc-testsuite.txt

cbuild-checked: armv7l-natty-cbuild366-tcpanda02-cortexa9r1

Revision history for this message
Matthew Gretton-Dann (matthew-gretton-dann) wrote :

Approved - please merge.

review: Approve
Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :

cbuild successfully built this on armv7l-natty-cbuild366-tcpanda04-armv5r2.

The build results are available at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115016~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild366-tcpanda04-armv5r2

+PASS: gcc.target/arm/neon-vext-execute.c (test for excess errors)
+PASS: gcc.target/arm/neon-vext-execute.c execution test
+PASS: gcc.target/arm/neon-vext.c (test for excess errors)
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.16\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.32\\t 3
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.64\\t 2
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vext.8\\t 4
+PASS: gcc.target/arm/neon-vext.c scan-assembler-times vrev64.32\\t 1

The full diff is at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115016~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild366-tcpanda04-armv5r2/testsuite-diff.txt

The full testsuite results are at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.7+bzr115016~christophe-lyon~gcc-4.7-vec-permute-vext/logs/armv7l-natty-cbuild366-tcpanda04-armv5r2/gcc-testsuite.txt

cbuild-checked: armv7l-natty-cbuild366-tcpanda04-armv5r2

Subscribers

People subscribed via source and target branches