This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [i386] Implement broadcast pattern for builtin_vec_perm
- From: Richard Guenther <richard dot guenther at gmail dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 30 Jul 2010 12:52:17 +0200
- Subject: Re: [i386] Implement broadcast pattern for builtin_vec_perm
- References: <4B14134A.3090109@redhat.com>
On Mon, Nov 30, 2009 at 8:47 PM, Richard Henderson <rth@redhat.com> wrote:
> There are really several sub-parts to this patch, but in the end it was
> difficult to separate them, so I didn't.
>
> (1) If vbroadcast is available, arrange for it to be usable from the
> ? ?various patterns that implement that sort of operation.
> ? ?In particular, make sure to combine patterns so that register and
> ? ?memory inputs are valid at all times. ?This should allow the
> ? ?vbroadcast insn to be used when an input register gets spilled
> ? ?by the register allocator, and a (pair of) shuffle insns when
> ? ?the input happens to still be in a register.
>
> (2) Similarly with movddup.
>
> (3) Macroize vec_set_v4sf_0 patterns to allow v4si mode. ?This allows
> ? ?easier access to "movd" for more efficient V8HI and V16QI creation.
>
>
> Tested on i686 and x86_64.
This caused http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45142
by failing to macroize the splitter for the new *vec_set<mode>_0_sse2.
Richard.
>
> r~
>