[RTL] (vec_select (vec_concat a b) c) may be just a or b

Jeff Law law@redhat.com
Fri Jul 18 05:05:00 GMT 2014


On 06/21/14 13:16, Marc Glisse wrote:
> Hello,
>
> this is another small simplification of RTL for vectors. Note that it
> doesn't really solve the problem, because these simplifications are only
> performed for single-use objects. If I start from vectors [a,b] and
> [c,d] and concatenate them into [a,b,c,d], then extract both halves, as
> in the original testcase in the PR, we won't notice that those are the
> original vectors. Still, better than nothing...
>
> (we output a vzeroupper for the testcase, that seems unnecessary)
>
> Bootstrap+testsuite on x86_64-linux-gnu.
>
> 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
>
>      PR target/44551
> gcc/
>      * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
>      Optimize inverse of a VEC_CONCAT.
> gcc/testsuite/
>      * gcc.target/i386/pr44551-1.c: New file.
>
OK.

Jeff



More information about the Gcc-patches mailing list