On Mon, Jan 2, 2012 at 2:29 PM, Jakub Jelinek <ja...@redhat.com> wrote:

> I've noticed that my gather vectorization patch unfortunately regressed code
> quality of
> gcc.target/i386/avx2-i64gatherd256-2.c
> gcc.target/i386/avx2-i64gatherd256-3.c
> gcc.target/i386/avx2-i64gatherd256-4.c
> gcc.target/i386/avx2-i64gatherps256-3.c
> gcc.target/i386/avx2-i64gatherps256-4.c
> tests.  The problem is that after the unification of the gather
> auto-vectorization and gather intrinsics nothing optimizes well the
> new vec_select of the first half of gather pattern's result, while the
> vec_select is a nop, register allocation often chooses to allocate the
> gather pattern result in a different vector register from the result of
> the following extraction of first half of it.
> This patch fixes the regression by adding two patterns for combiner.
> On some of the above tests it saves 2 instructions, one others one.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
>
> 2012-01-02  Jakub Jelinek  <ja...@redhat.com>
>
>        * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
>        New patterns.

OK.

Thanks,
Uros.

Reply via email to